<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Graphics on Jendrik Illner - 3D Programmer</title>
    <link>https://www.jendrikillner.com/tags/graphics/</link>
    <description>Recent content in Graphics on Jendrik Illner - 3D Programmer</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en-us</language>
    <copyright>&amp;copy; 2023 · Jendrik Illner</copyright>
    <lastBuildDate>Sun, 05 Mar 2023 04:00:00 +0000</lastBuildDate>
    
        <atom:link href="https://www.jendrikillner.com/tags/graphics/index.xml" rel="self" type="application/rss+xml" />
    
    
    <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>Reader Question Answered 1 - Learning D3D12</title>
      <link>https://www.jendrikillner.com/post/d3d12-learning-plan/</link>
      <pubDate>Wed, 29 Dec 2021 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/d3d12-learning-plan/</guid>
      <description>

&lt;blockquote&gt;
&lt;p&gt;There are a lot of tutorials and articles on Vulkan. I found very few tutorials for D3D12.
Do you have some recommendations on how to start learning D3D12?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2 id=&#34;quick-start&#34;&gt;Quick Start&lt;/h2&gt;

&lt;p&gt;To get started with the API quickly, I can recommend the following resource: &lt;a href=&#34;https://alain.xyz/blog/raw-directx12&#34; target=&#34;_blank&#34;&gt;Raw DirectX 12&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Provides a starting point repository that implements all the necessary elements to render a triangle into a window. The blog post walks through the code and briefly explains all used concepts.&lt;/p&gt;

&lt;p&gt;If you have experience with other APIs, keep &lt;a href=&#34;https://alain.xyz/blog/comparison-of-modern-graphics-apis&#34; target=&#34;_blank&#34;&gt;A Comparison of Modern Graphics APIs&lt;/a&gt; bookmarked to compare as you go along.&lt;/p&gt;

&lt;h2 id=&#34;api-detailed-walkthrough&#34;&gt;API detailed walkthrough&lt;/h2&gt;

&lt;p&gt;If you enjoy reading an in-depth walkthrough of the API and concepts, I recommend the &lt;a href=&#34;https://www.3dgep.com&#34; target=&#34;_blank&#34;&gt;3dgep&lt;/a&gt; series.&lt;/p&gt;

&lt;p&gt;Part 1 and 2 give an introduction to the D3D12 API itself and how it interacts with the Windows environment.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://www.3dgep.com/learning-directx-12-1/&#34; target=&#34;_blank&#34;&gt;Part 1 - Initialize DirectX 12&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.3dgep.com/learning-directx-12-2/&#34; target=&#34;_blank&#34;&gt;Part 2 - Rendering&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Part 3 builds on top and presents possible implementations for higher-level abstractions. This also covers several related topics, such as memory management and resource state management.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://www.3dgep.com/learning-directx-12-3/&#34; target=&#34;_blank&#34;&gt;Part 3 - Framework&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Part 4 explains texturing in detail.
This does not only cover the API but also explains related concepts such as texture filtering. Additionally presents how to use compute-shaders to generate mipmaps (smaller versions of textures) using the GPU.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://www.3dgep.com/learning-directx-12-4/&#34; target=&#34;_blank&#34;&gt;Part 4 - Textures&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&#34;api-specification&#34;&gt;API specification&lt;/h2&gt;

&lt;p&gt;Questions about the specifics of the API? Or what the intended behavior should be?
Start by looking into the official specification. These are available on GitHub.&lt;/p&gt;

&lt;p&gt;&lt;a href=&#34;https://microsoft.github.io/DirectX-Specs/&#34; target=&#34;_blank&#34;&gt;DirectX-Specs&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;What isn&amp;rsquo;t covered in the D3D12 specification can typically be found in the &lt;a href=&#34;https://microsoft.github.io/DirectX-Specs/d3d/archive/D3D11_3_FunctionalSpec.htm&#34; target=&#34;_blank&#34;&gt;Direct3D 11.3 Functional Specification&lt;/a&gt; as many concepts still apply.&lt;/p&gt;

&lt;h2 id=&#34;applied-uses&#34;&gt;Applied uses&lt;/h2&gt;

&lt;p&gt;Interested in how others applied the concepts for their own engines and frameworks?&lt;/p&gt;

&lt;p&gt;Articles about the D3D12-based implementation of &lt;a href=&#34;http://diligentgraphics.com/diligent-engine/architecture/d3d12/&#34; target=&#34;_blank&#34;&gt;Diligent Engine&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The Microsoft Samples contain several samples to learn more about specific features you might be interested in the &lt;a href=&#34;https://github.com/Microsoft/DirectX-Graphics-Samples&#34; target=&#34;_blank&#34;&gt;DirectX-Graphics-Samples&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Especially the &lt;a href=&#34;https://github.com/Microsoft/DirectX-Graphics-Samples#miniengine-a-directx-12-engine-starter-kit&#34; target=&#34;_blank&#34;&gt;mini-engine&lt;/a&gt;. This provides a good starting point for experimentation as well as looking into how aspects got implemented.&lt;/p&gt;

&lt;h2 id=&#34;performance-best-practices&#34;&gt;Performance Best Practices&lt;/h2&gt;

&lt;p&gt;With the power of the API also comes the responsibility to think about performance.
Each manufacturer has recommendations on how best to take advantage of their hardware.&lt;/p&gt;

&lt;p&gt;Below is a collection of some resources:&lt;/p&gt;

&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Manufacturer&lt;/th&gt;
&lt;th&gt;Link&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;

&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;AMD&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;https://gpuopen.com/performance/&#34; target=&#34;_blank&#34;&gt;RDNA2 - Performance Guide&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;Nvidia&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;https://developer.nvidia.com/dx12-dos-and-donts&#34; target=&#34;_blank&#34;&gt;Game Works - DX12 Do&amp;rsquo;s And Don&amp;rsquo;ts&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;Intel&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;https://www.intel.com/content/www/us/en/developer/articles/guide/developer-and-optimization-guide-for-intel-processor-graphics-gen11-api.html&#34; target=&#34;_blank&#34;&gt;Optimization Guide for Graphics Gen11 &lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;

&lt;h2 id=&#34;the-road-ahead&#34;&gt;The road ahead&lt;/h2&gt;

&lt;p&gt;This should give an excellent starting point to keep you busy on your D3D12 learning journey.
There is a lot more information out there. But I hope with the provided information it will be easier to find.&lt;/p&gt;

&lt;p&gt;For example, take a look at my &lt;a href=&#34;https://www.jendrikillner.com/article_database/&#34; target=&#34;_blank&#34;&gt;Graphics Programming Article Database&lt;/a&gt; to find some of them.&lt;/p&gt;

&lt;p&gt;Is anything missing, or do you have a question about something else?
Feel free to reach out on Twitter &lt;a href=&#34;https://twitter.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;@jendrikillner&lt;/a&gt;, and I will try to find the information and expand the guide so everyone can benefit.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Inspired by &lt;a href=&#34;https://www.hanselman.com/blog/do-they-deserve-the-gift-of-your-keystrokes&#34; target=&#34;_blank&#34;&gt;https://www.hanselman.com/blog/do-they-deserve-the-gift-of-your-keystrokes&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&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;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://erkaman.github.io/posts/beginner_computer_graphics.html&#34; target=&#34;_blank&#34; id=&#34;How to Start Learning Computer Graphics Programming&#34;&gt;How to Start Learning 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;walkthrough of steps to learn graphics programming&lt;/li&gt;
&lt;li&gt;recommends starting that beginners start with a raytracer/rasterizer from scratch before starting to use any graphics API&lt;/li&gt;
&lt;li&gt;list of project ideas 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-68/first_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;http://web.archive.org/web/20181219041005/https://erkaman.github.io/posts/beginner_computer_graphics.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.superluminal.eu/2018/12/18/16x-aa-font-rendering-using-coverage-masks-part-iii/&#34; target=&#34;_blank&#34; id=&#34;16x AA font rendering using coverage masks, part III&#34;&gt;16x AA font rendering using coverage masks, part III&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 rasterize the glyphs from a font into a texture. Providing the coverage information that is required by the technique discussed in part 1 and 2&lt;/li&gt;
&lt;li&gt;includes code for the OpenGL compute shader&lt;/li&gt;
&lt;li&gt;overview of typography terms and explain how to correctly position the glyphs to form the final text 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-68/Outline_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;http://web.archive.org/web/20181222074913/https://www.superluminal.eu/2018/12/18/16x-aa-font-rendering-using-coverage-masks-part-iii/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#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/2018/12/30/rasterization-in-one-weekend-part-iii/&#34; target=&#34;_blank&#34; id=&#34;Rasterization in One Weekend, Part III&#34;&gt;Rasterization in One Weekend, Part III&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 vertex attributes are and how they are interpolated to deal with  perspective distortions correctly&lt;/li&gt;
&lt;li&gt;uses this knowledge to interpolate normals and UV coordinates for the sponza 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-68/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/20190112022224/https://tayfunkayhan.wordpress.com/2018/12/30/rasterization-in-one-weekend-part-iii/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;


&lt;div class=&#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.aortiz.me/2018/12/21/CG.html&#34; target=&#34;_blank&#34; id=&#34;A Primer On Efficient Rendering Algorithms &amp;amp; Clustered Shading&#34;&gt;A Primer On Efficient Rendering Algorithms &amp;amp; Clustered Shading&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;p&gt;Part 1 of the article:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;explains how classical forward/deferred pipelines work and how tiled and clustered algorithms can be used to extend these ideas&lt;/li&gt;
&lt;li&gt;includes animations to show the concepts in a more visual way&lt;/li&gt;
&lt;li&gt;presents strengths and weaknesses for each technique&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Part 2 of the article:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;presents the clustered forward shading implementation&lt;/li&gt;
&lt;li&gt;how to subdivide the camera frustum into clusters and implement light culling&lt;/li&gt;
&lt;li&gt;provides links to further information 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-68/clustered_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/20190112022341/http://www.aortiz.me/2018/12/21/CG.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.elopezr.com/the-rendering-of-rise-of-the-tomb-raider/&#34; target=&#34;_blank&#34; id=&#34;The Rendering of Rise of the Tomb Raider&#34;&gt;The Rendering of Rise 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;frame breakdown of the Rise of the Tomb Raider with D3D12 on PC&lt;/li&gt;
&lt;li&gt;uses a light pre-pass architecture&lt;/li&gt;
&lt;li&gt;lens flares don&amp;rsquo;t use a visibility query but instead use the depth buffer to calculate visibility&lt;/li&gt;
&lt;li&gt;talks about shadow mapping, ambient occlusion, depth-aware upscaling, reflections, hair rendering, volumetrics, and tone 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-68/ROTR-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;http://web.archive.org/web/20190102192238/http://www.elopezr.com/the-rendering-of-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://lindenreid.wordpress.com/2019/01/06/color-spread-post-processing-effect-tutorial-in-unity/&#34; target=&#34;_blank&#34; id=&#34;Color Spread Post-Processing Effect Tutorial in Unity&#34;&gt;Color Spread Post-Processing Effect Tutorial 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 apply an expanding color effect that converts the world from greyscale back to color as post-processing effect using Unity scriptable render pipeline&lt;/li&gt;
&lt;li&gt;presents how to reconstruct world space position 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-68/color_spread.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190112022700/https://lindenreid.wordpress.com/2019/01/06/color-spread-post-processing-effect-tutorial-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.wihlidal.com/blog/pipeline/2018-12-28-containerized_shader_compilers/&#34; target=&#34;_blank&#34; id=&#34;Containerized Shader Compilers&#34;&gt;Containerized Shader Compilers&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 a Docker container image that is able to run shader compilers&lt;/li&gt;
&lt;li&gt;supported are: DXC, FXC, GLSLang, AMD Radeon Graphics Analyzer, DXIL signing, SMOL/V and Vulkan SDK&lt;/li&gt;
&lt;/ul&gt;

    &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/docker_shader_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/20190112022830/https://www.wihlidal.com/blog/pipeline/2018-12-28-containerized_shader_compilers/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;


&lt;p&gt;
If you are enjoying the series and getting value from it, please consider supporting this blog.
&lt;/p&gt;

&lt;script src=&#34;https://donorbox.org/install-popup-button.js&#34; type=&#34;text/javascript&#34; defer&gt;&lt;/script&gt;
&lt;a class=&#34;dbox-donation-button&#34; href=&#34;https://donorbox.org/jendrikillner&#34; style=&#34;background:#2d81c5 url(https://d1iczxrky3cnb2.cloudfront.net/red_logo.png) no-repeat 16px center; color: #fff;text-decoration: none;font-family: Verdana,sans-serif; font-size:12px; display: inline-block;padding: 5px 10px 5px 50px; -webkit-border-radius: 2px; -moz-border-radius: 2px; border-radius: 2px; box-shadow: 0 1px 0 0 #1f5a89; text-shadow: 0 1px rgba(0, 0, 0, 0.3); text-align:center;&#34; &gt;Support this blog&lt;/a&gt;
&lt;/a&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 67 — December 16, 2018</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-67/</link>
      <pubDate>Sun, 16 Dec 2018 21:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-67/</guid>
      <description>&lt;p&gt;Thank you everyone for the support in 2018, this is the last post of the series for this year, the next post will be released on January 14, 2019.&lt;/p&gt;

&lt;p&gt;I wish you happy holidays and a great start into 2019.&lt;/p&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://diligentgraphics.com/2018/12/09/resource-state-management/&#34; target=&#34;_blank&#34; id=&#34;Unified Resource State Management for Vulkan and Direct3D12&#34;&gt;Unified Resource State Management for Vulkan and Direct3D12&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 state management system implemented for the Diligent Engine&lt;/li&gt;
&lt;li&gt;resources states are exposed on D3D12 style semantic for barriers&lt;/li&gt;
&lt;li&gt;allows mixing of automatic and manual explicit state management

&lt;ul&gt;
&lt;li&gt;the developer can choose to disable automatic transitions on a per resource basis&lt;/li&gt;
&lt;li&gt;can switch on a per-resource basis at any time during the frame&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-67/DiligentGraphics.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20181217001001/http://diligentgraphics.com/2018/12/09/resource-state-management/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#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.pixar.com/library/sigAsia2018Course/&#34; target=&#34;_blank&#34; id=&#34;Art and Technology at Pixar (SIGGRAPH Asia 2018 Course)&#34;&gt;Art and Technology at Pixar (SIGGRAPH Asia 2018 Course)&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 Asia 2019 course&lt;/li&gt;
&lt;li&gt;presenting the newest developments and techniques used during The Incredibles 2&lt;/li&gt;
&lt;li&gt;talking about Simulation &amp;amp; FX, Rendering &amp;amp; Compositing and Real-time Tools to allow quicker iteration time&lt;/li&gt;
&lt;li&gt;overview of subdivision surface representations for use with OpenSubdiv&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-67/pixar.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://graphics.pixar.com/library/sigAsia2018Course/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/20181217002121/http://graphics.pixar.com/library/sigAsia2018Course/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/20181217001928/http://graphics.pixar.com/library/sigAsia2018Course/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#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/332409/Game_Tech_Deep_Dive_The_fast_and_furious_window_shaders_of_Forza_Horizon_4.php&#34; target=&#34;_blank&#34; id=&#34;Game Tech Deep Dive: The fast and furious window shaders of Forza Horizon 4&#34;&gt;Game Tech Deep Dive: The fast and furious window shaders of Forza Horizon 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 parallax mapping technique used to represent the interiors of buildings as seen through windows&lt;/li&gt;
&lt;li&gt;broken into multiple layers to separate window frames, curtains and interior of the room&lt;/li&gt;
&lt;li&gt;baked separate light texture to allow night time for interiors&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-67/forza.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;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/20181210214653/http://gamasutra.com/view/news/332409/Game_Tech_Deep_Dive_The_fast_and_furious_window_shaders_of_Forza_Horizon_4.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://asawicki.info/news_1698_vulkan_sparse_binding_-_a_quick_overview.html&#34; target=&#34;_blank&#34; id=&#34;Vulkan sparse binding - a quick overview&#34;&gt;Vulkan sparse binding - a quick overview&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;explains sparse binding and residency&lt;/li&gt;
&lt;li&gt;sparse binding lifts the requirement that resource memory needs to be fully continuous in memory. Instead, memory is managed with pages that can be mapped at non-continues offsets&lt;/li&gt;
&lt;li&gt;sparse residency lifts the requirement that the complete resource needs to mapped. For example, only parts of a texture atlas could be mapped&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-67/sparse_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/20181217003143/http://asawicki.info/news_1698_vulkan_sparse_binding_-_a_quick_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;https://astralcode.blogspot.com/2018/12/reverse-engineering-rendering-of.html&#34; target=&#34;_blank&#34; id=&#34;Reverse engineering the rendering of The Witcher 3, part 7a - average luminance (distribution)&#34;&gt;Reverse engineering the rendering of The Witcher 3, part 7a - average luminance (distribution)&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 the histogram of pixel brightness is collected using a compute shader in The Witcher 3&lt;/li&gt;
&lt;li&gt;the system allows a dynamic weighting of pixels that origin from 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-67/witcher_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/20181217003442/https://astralcode.blogspot.com/2018/12/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://alextardif.com/HistogramLuminance.html&#34; target=&#34;_blank&#34; id=&#34;Adaptive Exposure from Luminance Histograms&#34;&gt;Adaptive Exposure from Luminance Histograms&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 D3D12 to calculate a histogram of pixel brightness in a compute shader&lt;/li&gt;
&lt;li&gt;shows how to use a per-bin weight to calculate the luminance for the exposure 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-67/HistogramLuminance.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20181217003551/http://alextardif.com/HistogramLuminance.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://tayfunkayhan.wordpress.com/2018/12/16/rasterization-in-one-weekend-part-ii/&#34; target=&#34;_blank&#34; id=&#34;Rasterization in One Weekend, Part II&#34;&gt;Rasterization in One Weekend, 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 two of rasterization implementation article series with C++&lt;/li&gt;
&lt;li&gt;shows how to extend the rasterizer into 3D&lt;/li&gt;
&lt;li&gt;now implements the necessary pipeline to project vertices from object space into clip space for rasterizations&lt;/li&gt;
&lt;li&gt;adds support for depth testing and index 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-67/rasterization_part2.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/NotCamelCase/RasterizationInOneWeekend/blob/master/Go3D.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/20181217003720/https://github.com/NotCamelCase/RasterizationInOneWeekend/blob/master/Go3D.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/20181217003631/https://tayfunkayhan.wordpress.com/2018/12/16/rasterization-in-one-weekend-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://renderdoc.org/survey&#34; target=&#34;_blank&#34; id=&#34;RenderDoc Survey 2018&#34;&gt;RenderDoc Survey 2018&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;RenderDoc survey looking to gather information about the user experience, stability, development experience, API and platform coverage&lt;/li&gt;
&lt;li&gt;help to set the direction for 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-67/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&gt;&lt;/p&gt;


&lt;div class=&#34;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/13699/intel-architecture-day-2018-core-future-hybrid-x86&#34; target=&#34;_blank&#34; id=&#34;Intel&amp;#39;s Architecture Day 2018: The Future of Core, Intel GPUs, 10nm, and Hybrid x86&#34;&gt;Intel&amp;#39;s Architecture Day 2018: The Future of Core, Intel GPUs, 10nm, and Hybrid x86&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;presenting an overview of next-generation Intel architecture&lt;/li&gt;
&lt;li&gt;will support adaptive sync, tile-based rendering, coarse pixel 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-67/intel_graphics.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;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/20181213205650/https://www.anandtech.com/show/13699/intel-architecture-day-2018-core-future-hybrid-x86&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#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-2018-7/&#34; target=&#34;_blank&#34; id=&#34;NVIDIA Announces Nsight Graphics 2018.7&#34;&gt;NVIDIA Announces Nsight Graphics 2018.7&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;acceleration structure visualization for DXR (DirectX Raytracing) and Vulkan&lt;/li&gt;
&lt;li&gt;serialize DXR application to a C++ capture is now supported&lt;/li&gt;
&lt;li&gt;added Vulkan pixel history 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-67/Nsight_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/20181217002847/https://news.developer.nvidia.com/nvidia-announces-nsight-graphics-2018-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/radeon-gpu-profiler-1-4/&#34; target=&#34;_blank&#34; id=&#34;Radeon GPU Profiler 1.4&#34;&gt;Radeon GPU Profiler 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;added support for OpenCL 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-67/RGP_BarriersOpenCL_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/20181217003038/https://gpuopen.com/radeon-gpu-profiler-1-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://www.amd.com/en/support/kb/release-notes/rn-rad-win-18-12-2&#34; target=&#34;_blank&#34; id=&#34;Radeon Software Adrenalin 2019 Edition 18.12.2 Highlights&#34;&gt;Radeon Software Adrenalin 2019 Edition 18.12.2 Highlights&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;new AMD driver adds support for VK_EXT_inline_uniform_block, VK_KHR_swapchain_mutable_format, VK_EXT_scalar_block_layout and sparse extensions&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/20181217003405/https://www.amd.com/en/support/kb/release-notes/rn-rad-win-18-12-2&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;hr /&gt;

&lt;p&gt;
&lt;p&gt;
If you are enjoying the series and getting value from it, please consider supporting this blog.
&lt;/p&gt;

&lt;script src=&#34;https://donorbox.org/install-popup-button.js&#34; type=&#34;text/javascript&#34; defer&gt;&lt;/script&gt;
&lt;a class=&#34;dbox-donation-button&#34; href=&#34;https://donorbox.org/jendrikillner&#34; style=&#34;background:#2d81c5 url(https://d1iczxrky3cnb2.cloudfront.net/red_logo.png) no-repeat 16px center; color: #fff;text-decoration: none;font-family: Verdana,sans-serif; font-size:12px; display: inline-block;padding: 5px 10px 5px 50px; -webkit-border-radius: 2px; -moz-border-radius: 2px; border-radius: 2px; box-shadow: 0 1px 0 0 #1f5a89; text-shadow: 0 1px rgba(0, 0, 0, 0.3); text-align:center;&#34; &gt;Support this blog&lt;/a&gt;
&lt;/a&gt;&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 66 — December 9, 2018</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-66/</link>
      <pubDate>Sun, 09 Dec 2018 21:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-66/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://mynameismjp.wordpress.com/2018/12/09/breaking-down-barriers-part-6-experimenting-with-overlap-and-preemption/&#34; target=&#34;_blank&#34; id=&#34;Breaking down barriers – part 6: experimenting with overlap and preemption&#34;&gt;Breaking down barriers – part 6: experimenting with overlap and preemption&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 the series&lt;/li&gt;
&lt;li&gt;presents how different GPUs are able to overlap the workload between

&lt;ul&gt;
&lt;li&gt;different async and graphics queues&lt;/li&gt;
&lt;li&gt;work on the same graphics queue&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;presents how split barriers influence the overlap&lt;/li&gt;
&lt;li&gt;additionally presents the ability of Windows to preempt GPU work when multiple applications are sharing the same 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-66/testapp_overview1.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/TheRealMJP/OverlappedExecution&#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/20181210025141/https://mynameismjp.wordpress.com/2018/12/09/breaking-down-barriers-part-6-experimenting-with-overlap-and-preemption/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;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/fluid-simulation-shadow-tomb-raider&#34; target=&#34;_blank&#34; id=&#34;Real-time fluid simulation in shadow of the tomb raider&#34;&gt;Real-time fluid simulation in 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;slides for the fluid simulation used in Shadow of the Tomb Raider have been released&lt;/li&gt;
&lt;li&gt;the content of the talk was discussed last week 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-66/shadow_of_the_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&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#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/lights/&#34; target=&#34;_blank&#34; id=&#34;Scriptable Render Pipeline - Single-Pass Forward Rendering&#34;&gt;Scriptable Render Pipeline - Single-Pass Forward Rendering&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 the series about the development of a forward shading pipeline using the Unity scriptable render pipeline&lt;/li&gt;
&lt;li&gt;implements support for directional, point, and spotlights&lt;/li&gt;
&lt;li&gt;show how to interact with the Unity provided light culling 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-66/8-lights-per-object.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://bitbucket.org/catlikecodingunitytutorials/scriptable-render-pipeline-03-lights/&#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/20181209013949/https://catlikecoding.com/unity/tutorials/scriptable-render-pipeline/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.tugraz.at/institute/icg/research/team-steinberger/research-projects/sas/&#34; target=&#34;_blank&#34; id=&#34;Shading Atlas Streaming&#34;&gt;Shading Atlas Streaming&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;object based shading approach designed for VR rendering&lt;/li&gt;
&lt;li&gt;splits rendering into client and server operations&lt;/li&gt;
&lt;li&gt;the server calculates visible geometry and object space shading&lt;/li&gt;
&lt;li&gt;the results are stored into a shading atlas&lt;/li&gt;
&lt;li&gt;the client receives a preprocessed vertex stream and the shading atlas&lt;/li&gt;
&lt;li&gt;the visible geometry is rendered from a single vertex buffer and shading is applied from the information cached in the shader atlas&lt;/li&gt;
&lt;li&gt;presents the memory management technique and mip-level 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-66/streaming_atlas.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.tugraz.at/fileadmin/user_upload/Institute/ICG/Images/team_steinberger/SAS/shading_atlas_streaming.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/20181209014317/https://www.tugraz.at/fileadmin/user_upload/Institute/ICG/Images/team_steinberger/SAS/shading_atlas_streaming.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://www.youtube.com/watch?v=ZW8MOwpOwI8&#34; style=&#34;color:white;&#34;&gt;video summary &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.tugraz.at/fileadmin/user_upload/Institute/ICG/Images/team_steinberger/SAS/supplementary.pdf&#34; style=&#34;color:white;&#34;&gt;parallel memory management &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/20181209014414/https://www.tugraz.at/fileadmin/user_upload/Institute/ICG/Images/team_steinberger/SAS/supplementary.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/20181209014130/https://www.tugraz.at/institute/icg/research/team-steinberger/research-projects/sas/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#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/MetalKit/metal/wiki&#34; target=&#34;_blank&#34; id=&#34;Metal Documentation Index&#34;&gt;Metal Documentation Index&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;user created index-page for the Apple Metal documentation&lt;/li&gt;
&lt;li&gt;contains links to samples, class documentation, best practices documents, tools and debugging helper&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-66/apple_metal_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/20181209014833/https://github.com/MetalKit/metal/wiki&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://sergeyreznik.github.io/metal-ray-tracer/part-4/index.html&#34; target=&#34;_blank&#34; id=&#34;Going slightly physically based&#34;&gt;Going slightly physically based&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 validate using image comparison and using a furnace test&lt;/li&gt;
&lt;li&gt;how to implement a plastic and glass BSDF&lt;/li&gt;
&lt;li&gt;make the ray tracer less biased through changes to the way the number of bounces is determined&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-66/pathtracing.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20181209015043/https://sergeyreznik.github.io/metal-ray-tracer/part-4/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.khronos.org/developers/library/2018-siggraph-asia&#34; target=&#34;_blank&#34; id=&#34;Khronos - 2018 SIGGRAPH Asia&#34;&gt;Khronos - 2018 SIGGRAPH Asia&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Khronos talks from Siggraph 2018 Asia&lt;/li&gt;
&lt;li&gt;talks about Vulkan

&lt;ul&gt;
&lt;li&gt;memory management, subgroup operations and the design of a FrameGraph style engine architecture&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;introduction to WebGL and overview of the latest updates to the GLTF 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-66/khronos_asia.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20181209015346/https://www.khronos.org/developers/library/2018-siggraph-asia&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://handmade.network/forums/t/3578-code_reviews_-_lamorna_engine&#34; target=&#34;_blank&#34; id=&#34;Code reviews - Lamorna Engine &#34;&gt;Code reviews - Lamorna Engine &lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;series of videos walking through the implementation of a software renderer written in multithreaded C++ using SIMD&lt;/li&gt;
&lt;li&gt;presenting the whole pipeline from vertex fetching, vertex processing, culling, projection, binning, rasterization, mipmapping and finally 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-66/software_rasterizer_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/20181209030426/https://handmade.network/forums/t/3578-code_reviews_-_lamorna_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;http://blog.tuxedolabs.com/2018/12/07/the-importance-of-good-noise.html&#34; target=&#34;_blank&#34; id=&#34;The importance of good noise&#34;&gt;The importance of good noise&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 noise is significant in computer graphics and how to animate blue noise over time so that it retains its 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-66/the-importance-of-good-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;http://web.archive.org/web/20181207140132/http://blog.tuxedolabs.com/2018/12/07/the-importance-of-good-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=edYiCE0b8-c&#34; target=&#34;_blank&#34; id=&#34;Tech Focus: Wolfenstein 2&amp;#39;s Variable Rate Shading: Nvidia Turing Analysis!&#34;&gt;Tech Focus: Wolfenstein 2&amp;#39;s Variable Rate Shading: Nvidia Turing Analysis!&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;video summary of variable rate shading&lt;/li&gt;
&lt;li&gt;presents a few approaches that are used to drive shading rate selection&lt;/li&gt;
&lt;li&gt;what options are exposed in Wolfenstein 2 and how they influence 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-66/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;http://www.ppsloan.org/publications/lmap-sabrief18.pdf&#34; target=&#34;_blank&#34; id=&#34;Directional Lightmap Encoding Insights&#34;&gt;Directional Lightmap Encoding Insights&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;new encoding model for Ambient Highlight Direction
(AHD) lightmaps that eliminate common interpolation artifacts&lt;/li&gt;
&lt;li&gt;and how to fit AHD from spherical harmonics 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-66/lightmap_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/20181209204028/http://www.ppsloan.org/publications/lmap-sabrief18.pdf&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;
&lt;p&gt;
If you are enjoying the series and getting value from it, please consider supporting this blog.
&lt;/p&gt;

&lt;script src=&#34;https://donorbox.org/install-popup-button.js&#34; type=&#34;text/javascript&#34; defer&gt;&lt;/script&gt;
&lt;a class=&#34;dbox-donation-button&#34; href=&#34;https://donorbox.org/jendrikillner&#34; style=&#34;background:#2d81c5 url(https://d1iczxrky3cnb2.cloudfront.net/red_logo.png) no-repeat 16px center; color: #fff;text-decoration: none;font-family: Verdana,sans-serif; font-size:12px; display: inline-block;padding: 5px 10px 5px 50px; -webkit-border-radius: 2px; -moz-border-radius: 2px; border-radius: 2px; box-shadow: 0 1px 0 0 #1f5a89; text-shadow: 0 1px rgba(0, 0, 0, 0.3); text-align:center;&#34; &gt;Support this blog&lt;/a&gt;
&lt;/a&gt;&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 65 — December 2, 2018</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-65/</link>
      <pubDate>Sun, 02 Dec 2018 21:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-65/</guid>
      <description>
&lt;div class=&#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/1URnqb1Vuf2jPieHnt_eqXsPV_Es9Oog00_8LKZUdo6g/edit#slide=id.p&#34; target=&#34;_blank&#34; id=&#34;WebGPU - An Explicit Graphics API for the Web&#34;&gt;WebGPU - An Explicit Graphics API for 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;review of problems with classical APIs (OpenGL) and motivations for the creation of WebGPU&lt;/li&gt;
&lt;li&gt;presentation about Dawn, WebGPU implementation from Google&lt;/li&gt;
&lt;li&gt;splits into render passes that insert resource transitions between passes automatically&lt;/li&gt;
&lt;li&gt;how numerical fences are implemented (Monotonically increasing values indicate a timestamp in GPU execution history)&lt;/li&gt;
&lt;li&gt;considerations for implementations using cross-process communication&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-65/dawn_binding.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://dawn.googlesource.com/dawn&#34; style=&#34;color:white;&#34;&gt;sourcecode &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://iorange.github.io/p02/TeapotAndBunny.html&#34; target=&#34;_blank&#34; id=&#34;Vulkan Raytracing - bunny and teapot&#34;&gt;Vulkan Raytracing - bunny and teapot&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 Vulkan raytracing series&lt;/li&gt;
&lt;li&gt;extends the application with multiple 3D meshes, texturing, simple shading, shadows, reflections, and ice 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-65/screen_08_opt-min.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/iOrange/rtxON/tree/Version_2_2&#34; style=&#34;color:white;&#34;&gt;sourcecode &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/20181203125518/https://iorange.github.io/p02/TeapotAndBunny.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://benedikt-bitterli.me/nec/&#34; target=&#34;_blank&#34; id=&#34;A radiative transfer framework for non-exponential media&#34;&gt;A radiative transfer framework for non-exponential media&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;development of a new rendering framework for transmittance for participating media that enables non-exponential media types to be represented&lt;/li&gt;
&lt;li&gt;archived by splitting transmittance into 4 transport functions&lt;/li&gt;
&lt;li&gt;discussion of how to express this new model so that it is intuitive to use and still creates physically correct 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-65/nec.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://benedikt-bitterli.me/nec/bitterli18framework.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/20181201035650/https://benedikt-bitterli.me/nec/bitterli18framework.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://benedikt-bitterli.me/nec/bitterli18framework.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/20181201035823/https://benedikt-bitterli.me/nec/bitterli18framework.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;https://github.com/tunabrain/tungsten/commit/98b366d5ddd43eaa9ee476a12ae364bedda2f94e&#34; style=&#34;color:white;&#34;&gt;sourcecode &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/20181203125630/https://github.com/tunabrain/tungsten/commit/98b366d5ddd43eaa9ee476a12ae364bedda2f94e&#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/20181203125929/https://benedikt-bitterli.me/nec/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#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/breakdown-animated-raindrop-material-in-ue4/&#34; target=&#34;_blank&#34; id=&#34;Breakdown: Animated Raindrop Material in UE4&#34;&gt;Breakdown: Animated Raindrop Material 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;walkthrough of the implementation of a rain material using the Unreal Engine 4 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-65/rain_window.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;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/20181130071044/https://80.lv/articles/breakdown-animated-raindrop-material-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;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/sh_sanity_check.html&#34; target=&#34;_blank&#34; id=&#34;How to Sanity Check your Spherical Harmonics Projection Code&#34;&gt;How to Sanity Check your Spherical Harmonics Projection Code&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 summary of what spherical harmonics are and what they are used for&lt;/li&gt;
&lt;li&gt;proposes a sanity check for SH projection code, by passing a function with a constant of 1, should result in a first coefficient close to 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-65/sh_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/20181203133952/https://erkaman.github.io/posts/sh_sanity_check.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://sighack.com/post/procedural-color-algorithms-introduction&#34; target=&#34;_blank&#34; id=&#34;Procedural Color - Introduction&#34;&gt;Procedural Color - Introduction&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;article series about procedural routines for color generation&lt;/li&gt;
&lt;li&gt;talks about some techniques to generate procedural color variations&lt;/li&gt;
&lt;li&gt;explains HSB color space and the effect of changing each component&lt;/li&gt;
&lt;li&gt;convert from RYB hues to HSB hues&lt;/li&gt;
&lt;li&gt;generation of monochrome color schemes&lt;/li&gt;
&lt;li&gt;how the difference in colors influences human perception&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-65/value-ex2.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/20181203134019/https://sighack.com/post/procedural-color-algorithms-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://developer.apple.com/documentation/metal/advanced_command_setup/encoding_indirect_command_buffers_on_the_gpu&#34; target=&#34;_blank&#34; id=&#34;Encoding Indirect Command Buffers on the GPU&#34;&gt;Encoding Indirect Command Buffers 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;a sample that explains how to use Metal to generate render commands on the GPU&lt;/li&gt;
&lt;li&gt;implements GPU culling only to issue rendering commands for visible meshes and remove empty draws&lt;/li&gt;
&lt;li&gt;the final command buffer submission is controlled 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-65/indirect_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;https://web.archive.org/web/20181203134130/https://developer.apple.com/documentation/metal/advanced_command_setup/encoding_indirect_command_buffers_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;http://www.jcgt.org/published/0007/04/01/&#34; target=&#34;_blank&#34; id=&#34;Sampling the GGX Distribution of Visible Normals&#34;&gt;Sampling the GGX Distribution of Visible Normals&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 new model for sampling visible normals of the GGX distribution&lt;/li&gt;
&lt;li&gt;summarizes the properties of GGX and how sampling a 2D projection of the truncated ellipsoid is equivalent to sampling the visible normals of the GGX distribution&lt;/li&gt;
&lt;li&gt;the method is more precise and quicker than previous methods&lt;/li&gt;
&lt;li&gt;provides 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-65/ggx_visible_normals.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/0007/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/20181201041422/http://www.jcgt.org/published/0007/04/01/paper.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;http://www.jcgt.org/published/0007/04/01/sampleGGXVNDF.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/20181201041512/http://www.jcgt.org/published/0007/04/01/sampleGGXVNDF.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/2/http://www.jcgt.org/published/0007/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://twitter.com/erkaman2/status/1068648036824424450?s=09&#34; target=&#34;_blank&#34; id=&#34;Twitter Thread - Where do the BRDF formulas come from? How can we make our own?&#34;&gt;Twitter Thread - Where do the BRDF formulas come from? How can we make our own?&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 that discusses what a BRDF is and how they are formed&lt;/li&gt;
&lt;li&gt;links to sources with more in-depth 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-65/brdf.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20181203134201/https://twitter.com/erkaman2/status/1068648036824424450?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.wihlidal.com/blog/graphics/2018-11-30-halcyon-architecture/&#34; target=&#34;_blank&#34; id=&#34;Halcyon Architecture - Director&amp;#39;s Cut&#34;&gt;Halcyon Architecture - Director&amp;#39;s Cut&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;a single slide-deck that will evolve and serve as a single reference point for information about the SEED Halcyon engine&lt;/li&gt;
&lt;li&gt;the content was discussed in issue &lt;a href=&#34;https://www.jendrikillner.com/post/graphics-programming-weekly-issue-63/&#34; target=&#34;_blank&#34;&gt;63&lt;/a&gt; &lt;a href=&#34;https://www.jendrikillner.com/post/graphics-programming-weekly-issue-61/&#34; target=&#34;_blank&#34;&gt;61&lt;/a&gt; of this graphics programming weekly 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-65/halcyon_engine.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://media.contentapi.ea.com/content/dam/ea/seed/presentations/wihlidal-halcyonarchitecture.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/20181201182335/https://media.contentapi.ea.com/content/dam/ea/seed/presentations/wihlidal-halcyonarchitecture.pptx&#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://media.contentapi.ea.com/content/dam/ea/seed/presentations/wihlidal-halcyonarchitecture-notes.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/20181201182515/https://media.contentapi.ea.com/content/dam/ea/seed/presentations/wihlidal-halcyonarchitecture-notes.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/20181203134228/https://www.wihlidal.com/blog/graphics/2018-11-30-halcyon-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://github.com/google/graphicsfuzz/blob/master/docs/glsl-reduce-walkthrough.md&#34; target=&#34;_blank&#34; id=&#34;glsl-reduce&#34;&gt;glsl-reduce&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the walkthrough explains how to use GLSL-reduce to simplify a GLSL shader and preserve certain conditions such as a crash or invalid output&lt;/li&gt;
&lt;li&gt;this is achieved with an interestingness test script&lt;/li&gt;
&lt;li&gt;the script expresses what is considered to be interesting, such as specific compiler crash, high memory usage, long compile time, etc&lt;/li&gt;
&lt;li&gt;presents the problem of bug slippage, this happens when a reduced shader generates a problem, but it&amp;rsquo;s not the same problem as in the original shader&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/20181203134255/https://github.com/google/graphicsfuzz/blob/master/docs/glsl-reduce-walkthrough.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.ronja-tutorials.com/2018/12/01/2d-shadows.html&#34; target=&#34;_blank&#34; id=&#34;2D SDF Shadows&#34;&gt;2D SDF Shadows&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 explains how to implement ray traced shadows when using a signed distance field to represent the scene geometry 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-65/2d_sdf_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/20181203134320/https://www.ronja-tutorials.com/2018/12/01/2d-shadows.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://cg.ivd.kit.edu/rwmc.php#interactive&#34; target=&#34;_blank&#34; id=&#34;Reweighting Firefly Samples for Improved Finite-Sample Monte Carlo Estimates&#34;&gt;Reweighting Firefly Samples for Improved Finite-Sample Monte Carlo Estimates&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;interactive WebGL demo for the paper describing a technique to reduce firefly artifacts from path tracer 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-65/fireflights.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://cg.ivd.kit.edu/publications/2018/rwmc/tool/rw.html&#34; style=&#34;color:white;&#34;&gt;webgl-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/20180504101736/http://cg.ivd.kit.edu:80/rwmc.php#interactive&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;
&lt;p&gt;
If you are enjoying the series and getting value from it, please consider supporting this blog.
&lt;/p&gt;

&lt;script src=&#34;https://donorbox.org/install-popup-button.js&#34; type=&#34;text/javascript&#34; defer&gt;&lt;/script&gt;
&lt;a class=&#34;dbox-donation-button&#34; href=&#34;https://donorbox.org/jendrikillner&#34; style=&#34;background:#2d81c5 url(https://d1iczxrky3cnb2.cloudfront.net/red_logo.png) no-repeat 16px center; color: #fff;text-decoration: none;font-family: Verdana,sans-serif; font-size:12px; display: inline-block;padding: 5px 10px 5px 50px; -webkit-border-radius: 2px; -moz-border-radius: 2px; border-radius: 2px; box-shadow: 0 1px 0 0 #1f5a89; text-shadow: 0 1px rgba(0, 0, 0, 0.3); text-align:center;&#34; &gt;Support this blog&lt;/a&gt;
&lt;/a&gt;&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 64 — November 25, 2018</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-64/</link>
      <pubDate>Sun, 25 Nov 2018 21:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-64/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=ERlcRbRoJF0&#34; target=&#34;_blank&#34; id=&#34;Bringing Ray-tracing into Remedy‘s Northlight Engine&#34;&gt;Bringing Ray-tracing into Remedy‘s Northlight Engine&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 concepts of the ray tracing extension&lt;/li&gt;
&lt;li&gt;started integration with replacing screenspace AO and shadow map implementations&lt;/li&gt;
&lt;li&gt;how to implement ray trace reflections, techniques to reduce noise and optimizations&lt;/li&gt;
&lt;li&gt;best optimization advice is to split ray casting and shading&lt;/li&gt;
&lt;li&gt;export ray hit information from raycasting shader, and shade samples later using a conventional compute shader&lt;/li&gt;
&lt;li&gt;overview of the indirect diffuse voxel solution used in Quantum Break and how ray tracing can be used 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-64/remedy_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&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=gJMBEvYEfJI&#34; target=&#34;_blank&#34; id=&#34;Real-Time Fluid Simulation in Shadow of the Tomb Raider&#34;&gt;Real-Time Fluid Simulation in 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;overview of the Navier-stokes equation, look at each step of the implementation and how it was integrated into the engine&lt;/li&gt;
&lt;li&gt;scrollable grid, only run simulation near the player character, a static map for the rest of the world&lt;/li&gt;
&lt;li&gt;obstacle injection uses capsule vs. water plane collision checks&lt;/li&gt;
&lt;li&gt;algae implementation uses virtual particles that convert density to particles, applies simulations, and turns back to densities&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-64/oil_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&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#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/gl_vk_meshlet_cadscene&#34; target=&#34;_blank&#34; id=&#34;Vulkan &amp;amp; OpenGL CAD Mesh Shader Sample&#34;&gt;Vulkan &amp;amp; OpenGL CAD Mesh Shader 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 sample for mesh shaders using Vulkan and OpenGL&lt;/li&gt;
&lt;li&gt;presents performance comparison for different meshes and a varying number of 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-64/meshlet_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/20181125234610/https://github.com/nvpro-samples/gl_vk_meshlet_cadscene&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://aras-p.info/texts/files/2018Academy%20-%20GPU.pdf&#34; target=&#34;_blank&#34; id=&#34;How does a GPU shader core work?&#34;&gt;How does a GPU shader core work?&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 GPU programming model, how shaders are executed&lt;/li&gt;
&lt;li&gt;showcases the differences between CPU and GPU 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-64/adam_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;http://web.archive.org/web/20181121174833/http://aras-p.info/texts/files/2018Academy%20-%20GPU.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://twitter.com/i/moments/820710168036016128&#34; target=&#34;_blank&#34; id=&#34;All about coding things&#34;&gt;All about coding things&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;twitter collection of many graphics and game programming related 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-64/twitter_coding_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/20181125233430/https://twitter.com/i/moments/820710168036016128&#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://lindenreid.wordpress.com/2018/11/19/foggy-window-shader-in-unity/&#34; target=&#34;_blank&#34; id=&#34;Foggy Window Shader in Unity&#34;&gt;Foggy Window 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;explains how to implement a shader that simulates a foggy window effect applied to a plane in 3D space&lt;/li&gt;
&lt;li&gt;allows the user to clean parts of the window. Foggy state returns after some time has passed&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-64/foggy_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/20181125233815/https://lindenreid.wordpress.com/2018/11/19/foggy-window-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;http://www.reedbeta.com/blog/custom-toolchain-with-msbuild/&#34; target=&#34;_blank&#34; id=&#34;Using A Custom Toolchain In Visual Studio With MSBuild&#34;&gt;Using A Custom Toolchain In Visual Studio With MSBuild&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 integrate the DirectX shader compiler (DXC) into the Visual Studio build system (msbuild)&lt;/li&gt;
&lt;li&gt;integration of dependency tracking&lt;/li&gt;
&lt;li&gt;detecting headers&lt;/li&gt;
&lt;li&gt;shows how to provide a regex to integrate with the Visual Studio error 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-64/dxc_msbuild.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.reedbeta.com/blog/custom-toolchain-with-msbuild/buildcust3.zip&#34; style=&#34;color:white;&#34;&gt;project src &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/20181125234154/http://www.reedbeta.com/blog/custom-toolchain-with-msbuild/buildcust3.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/20181125234027/http://www.reedbeta.com/blog/custom-toolchain-with-msbuild/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#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/i/moments/1064545102612361216&#34; target=&#34;_blank&#34; id=&#34;Rendering related threads&#34;&gt;Rendering related threads&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 rendering related twitter 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-64/render_threads_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;http://web.archive.org/web/20181125234326/https://twitter.com/i/moments/1064545102612361216&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;


&lt;div class=&#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/1FAIpQLSeIa9Z7umyrISZ711QaXkfZ4ZvVfQ7HdlyXQt6ETWAa62YUDg/viewform&#34; target=&#34;_blank&#34; id=&#34;Vulkan education survey&#34;&gt;Vulkan education 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 survey looking for feedback on Vulkan education 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-64/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;div class=&#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/model-for-real-time-beyond-counting-polygons&#34; target=&#34;_blank&#34; id=&#34;Model for Real Time—Beyond Counting Polygons&#34;&gt;Model for Real Time—Beyond Counting Polygons&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 overview about consideration for modeling techniques related to performance and minimizing z-fighting 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-64/box_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;http://web.archive.org/web/20181120235953/https://software.intel.com/en-us/articles/model-for-real-time-beyond-counting-polygons&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#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/&#34; target=&#34;_blank&#34; id=&#34;Fast, Constant Time Sphere Indexing, Part 1&#34;&gt;Fast, Constant Time Sphere Indexing, 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;article with interactive and live tweakable examples&lt;/li&gt;
&lt;li&gt;presents a technique that allows constant time conversion from a position on or above a sphere to the nearest triangle index using an octahedron subdivision 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-64/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/20181121203207/http://donw.io/post/sphere-indexing/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;
&lt;p&gt;
If you are enjoying the series and getting value from it, please consider supporting this blog.
&lt;/p&gt;

&lt;script src=&#34;https://donorbox.org/install-popup-button.js&#34; type=&#34;text/javascript&#34; defer&gt;&lt;/script&gt;
&lt;a class=&#34;dbox-donation-button&#34; href=&#34;https://donorbox.org/jendrikillner&#34; style=&#34;background:#2d81c5 url(https://d1iczxrky3cnb2.cloudfront.net/red_logo.png) no-repeat 16px center; color: #fff;text-decoration: none;font-family: Verdana,sans-serif; font-size:12px; display: inline-block;padding: 5px 10px 5px 50px; -webkit-border-radius: 2px; -moz-border-radius: 2px; border-radius: 2px; box-shadow: 0 1px 0 0 #1f5a89; text-shadow: 0 1px rgba(0, 0, 0, 0.3); text-align:center;&#34; &gt;Support this blog&lt;/a&gt;
&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://devblogs.nvidia.com/parallel-shader-compilation-ray-tracing-pipeline-states/&#34; target=&#34;_blank&#34; id=&#34;Parallel Shader Compilation for Ray Tracing Pipeline States&#34;&gt;Parallel Shader Compilation for Ray Tracing Pipeline States&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 new D3D12 API additions to precompile shaders for DirectX raytracing in parallel into a native hardware 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-64/PSO_multithread.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;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/20181121181207/https://devblogs.nvidia.com/parallel-shader-compilation-ray-tracing-pipeline-states/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=54oU4XAWmM8&#34; target=&#34;_blank&#34; id=&#34;Dota 2 OpenGL vs. Dx9 vs. Dx11 vs. Vulkan&#34;&gt;Dota 2 OpenGL vs. Dx9 vs. Dx11 vs. Vulkan&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 OpenGL, D3D9, D3D11, and Vulkan in Dota 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-64/dota2_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&gt;&lt;/p&gt;


&lt;div class=&#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/ninokuni2-frame/&#34; target=&#34;_blank&#34; id=&#34;Ni No Kuni 2: frame analysis&#34;&gt;Ni No Kuni 2: 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;frame breakdown of an interior scene in Ni No Kuni 2&lt;/li&gt;
&lt;li&gt;uses a light pre-pass architecture&lt;/li&gt;
&lt;li&gt;the cartoon edge line is using FXAA for smoother lines, and the final render result uses SMAA&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-64/ni_no_kuni.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;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/20181108144645/https://blog.thomaspoulet.fr/ninokuni2-frame/&#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/dcoeurjo/LowDiscBlueNoise&#34; target=&#34;_blank&#34; id=&#34;Low-Discrepancy Blue Noise Sampling&#34;&gt;Low-Discrepancy Blue Noise Sampling&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;C++ header only implementation to generate 2D blue noise 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-64/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&gt;


&lt;div class=&#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/2018/11/24/rasterization-in-one-weekend-part-i/&#34; target=&#34;_blank&#34; id=&#34;Rasterization in One Weekend, Part I&#34;&gt;Rasterization in One Weekend, 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 the series on writing a software rasterizer in C++&lt;/li&gt;
&lt;li&gt;explains the concept of barycentric coordinates, edge functions and how they are combined to rasterize a 2D 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-64/edge_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;http://web.archive.org/web/20181125050120/https://tayfunkayhan.wordpress.com/2018/11/24/rasterization-in-one-weekend-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.jeremyong.com/c&amp;#43;&amp;#43;/graphics/gpu/vulkan/2018/11/22/vulkan-synchronization-primer.html&#34; target=&#34;_blank&#34; id=&#34;Vulkan Synchronization Primer - Part I&#34;&gt;Vulkan Synchronization Primer - 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;overview of the synchronization primitives of the Vulkan API&lt;/li&gt;
&lt;li&gt;explains concepts of barriers, access masks, semaphores, and queue 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-64/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 class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20181126000504/https://www.jeremyong.com/c&amp;#43;&amp;#43;/graphics/gpu/vulkan/2018/11/22/vulkan-synchronization-primer.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/c&amp;#43;&amp;#43;/graphics/gpu/vulkan/2018/11/23/vulkan-synchonization-primer-part-ii.html&#34; target=&#34;_blank&#34; id=&#34;Vulkan Synchronization Primer - Part II&#34;&gt;Vulkan Synchronization Primer - 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 distinction between memory and execution barrier&lt;/li&gt;
&lt;li&gt;explains render passes including sub-region dependencies&lt;/li&gt;
&lt;li&gt;look at GPU → CPU 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-64/vulkan_barrier2.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20181126000618/https://www.jeremyong.com/c&amp;#43;&amp;#43;/graphics/gpu/vulkan/2018/11/23/vulkan-synchonization-primer-part-ii.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;
&lt;p&gt;
If you are enjoying the series and getting value from it, please consider supporting this blog.
&lt;/p&gt;

&lt;script src=&#34;https://donorbox.org/install-popup-button.js&#34; type=&#34;text/javascript&#34; defer&gt;&lt;/script&gt;
&lt;a class=&#34;dbox-donation-button&#34; href=&#34;https://donorbox.org/jendrikillner&#34; style=&#34;background:#2d81c5 url(https://d1iczxrky3cnb2.cloudfront.net/red_logo.png) no-repeat 16px center; color: #fff;text-decoration: none;font-family: Verdana,sans-serif; font-size:12px; display: inline-block;padding: 5px 10px 5px 50px; -webkit-border-radius: 2px; -moz-border-radius: 2px; border-radius: 2px; box-shadow: 0 1px 0 0 #1f5a89; text-shadow: 0 1px rgba(0, 0, 0, 0.3); text-align:center;&#34; &gt;Support this blog&lt;/a&gt;
&lt;/a&gt;&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 63 — November 18, 2018</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-63/</link>
      <pubDate>Sun, 18 Nov 2018 21:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-63/</guid>
      <description>
&lt;div class=&#34;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/syysgraph-2018-modern-graphics-abstractions-real-time-ray-tracing&#34; target=&#34;_blank&#34; id=&#34;Modern graphics abstraction and real-time ray tracing&#34;&gt;Modern graphics abstraction and 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;overview of architecture&lt;/li&gt;
&lt;li&gt;multiple render backends are supported at the same time&lt;/li&gt;
&lt;li&gt;all GPU resources are referred to by a handle, resources can exist on multiple GPUs&lt;/li&gt;
&lt;li&gt;overview of the high-level command system that is recorded and translated into native API command buffers&lt;/li&gt;
&lt;li&gt;render graph system graph construction and execution&lt;/li&gt;
&lt;li&gt;how to deal with multiple GPUs&lt;/li&gt;
&lt;li&gt;virtual GPU system allows emulation of a multi GPU setup using a single GPU&lt;/li&gt;
&lt;li&gt;proxy backend routes rendering calls to a remote machine for execution&lt;/li&gt;
&lt;li&gt;a brief look at machine learning in a render graph architecture&lt;/li&gt;
&lt;li&gt;overview of the asset pipeline&lt;/li&gt;
&lt;li&gt;overview of hybrid rendering pipeline and how transparent shadows have been implemented using DirectX Raytracing&lt;/li&gt;
&lt;li&gt;discussing open problems 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-63/render_proxy.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/syysgraph2018-moderngraphicsabstraction-realtimeraytracing.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/20181117062434/https://media.contentapi.ea.com/content/dam/ea/seed/presentations/syysgraph2018-moderngraphicsabstraction-realtimeraytracing.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/20181117062407/https://www.ea.com/seed/news/syysgraph-2018-modern-graphics-abstractions-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://webkit.org/blog/8482/web-high-level-shading-language/&#34; target=&#34;_blank&#34; id=&#34;Web High Level Shading Language&#34;&gt;Web High Level Shading Language&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 shading language, designed for use with WebGPU&lt;/li&gt;
&lt;li&gt;discusses the constraints of targeting the web, and the ability to convert to Metal, HLSL, and SPIR-V&lt;/li&gt;
&lt;li&gt;SPIR-V limitations also limit the expressiveness of WHLSL&lt;/li&gt;
&lt;li&gt;memory safety for arrays, getter and setter support&lt;/li&gt;
&lt;li&gt;does not support a preprocessor but instead uses a two-pass compilation model with specialization constants&lt;/li&gt;
&lt;li&gt;bindless binding model is not 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-63/WHLSL.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;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/20181113113104/https://webkit.org/blog/8482/web-high-level-shading-language/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.superluminal.eu/2018/11/12/16x-aa-font-rendering-using-coverage-masks-part-ii/&#34; target=&#34;_blank&#34; id=&#34;16x AA font rendering using coverage masks, part II&#34;&gt;16x AA font rendering using coverage masks, 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 series on font rendering&lt;/li&gt;
&lt;li&gt;shows the artifacts a regular grid sampling pattern causes and how a rotated grid improves the edges of glyphs that contain straight lines&lt;/li&gt;
&lt;li&gt;explains how to sample the grid efficiently by splitting the rotation into one horizontal and one vertical skew&lt;/li&gt;
&lt;li&gt;able to optimize the sampling by precalculating 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-63/art_rotated_t_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;http://web.archive.org/web/20181113145900/https://www.superluminal.eu/2018/11/12/16x-aa-font-rendering-using-coverage-masks-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://www.phoronix.com/scan.php?page=news_item&amp;amp;px=Microsoft-Shader-Conductor&#34; target=&#34;_blank&#34; id=&#34;Microsoft&amp;#39;s New Open-Source Project Is Shader Conductor For Cross-Compiling HLSL&#34;&gt;Microsoft&amp;#39;s New Open-Source Project Is Shader Conductor For Cross-Compiling HLSL&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;new open source library from Microsoft that combines the &lt;a href=&#34;https://github.com/Microsoft/DirectXShaderCompiler&#34; target=&#34;_blank&#34;&gt;DirectXShaderCompiler&lt;/a&gt; and &lt;a href=&#34;https://github.com/KhronosGroup/SPIRV-Cross&#34; target=&#34;_blank&#34;&gt;SPIRV-Cross&lt;/a&gt; to convert HLSL shaders into OpenGL/Metal/SPIR-V or HLSL compatible with 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-63/shader_conductor.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20181119123741/https://www.phoronix.com/scan.php?page=news_item&amp;amp;px=Microsoft-Shader-Conductor&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#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/a-simple-method-to-construct-isotropic-quasirandom-blue-noise-point-sequences/&#34; target=&#34;_blank&#34; id=&#34;A simple method to construct isotropic quasirandom blue noise point sequences&#34;&gt;A simple method to construct isotropic quasirandom blue noise point sequences&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 generate a quasirandom blue noise point sequence&lt;/li&gt;
&lt;li&gt;shows the mathematical foundation, distribution analysis and comparison with other techniques&lt;/li&gt;
&lt;li&gt;python code is provided to help with the understanding 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-63/sample_jitter.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.shadertoy.com/view/MtVBRw&#34; style=&#34;color:white;&#34;&gt;shadertoy &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/20181117062009/http://extremelearning.com.au/a-simple-method-to-construct-isotropic-quasirandom-blue-noise-point-sequences/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://anchor.fm/ourmachinery/episodes/EP3OM-Cross-Platform-Graphics-e2j1kk&#34; target=&#34;_blank&#34; id=&#34;Our Machinery Episode 3: Cross-Platform Graphics&#34;&gt;Our Machinery Episode 3: Cross-Platform Graphics&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 discusses how to design a cross-platform API, problems, and considerations&lt;/li&gt;
&lt;li&gt;engine design is aimed at modern APIs, supporting older APIs is not a concern for &amp;ldquo;Our Machinery&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-63/cross_platform_graphics.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20181117062104/https://anchor.fm/ourmachinery/episodes/EP3OM-Cross-Platform-Graphics-e2j1kk&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#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/2018/11/reverse-engineering-rendering-of_13.html&#34; target=&#34;_blank&#34; id=&#34;Reverse engineering the rendering of The Witcher 3, part 6 - sharpen&#34;&gt;Reverse engineering the rendering of The Witcher 3, part 6 - sharpen&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 sharpening filter from The Witcher 3 and explains how it works step by step&lt;/li&gt;
&lt;li&gt;provides HLSL source code that produces the same 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-63/witcher3_sharpening.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20181117062149/https://astralcode.blogspot.com/2018/11/reverse-engineering-rendering-of_13.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://asawicki.info/news_1695_there_is_a_way_to_query_gpu_memory_usage_in_vulkan_-_use_dxgi.html&#34; target=&#34;_blank&#34; id=&#34;There is a way to query GPU memory usage in Vulkan - use DXGI&#34;&gt;There is a way to query GPU memory usage in Vulkan - use DXGI&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;shows that using DXGI functionality can be used to keep track of Vulkan memory usage on Windows&lt;/li&gt;
&lt;li&gt;presents how to identify physical adapters between Vulkan and DXGI to deal with multi-GPU systems&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/20181117062238/http://asawicki.info/news_1695_there_is_a_way_to_query_gpu_memory_usage_in_vulkan_-_use_dxgi.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://asawicki.info/news_1696_vulkan_with_dxgi_-_experiment_results.html&#34; target=&#34;_blank&#34; id=&#34;Vulkan with DXGI - experiment results&#34;&gt;Vulkan with DXGI - experiment results&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;experiments with using DXGI for memory reporting when using Vulkan&lt;/li&gt;
&lt;li&gt;results are presented for the system using one AMD and one NVIDIA GPU&lt;/li&gt;
&lt;li&gt;memory management behavior seems to be different between the vendors&lt;/li&gt;
&lt;li&gt;DXGI appears to be able to report sensible application local memory usage information&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/20181119123917/http://asawicki.info/news_1696_vulkan_with_dxgi_-_experiment_results.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://themaister.net/blog/2018/11/09/experimenting-with-vk_google_display_timing-taking-control-over-the-swap-chain/&#34; target=&#34;_blank&#34; id=&#34;Experimenting with VK_GOOGLE_display_timing, taking control over the swap chain&#34;&gt;Experimenting with VK_GOOGLE_display_timing, taking control over the swap chain&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the extension allows the application to collect timing information from the presentation engine and schedule presents at specified times&lt;/li&gt;
&lt;li&gt;the post presents results from experimenting with VK_GOOGLE_display_timing on Android and Mesa (X11)&lt;/li&gt;
&lt;li&gt;list of issues encountered and possible points of improvement&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/20181117062319/http://themaister.net/blog/2018/11/09/experimenting-with-vk_google_display_timing-taking-control-over-the-swap-chain/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#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/2018/11/16/how-to-data-lookups-via-raytracing/&#34; target=&#34;_blank&#34; id=&#34;How To: Data Lookups Via Raytracing&#34;&gt;How To: Data Lookups Via Raytracing&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 ray-tracing could be used for arbitrary data-lookup in 2D and 3D&lt;/li&gt;
&lt;li&gt;can handle more data points where the signal changes more rapidly&lt;/li&gt;
&lt;li&gt;a texture has a fixed resolution and cannot adjust to varying density needs&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-63/ray2d.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20181117163422/https://blog.demofox.org/2018/11/16/how-to-data-lookups-via-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://www.youtube.com/watch?v=YCteLdYdZWQ&#34; target=&#34;_blank&#34; id=&#34;niagara: Depth pyramid for occlusion&#34;&gt;niagara: Depth pyramid for occlusion&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 generate a depth pyramid for Vulkan&lt;/li&gt;
&lt;li&gt;takes the depth buffer and produces a conservative mipmap chain&lt;/li&gt;
&lt;li&gt;preparation for GPU occlusion culling in the next episode&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-63/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&gt;&lt;/p&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=Fj1E1A4CPCM&#34; target=&#34;_blank&#34; id=&#34;niagara: Occlusion culling&#34;&gt;niagara: 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;implementation of GPU occlusion culling into the mesh-shader and classical 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-63/gpu_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;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://hackmd.io/s/HJMDHKI6Q&#34; target=&#34;_blank&#34; id=&#34;Graphics Programming - Resources for Beginners&#34;&gt;Graphics Programming - Resources 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;list of resources for beginners that are looking 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;&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20181117061754/https://hackmd.io/s/HJMDHKI6Q&#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/KhronosGroup/Vulkan-Docs/issues/854&#34; target=&#34;_blank&#34; id=&#34;Task list for VK_EXT_scalar_block_layout&#34;&gt;Task list for VK_EXT_scalar_block_layout&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 extension that allows usage of the C++ memory layout in Vulkan constant and structured buffers&lt;/li&gt;
&lt;li&gt;this relaxes the alignment requirements&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/20181117062512/https://github.com/KhronosGroup/Vulkan-Docs/issues/854&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#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/model_matrix_recover.html&#34; target=&#34;_blank&#34; id=&#34;Recovering the Scale, Rotation and Translation Matrices from the Model Matrix&#34;&gt;Recovering the Scale, Rotation and Translation Matrices from the Model Matrix&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 recover the scale, rotation, and position from a model matrix&lt;/li&gt;
&lt;li&gt;rotation is retrieved as a rotation 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-63/original_rotated_axes.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20181119025342/https://erkaman.github.io/posts/model_matrix_recover.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=8FoAxasNssA&#34; target=&#34;_blank&#34; id=&#34;CppCon 2018: Valentin Galea “Rapid Prototyping of Graphics Shaders in Modern C&amp;#43;&amp;#43;”&#34;&gt;CppCon 2018: Valentin Galea “Rapid Prototyping of Graphics Shaders in Modern 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;a presentation about the development and design of a C++ library implementation that allows GLSL shaders to 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-63/shaders_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&gt;&lt;/p&gt;

&lt;hr /&gt;


&lt;p&gt;
If you are enjoying the series and getting value from it, please consider supporting this blog.
&lt;/p&gt;

&lt;script src=&#34;https://donorbox.org/install-popup-button.js&#34; type=&#34;text/javascript&#34; defer&gt;&lt;/script&gt;
&lt;a class=&#34;dbox-donation-button&#34; href=&#34;https://donorbox.org/jendrikillner&#34; style=&#34;background:#2d81c5 url(https://d1iczxrky3cnb2.cloudfront.net/red_logo.png) no-repeat 16px center; color: #fff;text-decoration: none;font-family: Verdana,sans-serif; font-size:12px; display: inline-block;padding: 5px 10px 5px 50px; -webkit-border-radius: 2px; -moz-border-radius: 2px; border-radius: 2px; box-shadow: 0 1px 0 0 #1f5a89; text-shadow: 0 1px rgba(0, 0, 0, 0.3); text-align:center;&#34; &gt;Support this blog&lt;/a&gt;
&lt;/a&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 62 — November 11, 2018</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-62/</link>
      <pubDate>Sun, 11 Nov 2018 21:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-62/</guid>
      <description>
&lt;div class=&#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/optimize-engine-using-compute-4c-prague-2018/&#34; target=&#34;_blank&#34; id=&#34;Optimize your engine using compute @ 4C Prague 2018&#34;&gt;Optimize your engine using compute @ 4C Prague 2018&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 compute shader execution and pipeline model&lt;/li&gt;
&lt;li&gt;explains how instructions are executed, what the difference between uniform and non-uniform work is and how it relates to SGPRs and VGPRs&lt;/li&gt;
&lt;li&gt;using the example of texture downsampling to present the performance profile of a pixel shader solution and why a compute shader solution can achieve better 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-62/amd_compute.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://32ipi028l5q82yhj72224m8j-wpengine.netdna-ssl.com/wp-content/uploads/2018/11/4C-Prague-Compute-Shaders.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/20181110062845/https://32ipi028l5q82yhj72224m8j-wpengine.netdna-ssl.com/wp-content/uploads/2018/11/4C-Prague-Compute-Shaders.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/20181110062818/https://gpuopen.com/optimize-engine-using-compute-4c-prague-2018/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://flashypixels.wordpress.com/2018/11/10/intro-to-gpu-scalarization-part-1/&#34; target=&#34;_blank&#34; id=&#34;Intro to gpu scalarization – part 1&#34;&gt;Intro to gpu scalarization – 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 of the GPU execution model, the difference between scalar and vector registers and instructions&lt;/li&gt;
&lt;li&gt;explains the concept of scalarization and how wave level instructions enable this 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-62/scalarization_1.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.jendrikillner.com/files/flashypixels_scalarization.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/20181112121926/https://www.jendrikillner.com/files/flashypixels_scalarization.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/20181112002920/https://flashypixels.wordpress.com/2018/11/10/intro-to-gpu-scalarization-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://flashypixels.wordpress.com/2018/11/10/intro-to-gpu-scalarization-part-2-scalarize-all-the-lights/&#34; target=&#34;_blank&#34; id=&#34;Intro to gpu scalarization – part 2&#34;&gt;Intro to gpu scalarization – 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;walkthrough of two different strategies to scalarize the forward+ shading loop&lt;/li&gt;
&lt;li&gt;provides code, step by step analysis and links to more in-depth 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-62/scalarization_2.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.jendrikillner.com/files/flashypixels_scalarization.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/20181112121926/https://www.jendrikillner.com/files/flashypixels_scalarization.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/20181112003645/https://flashypixels.wordpress.com/2018/11/10/intro-to-gpu-scalarization-part-2-scalarize-all-the-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=7yzwuzs3jHY&#34; target=&#34;_blank&#34; id=&#34;SIGGRAPH Asia 2018 – Technical Papers Trailer&#34;&gt;SIGGRAPH Asia 2018 – 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 some of the technical papers that will be presented during SIGGRAPH Asia 2018, 4-7 December 2018 in Tokyo&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-62/SIGGRAPH_Asia_2018_Technical_Papers.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=NGGzk4Fi2iU&#34; target=&#34;_blank&#34; id=&#34;niagara: GPU object culling&#34;&gt;niagara: GPU object culling&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;adding support for multiple meshes and GPU frustum culling and submission&lt;/li&gt;
&lt;li&gt;one Dispatch to execute culling and one ExecuteIndirect is used to draw the rest 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-62/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 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/zeux/niagara&#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;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=IYRgDcnJJ2I&#34; target=&#34;_blank&#34; id=&#34;niagara: Faster culling and LOD&#34;&gt;niagara: Faster culling and LOD&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;improving culling performance through the removal of dummy draw calls&lt;/li&gt;
&lt;li&gt;implementation of LOD selection per mesh&lt;/li&gt;
&lt;li&gt;support querying of pipeline statistics to gather information about the number of triangles drawn&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-62/gpu_culling.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/zeux/niagara&#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;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://iorange.github.io&#34; target=&#34;_blank&#34; id=&#34;VK_NVX_raytracing - Triangle&#34;&gt;VK_NVX_raytracing - 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 walkthrough that explains all the concepts and shaders necessary to ray trace a single colored triangle using the Vulkan raytracing 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-62/vulkan_raytracing.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/iOrange/rtxON/tree/happy_triangle_fixed&#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/20181110062552/https://iorange.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://devblogs.nvidia.com/accelerated-ray-tracing-cuda/&#34; target=&#34;_blank&#34; id=&#34;Accelerated Ray Tracing in One Weekend in CUDA&#34;&gt;Accelerated Ray Tracing in One Weekend in CUDA&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 convert the code from the &lt;a href=&#34;http://in1weekend.blogspot.com/2016/01/ray-tracing-in-one-weekend.html&#34; target=&#34;_blank&#34;&gt;Ray Tracing in One Weekend&lt;/a&gt; book to use CUDA&lt;/li&gt;
&lt;li&gt;the source code is available &lt;a href=&#34;https://github.com/rogerallen/raytracinginoneweekendincuda&#34; target=&#34;_blank&#34;&gt;here&lt;/a&gt;, one branch for each chapter&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-62/cuda_raytracing.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/rogerallen/raytracinginoneweekendincuda&#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;http://web.archive.org/web/20181108065538/https://devblogs.nvidia.com/accelerated-ray-tracing-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://www.ronja-tutorials.com/2018/11/10/2d-sdf-basics.html&#34; target=&#34;_blank&#34; id=&#34;2D Signed Distance Field Basics&#34;&gt;2D Signed Distance Field Basics&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 explains how to create a signed distance field for a 2D circle and rectangle&lt;/li&gt;
&lt;li&gt;how to apply transformations (translation, rotation, scale) and how to visualize the distance field to aid 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-62/distance_fields.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20181110063231/https://www.ronja-tutorials.com/2018/11/10/2d-sdf-basics.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/picking-hit-testing/&#34; target=&#34;_blank&#34; id=&#34;Picking and Hit-Testing in Metal&#34;&gt;Picking and Hit-Testing 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;explains how to implement 3D picking in a Metal application&lt;/li&gt;
&lt;li&gt;overview of coordinate spaces and how to convert between them&lt;/li&gt;
&lt;li&gt;hit-testing performed using a ray vs. bounding sphere 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-62/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/20181110063123/http://metalbyexample.com/picking-hit-testing/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#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/2018/11/few-words-about-hlslexplorer.html&#34; target=&#34;_blank&#34; id=&#34;Few words about HLSLexplorer&#34;&gt;Few words about HLSLexplorer&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, now open source, that allows the compilation of HLSL and shows the disassembly in DXBC and AMD GCN&lt;/li&gt;
&lt;li&gt;includes a small utility to visualize the effect of a fullscreen pixel shader 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-62/HLSLexplorer_showcase.JPG&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20181110063029/http://astralcode.blogspot.com/2018/11/few-words-about-hlslexplorer.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://alain.xyz/blog/image-editor-effects&#34; target=&#34;_blank&#34; id=&#34;Image Editor Effects&#34;&gt;Image Editor Effects&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 image effects found in tools such as Photoshop with a small explanation and GLSL code snippets&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-62/lighten.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/alaingalvan/photoshop-shaders.gmx/tree/master/shaders&#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;hr /&gt;

&lt;p&gt;
&lt;p&gt;
If you are enjoying the series and getting value from it, please consider supporting this blog.
&lt;/p&gt;

&lt;script src=&#34;https://donorbox.org/install-popup-button.js&#34; type=&#34;text/javascript&#34; defer&gt;&lt;/script&gt;
&lt;a class=&#34;dbox-donation-button&#34; href=&#34;https://donorbox.org/jendrikillner&#34; style=&#34;background:#2d81c5 url(https://d1iczxrky3cnb2.cloudfront.net/red_logo.png) no-repeat 16px center; color: #fff;text-decoration: none;font-family: Verdana,sans-serif; font-size:12px; display: inline-block;padding: 5px 10px 5px 50px; -webkit-border-radius: 2px; -moz-border-radius: 2px; border-radius: 2px; box-shadow: 0 1px 0 0 #1f5a89; text-shadow: 0 1px rgba(0, 0, 0, 0.3); text-align:center;&#34; &gt;Support this blog&lt;/a&gt;
&lt;/a&gt;&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 61 — November 4, 2018</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-61/</link>
      <pubDate>Sun, 04 Nov 2018 21:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-61/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://rgl.epfl.ch/publications/Dupuy2018Adaptive&#34; target=&#34;_blank&#34; id=&#34;An Adaptive Parameterization for Efficient Material Acquisition and Rendering&#34;&gt;An Adaptive Parameterization for Efficient Material Acquisition 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;paper on BRDF measurement which proposes a new parameterization that adapts to the behavior of the material&lt;/li&gt;
&lt;li&gt;able to significantly reduce the number of samples required&lt;/li&gt;
&lt;li&gt;published a new large database of measured BRDFs that have been captured using this 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-61/Dupuy2018Adaptive_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;http://rgl.s3.eu-central-1.amazonaws.com/media/papers/Dupuy2018Adaptive.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/20181103185901/http://rgl.s3.eu-central-1.amazonaws.com/media/papers/Dupuy2018Adaptive.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;http://rgl.epfl.ch/materials&#34; style=&#34;color:white;&#34;&gt;database &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/20181102144713/http://rgl.epfl.ch/materials&#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://rgl.s3.eu-central-1.amazonaws.com/media/papers/Dupuy2018Adaptive.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/20181103185205/http://rgl.s3.eu-central-1.amazonaws.com/media/papers/Dupuy2018Adaptive.mp4&#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/20181103184949/http://rgl.epfl.ch/publications/Dupuy2018Adaptive&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;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/khronos-munich-2018-halcyon-vulkan&#34; target=&#34;_blank&#34; id=&#34;halcyon &amp;#43; vulkan&#34;&gt;halcyon &amp;#43; 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 an architecture overview of the engine&lt;/li&gt;
&lt;li&gt;render backends are implemented as DLLs that can be reloaded at runtime&lt;/li&gt;
&lt;li&gt;multiple backends can be loaded at the same time&lt;/li&gt;
&lt;li&gt;resource handle system that allows the same resource to point to physical instances on multiple GPUs&lt;/li&gt;
&lt;li&gt;GPU work is recorded into an abstract command stream that is later compiled into API specific format&lt;/li&gt;
&lt;li&gt;render graph system that manages resource transitions, lifetimes, and execution order&lt;/li&gt;
&lt;li&gt;showcase of shader binding model

&lt;ul&gt;
&lt;li&gt;using HLSL spaces concept to separate between update frequencies&lt;/li&gt;
&lt;li&gt;explanation how the HLSL resource binding model was emulated with SPIR-V using shader patching&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-61/halycon_vulkan.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/wihlidal-munich2018-halcyonvulkan.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/20181104042758/https://media.contentapi.ea.com/content/dam/ea/seed/presentations/wihlidal-munich2018-halcyonvulkan.pptx&#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://media.contentapi.ea.com/content/dam/ea/seed/presentations/wihlidal-munich2018-halcyonvulkan.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/20181104042909/https://media.contentapi.ea.com/content/dam/ea/seed/presentations/wihlidal-munich2018-halcyonvulkan.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/20181104042358/https://www.ea.com/seed/news/khronos-munich-2018-halcyon-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://nical.github.io/posts/rust-2d-graphics-02.html&#34; target=&#34;_blank&#34; id=&#34;2d graphics in Rust discussion - A look at GPU memory management&#34;&gt;2d graphics in Rust discussion - A look at GPU 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;discusses considerations when designing memory components for use with gfx-hal (rust graphics API abstraction)&lt;/li&gt;
&lt;li&gt;proposes not to use a general purpose allocator but instead to implement simple allocator components and combine them into context-aware allocators on a higher 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-61/gpu_memory_rust.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;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/20181031141556/https://nical.github.io/posts/rust-2d-graphics-02.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/TheRealMJP/DXRPathTracer&#34; target=&#34;_blank&#34; id=&#34;DXRPathTracer&#34;&gt;DXRPathTracer&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 path tracer implemented using the DirectX Ray Tracing 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-61/DXRPathTracer.png&#34; style=&#34;margin:0px&#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.superluminal.eu/2018/10/29/16xaa-font-rendering-using-coverage-masks-part-i/&#34; target=&#34;_blank&#34; id=&#34;16xAA font rendering using coverage masks, part I&#34;&gt;16xAA font rendering using coverage masks, 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;presents a technique for font rendering that operates on coverage instead of visibility&lt;/li&gt;
&lt;li&gt;this allows fonts to remain sharp when moving on the screen and at varying font sizes&lt;/li&gt;
&lt;li&gt;for each pixel in a glyph, a 4x4 sub-sample grid of visibility samples is calculated ahead of time&lt;/li&gt;
&lt;li&gt;explains how to use this coverage mask to implement font rendering&lt;/li&gt;
&lt;li&gt;covering how to sample the coverage mark correctly for axis-aligned font 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-61/art_regular_grid_vert_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;http://web.archive.org/web/20181103145834/https://www.superluminal.eu/2018/10/29/16xaa-font-rendering-using-coverage-masks-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://blogs.msdn.microsoft.com/pix/2018/10/29/pix-1810-24/&#34; target=&#34;_blank&#34; id=&#34;PIX 1810.24 – Support for final DirectX Raytracing API&#34;&gt;PIX 1810.24 – Support for final DirectX Raytracing API&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 that supports the final DirectX Raytracing API 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-61/pix_accel_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/20181104043423/https://blogs.msdn.microsoft.com/pix/2018/10/29/pix-1810-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://news.developer.nvidia.com/nvidia-announces-nsight-graphics-2018-6/?linkId=100000003911686&#34; target=&#34;_blank&#34; id=&#34;NVIDIA Announces Nsight Graphics 2018.6&#34;&gt;NVIDIA Announces Nsight Graphics 2018.6&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;full Linux support for Vulkan and OpenGL 4.5&lt;/li&gt;
&lt;li&gt;support for final DirectX Raytracing API and new supports Vulkan extensions such as VK_NV_shading_rate_image, VK_NVX_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-61/nsight_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/20181104043541/https://news.developer.nvidia.com/nvidia-announces-nsight-graphics-2018-6/?linkId=100000003911686&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#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/2018/10/bc7-with-decorrelated-alpha.html&#34; target=&#34;_blank&#34; id=&#34;Existing BC7 codecs don&amp;#39;t handle textures with decorrelated alpha channels well&#34;&gt;Existing BC7 codecs don&amp;#39;t handle textures with decorrelated alpha channels well&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;shows that BC7 encoders produce compression artifacts when the alpha channel is unrelated to the RGB channels&lt;/li&gt;
&lt;li&gt;presents a heuristic to decide what BC7 mode to use on a per-block basis to improve the 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-61/bc7_compression_problems.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;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/20181031225052/http://richg42.blogspot.com/2018/10/bc7-with-decorrelated-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://engineering.riotgames.com/news/profiling-case-missing-milliseconds&#34; target=&#34;_blank&#34; id=&#34;profiling: the case of the missing milliseconds&#34;&gt;profiling: the case of the missing milliseconds&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;case study of a performance regression in League of legends&lt;/li&gt;
&lt;li&gt;presents what performance data they collected&lt;/li&gt;
&lt;li&gt;shows what problems they had with the existing data and how a better aggregation of performance data into distinct buckets allows better detection of performance regressions&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-61/missingmilliseconds_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;http://web.archive.org/web/20181031213316/https://engineering.riotgames.com/news/profiling-case-missing-milliseconds&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#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/effectively-integrating-rtx-ray-tracing-real-time-rendering-engine/&#34; target=&#34;_blank&#34; id=&#34;Effectively Integrating RTX Ray Tracing into a Real-Time Rendering Engine&#34;&gt;Effectively Integrating RTX Ray Tracing into a Real-Time 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;provides best practices for applications that use the RTX API&lt;/li&gt;
&lt;li&gt;talks about acceleration structure creation and updating&lt;/li&gt;
&lt;li&gt;how to improve memory usage, improve performance and best practices for shader authoring and compiling&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-61/ray_tracing_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/20181104043856/https://devblogs.nvidia.com/effectively-integrating-rtx-ray-tracing-real-time-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;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.dsdambuster.com/blog/lsao-part-2&#34; target=&#34;_blank&#34; id=&#34;large scale ambient occlusion: eliminating light leaks&#34;&gt;large scale ambient occlusion: eliminating light leaks&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 reduce light leaks in a large scale global illumination system&lt;/li&gt;
&lt;li&gt;each geometry is associated with markup information about visibility zones&lt;/li&gt;
&lt;li&gt;GI light data is only applied if two pieces of geometry are in the same visibility zone or are visible through connected portals&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-61/room_volumes_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/20181104044046/https://www.dsdambuster.com/blog/lsao-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://aras-p.info/blog/2018/10/31/SPIR-V-Compression-SMOL-vs-MARK/&#34; target=&#34;_blank&#34; id=&#34;SPIR-V Compression: SMOL vs MARK&#34;&gt;SPIR-V Compression: SMOL vs MARK&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;comparison of  two libraries to compress SPIR-V shaders SMOL-V MARK-V&lt;/li&gt;
&lt;li&gt;compares for compression ration, decompression speed, and library size&lt;/li&gt;
&lt;li&gt;MARK-V achieve great compression results, but the library has a large memory footprint and is slow at decompressing 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-61/SMOL_vs_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/20181104044150/https://aras-p.info/blog/2018/10/31/SPIR-V-Compression-SMOL-vs-MARK/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#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/custom-shaders/&#34; target=&#34;_blank&#34; id=&#34;Custom Shaders HLSL and Core Library&#34;&gt;Custom Shaders HLSL and Core Library&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 create a custom shader for use with the scriptable render pipeline in Unity&lt;/li&gt;
&lt;li&gt;teaches how to interact with constant buffers&lt;/li&gt;
&lt;li&gt;presents what is required for GPU instancing to be supported by a shader and how to pass custom per-material data to the instanced 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-61/cubes-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;http://web.archive.org/web/20181101233435/https://catlikecoding.com/unity/tutorials/scriptable-render-pipeline/custom-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/2018/10/31/introducing-zink-opengl-implementation-vulkan/&#34; target=&#34;_blank&#34; id=&#34;Introducing Zink, an OpenGL implementation on top of Vulkan&#34;&gt;Introducing Zink, an OpenGL implementation on top of Vulkan&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;mesa gallium driver that implements partial support for OpenGL 2.1, and OpenGL ES 1.1 and 2.0 on top of Vulkan&lt;/li&gt;
&lt;li&gt;talks about why this project was started, and what is and is not supported at this 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-61/zink-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;http://web.archive.org/web/20181102180700/https://www.collabora.com/news-and-blog/blog/2018/10/31/introducing-zink-opengl-implementation-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://www.gamasutra.com/blogs/SvyatoslavCherkasov/20181023/329151/Graveyard_Keeper_How_the_graphics_effects_are_made.php&#34; target=&#34;_blank&#34; id=&#34;Graveyard Keeper: How the graphics effects are made&#34;&gt;Graveyard Keeper: How the graphics effects are made&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 lighting system in the 2D game was implemented&lt;/li&gt;
&lt;li&gt;making heavy use of color remapping LUTs&lt;/li&gt;
&lt;li&gt;sprites have normal maps, lights move in 3D space with custom light falloffs for lights moving behind sprites&lt;/li&gt;
&lt;li&gt;discusses how shadows and fog are applied&lt;/li&gt;
&lt;li&gt;presents how a deformation shader is used to simulate wind&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-61/Graveyard_tod.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;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/20181103151137/http://www.gamasutra.com/blogs/SvyatoslavCherkasov/20181023/329151/Graveyard_Keeper_How_the_graphics_effects_are_made.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=snZkA4D_qjU&#34; target=&#34;_blank&#34; id=&#34;niagara: Tuning mesh shaders&#34;&gt;niagara: Tuning 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;optimizing mesh shading pipeline, can now reach &amp;gt;20B triangles/second (input triangles, before cone 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-61/niagara_mesh_shader_kittens.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/zeux/niagara&#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;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=y4WOsAaXLh0&#34; target=&#34;_blank&#34; id=&#34;niagara: Multi draw indirect&#34;&gt;niagara: Multi draw indirect&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;adding per object transformation and depth buffer support&lt;/li&gt;
&lt;li&gt;switched to using multi-draw indirect for classical and mesh shader based 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-61/niagara_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 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/zeux/niagara&#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;hr /&gt;

&lt;p&gt;
&lt;p&gt;
If you are enjoying the series and getting value from it, please consider supporting this blog.
&lt;/p&gt;

&lt;script src=&#34;https://donorbox.org/install-popup-button.js&#34; type=&#34;text/javascript&#34; defer&gt;&lt;/script&gt;
&lt;a class=&#34;dbox-donation-button&#34; href=&#34;https://donorbox.org/jendrikillner&#34; style=&#34;background:#2d81c5 url(https://d1iczxrky3cnb2.cloudfront.net/red_logo.png) no-repeat 16px center; color: #fff;text-decoration: none;font-family: Verdana,sans-serif; font-size:12px; display: inline-block;padding: 5px 10px 5px 50px; -webkit-border-radius: 2px; -moz-border-radius: 2px; border-radius: 2px; box-shadow: 0 1px 0 0 #1f5a89; text-shadow: 0 1px rgba(0, 0, 0, 0.3); text-align:center;&#34; &gt;Support this blog&lt;/a&gt;
&lt;/a&gt;&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 60 — October 28, 2018</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-60/</link>
      <pubDate>Sun, 28 Oct 2018 21:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-60/</guid>
      <description>
&lt;div class=&#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/2018/10/bidirectional-mipmap.html&#34; target=&#34;_blank&#34; id=&#34;Mipmapping with Bidirectional Techniques&#34;&gt;Mipmapping with Bidirectional Techniques&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 about what mips are and how to calculate mip selection in a rasterizer&lt;/li&gt;
&lt;li&gt;explains ray differentials, a technique that can be used for mip selecttion on primary rays&lt;/li&gt;
&lt;li&gt;discussion of problems with ray differentials on other ray types, possible solutions and look at what other production renderers use&lt;/li&gt;
&lt;li&gt;solution using a distance to camera metric and presenting the results by comparing 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-60/forest_noon.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/20181028023626/https://blog.yiningkarlli.com/2018/10/bidirectional-mipmap.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://ourmachinery.com/post/ecs-and-rendering/&#34; target=&#34;_blank&#34; id=&#34;Entity-Component-Systems and Rendering&#34;&gt;Entity-Component-Systems 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;explains the plugin architecture that enables efficient implementation of high-level graphical features&lt;/li&gt;
&lt;li&gt;how to interact with the scene, culling, scheduling, and 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-60/machinery_ecs.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;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/20181024080305/https://ourmachinery.com/post/ecs-and-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://github.com/Microsoft/DirectXShaderCompiler/blob/master/docs/SPIRV-Cookbook.rst&#34; target=&#34;_blank&#34; id=&#34;DXC Cookbook: HLSL Coding Patterns for SPIR-V&#34;&gt;DXC Cookbook: HLSL Coding Patterns for 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;SPIR-V shaders can only access global resources&lt;/li&gt;
&lt;li&gt;HLSL is very flexible with resource usage&lt;/li&gt;
&lt;li&gt;this post shows what usage pattern DXC is able to transform into legal SPIR-V and what patterns cannot be expressed in 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-60/spir_v.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20181027150132/https://github.com/Microsoft/DirectXShaderCompiler/blob/master/docs/SPIRV-Cookbook.rst&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#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/river-editor-water-simulation-in-real-time/&#34; target=&#34;_blank&#34; id=&#34;River Editor: Water Simulation in Real-Time&#34;&gt;River Editor: Water Simulation 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;walkthrough of the development of real-time GPU based water simulation&lt;/li&gt;
&lt;li&gt;discusses simulation experiments and algorithms used&lt;/li&gt;
&lt;li&gt;a brief look at the lighting 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-60/water_river.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20181028021819/https://80.lv/articles/river-editor-water-simulation-in-real-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://devblogs.nvidia.com/practical-real-time-ray-tracing-rtx/&#34; target=&#34;_blank&#34; id=&#34;Video Series: Practical Real-Time Ray Tracing With RTX&#34;&gt;Video Series: Practical Real-Time Ray Tracing With RTX&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;post that provides links to talks with summaries about ray tracing on Nvidia RTX hardware&lt;/li&gt;
&lt;li&gt;difference between rasterization and ray tracing&lt;/li&gt;
&lt;li&gt;the structure of a real-time ray-tracing application and the components required&lt;/li&gt;
&lt;li&gt;how to extend the raster-based application 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-60/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/20181028022331/https://devblogs.nvidia.com/practical-real-time-ray-tracing-rtx/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#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/texture-space-shading/&#34; target=&#34;_blank&#34; id=&#34;Turing Texture Space Shading&#34;&gt;Turing 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;overview of texture space shading&lt;/li&gt;
&lt;li&gt;technique decouples shading from rasterization rate&lt;/li&gt;
&lt;li&gt;Turing hardware provides support for computing derivatives in compute shaders and exposes texels that need to be shaded&lt;/li&gt;
&lt;li&gt;linked video explains the implementation of a texel space shading 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-60/texture_space_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/20181028030756/https://devblogs.nvidia.com/texture-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://petersikachev.blogspot.com/2018/10/minlod-cheap-method-to-increase-texture.html&#34; target=&#34;_blank&#34; id=&#34;MinLod: A Cheap&amp;amp;Simple Method to Increase Texture Details at Acute Angles&#34;&gt;MinLod: A Cheap&amp;amp;Simple Method to Increase Texture Details at Acute Angles&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 how to adjust mip selection to favor noise over more detail at acute angels&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-60/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/20181028024539/https://petersikachev.blogspot.com/2018/10/minlod-cheap-method-to-increase-texture.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://eater.net/quaternions&#34; target=&#34;_blank&#34; id=&#34;Visualizing quaternions - An explorable video series&#34;&gt;Visualizing quaternions - An explorable video series&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;visual and interactive explanation of quaternions and stereographic 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-60/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;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=3Py4GlWAicY&#34; target=&#34;_blank&#34; id=&#34;niagara: Parsing SPIRV&#34;&gt;niagara: Parsing SPIRV&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;usage of descriptor update templates&lt;/li&gt;
&lt;li&gt;SPIRV parser 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-60/niagara_parsing_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;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=KckRq7Rm3Mw&#34; target=&#34;_blank&#34; id=&#34;niagara: Meshlet culling&#34;&gt;niagara: Meshlet culling&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;cone culling in task shaders&lt;/li&gt;
&lt;li&gt;two implementations, one using shared memory atomics and one with other 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-60/niagara_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&gt;

&lt;p&gt;
&lt;div class=&#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/HLSL-Spherical-Harmonics&#34; target=&#34;_blank&#34; id=&#34;HLSL - Spherical-Harmonics&#34;&gt;HLSL - 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;collection of HLSL functions to use spherical harmonics&lt;/li&gt;
&lt;li&gt;Mathematica notebook to verify and visualize SH 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-60/sh_clouds.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#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/site/mlandrendering/&#34; target=&#34;_blank&#34; id=&#34;SIGGRAPH 2018 Course: Machine Learning and Rendering&#34;&gt;SIGGRAPH 2018 Course: Machine Learning 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;all content from the SIGGRAPH 2018 course 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/20181028024256/https://sites.google.com/site/mlandrendering/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#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/D3d12info&#34; target=&#34;_blank&#34; id=&#34;D3d12info&#34;&gt;D3d12info&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;console tool to get collect capabilities information from DXGI and Direct3D 12&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&gt;&lt;/p&gt;

&lt;hr /&gt;


&lt;p&gt;
If you are enjoying the series and getting value from it, please consider supporting this blog.
&lt;/p&gt;

&lt;script src=&#34;https://donorbox.org/install-popup-button.js&#34; type=&#34;text/javascript&#34; defer&gt;&lt;/script&gt;
&lt;a class=&#34;dbox-donation-button&#34; href=&#34;https://donorbox.org/jendrikillner&#34; style=&#34;background:#2d81c5 url(https://d1iczxrky3cnb2.cloudfront.net/red_logo.png) no-repeat 16px center; color: #fff;text-decoration: none;font-family: Verdana,sans-serif; font-size:12px; display: inline-block;padding: 5px 10px 5px 50px; -webkit-border-radius: 2px; -moz-border-radius: 2px; border-radius: 2px; box-shadow: 0 1px 0 0 #1f5a89; text-shadow: 0 1px rgba(0, 0, 0, 0.3); text-align:center;&#34; &gt;Support this blog&lt;/a&gt;
&lt;/a&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 59 — October 21, 2018</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-59/</link>
      <pubDate>Sun, 21 Oct 2018 21:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-59/</guid>
      <description>
&lt;div class=&#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/2018/10/15/pbr-online.html&#34; target=&#34;_blank&#34; id=&#34;Physically Based Rendering, online&#34;&gt;Physically Based Rendering, online&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the complete 3rd edition of Physically Based Rendering is now online for free&lt;/li&gt;
&lt;li&gt;the post explains the history of the book and decisions that led to making the book available for free&lt;/li&gt;
&lt;li&gt;authors can be supported on &lt;a href=&#34;https://www.patreon.com/pbrbook&#34; target=&#34;_blank&#34;&gt;https://www.patreon.com/pbrbook&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-59/pbr_landing.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;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/20181017014630/https://pharr.org/matt/blog/2018/10/15/pbr-online.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://blog.tuxedolabs.com/2018/10/17/from-screen-space-to-voxel-space.html&#34; target=&#34;_blank&#34; id=&#34;From screen space to voxel space&#34;&gt;From screen space to voxel space&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;summarizes voxel ray tracing implementation, memory and performance optimizations&lt;/li&gt;
&lt;li&gt;show the different artifacts that can be encountered and their 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-59/screen_space_to_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 class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20181022085121/http://blog.tuxedolabs.com/2018/10/17/from-screen-space-to-voxel-space.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://sergeyreznik.github.io/metal-ray-tracer/part-3-1/index.html&#34; target=&#34;_blank&#34; id=&#34;Adding multiple bounces&#34;&gt;Adding multiple bounces&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 Metal ray tracer series that adds support for multiple bounces to simulate global illumination&lt;/li&gt;
&lt;li&gt;implements importance sampling for diffuse BSDF&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-59/multiple_bounces.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20181022085144/https://sergeyreznik.github.io/metal-ray-tracer/part-3-1/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://sergeyreznik.github.io/metal-ray-tracer/part-3-2/index.html&#34; target=&#34;_blank&#34; id=&#34;Improving material system&#34;&gt;Improving material system&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;extending the material system of the Metal raytracer so that multiple materials can be expressed and importance sampled correctly&lt;/li&gt;
&lt;li&gt;changes sampling heuristic to support multiple importance sampling. This enables both rough and mirror-like 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-59/improving_material_system.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20181022085205/https://sergeyreznik.github.io/metal-ray-tracer/part-3-2/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://www.youtube.com/watch?v=Bv3yat484aQ&#34; target=&#34;_blank&#34; id=&#34;Multilayer Light Simulations: More Beautiful Images, Faster&#34;&gt;Multilayer Light Simulations: More Beautiful Images, Faster&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;2-minute video summary of the &amp;ldquo;Position-Free Monte Carlo Simulation for Arbitrary Layered BSDFs&amp;rdquo; 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-59/layered.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#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/2018/10/flavors-of-sampling-in-ray-tracing.html&#34; target=&#34;_blank&#34; id=&#34;Flavors of Sampling in Ray Tracing&#34;&gt;Flavors of Sampling in 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;overview of the strengths and weaknesses of different sampling techniques in ray tracing&lt;/li&gt;
&lt;li&gt;presents links to papers that present methods that are aimed at creating better-stratified sampling 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-59/flavors_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/20181022085313/http://psgraphics.blogspot.com/2018/10/flavors-of-sampling-in-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://www.youtube.com/watch?v=gbeOKMjmQ-g&#34; target=&#34;_blank&#34; id=&#34;niagara: Future of rasterization&#34;&gt;niagara: Future of rasterization&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;stream that adds support for rendering meshes using Nvidia mesh shader 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-59/meshshader_unoptimization.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=ayKoqK3kQ9c&#34; target=&#34;_blank&#34; id=&#34;niagara: Optimizing mesh rendering&#34;&gt;niagara: Optimizing 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;during the stream, the mesh shader pipeline is optimized&lt;/li&gt;
&lt;li&gt;performance parity with the classical rasterization pipeline is achieved without GPU 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-59/meshshader_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://medium.com/@anthelme.dumont/how-to-make-a-fake-interior-effect-with-unity-using-reflection-probes-2e7548acaca9&#34; target=&#34;_blank&#34; id=&#34;How to make a fake interior effect with unity using reflection probes&#34;&gt;How to make a fake interior effect with unity using reflection probes&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 interior mapping using the Unity reflection probe system&lt;/li&gt;
&lt;li&gt;explains how to set up the model and environment to generate the required probes and how to apply the reflections to the 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-59/interior_mapping_probes.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;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/20181022083948/https://medium.com/@anthelme.dumont/how-to-make-a-fake-interior-effect-with-unity-using-reflection-probes-2e7548acaca9&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;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/pipeline/2018-10-20-rust-mesh-optimizer/&#34; target=&#34;_blank&#34; id=&#34;Rust Mesh Optimizer&#34;&gt;Rust Mesh Optimizer&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;rust version of the &lt;a href=&#34;https://github.com/zeux/meshoptimizer&#34; target=&#34;_blank&#34;&gt;meshoptimizer&lt;/a&gt; library is now available&lt;/li&gt;
&lt;li&gt;the post explains how to setup Rust code to be able to compile, link and use existing C code 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-59/meshoptimizer_rust.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20181022085247/https://www.wihlidal.com/blog/pipeline/2018-10-20-rust-mesh-optimizer/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=5gMaushKj6k&#34; target=&#34;_blank&#34; id=&#34;Global Illumination in Godot Engine @ Gamelab BCN 2018&#34;&gt;Global Illumination in Godot Engine @ Gamelab BCN 2018&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 Global illumination has been implemented in the Godot engine&lt;/li&gt;
&lt;li&gt;talking about GI probe generation, deterministic light baking and the interacting with the shading 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-59/gi_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&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://bits.krzysztofjankowski.com/how-i-grow-with-grass-shader/&#34; target=&#34;_blank&#34; id=&#34;How I Grow with Grass Shader&#34;&gt;How I Grow with 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;walkthrough of a Godot shader that uses particles to spawn vegetation meshes based on height map and feature (biomes) map 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-59/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;http://web.archive.org/web/20181022084829/https://bits.krzysztofjankowski.com/how-i-grow-with-grass-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://snorristurluson.github.io/AlphaBlending/&#34; target=&#34;_blank&#34; id=&#34;Alpha blending using pre-multiplied alpha&#34;&gt;Alpha blending using pre-multiplied alpha&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 usage of premultiplied alpha using Vulkan&lt;/li&gt;
&lt;li&gt;pre-multiplication is done in the pixel shader, no texture pre-processing 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-59/BlendModesSample.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;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/20181022080759/https://snorristurluson.github.io/AlphaBlending/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;
&lt;p&gt;
If you are enjoying the series and getting value from it, please consider supporting this blog.
&lt;/p&gt;

&lt;script src=&#34;https://donorbox.org/install-popup-button.js&#34; type=&#34;text/javascript&#34; defer&gt;&lt;/script&gt;
&lt;a class=&#34;dbox-donation-button&#34; href=&#34;https://donorbox.org/jendrikillner&#34; style=&#34;background:#2d81c5 url(https://d1iczxrky3cnb2.cloudfront.net/red_logo.png) no-repeat 16px center; color: #fff;text-decoration: none;font-family: Verdana,sans-serif; font-size:12px; display: inline-block;padding: 5px 10px 5px 50px; -webkit-border-radius: 2px; -moz-border-radius: 2px; border-radius: 2px; box-shadow: 0 1px 0 0 #1f5a89; text-shadow: 0 1px rgba(0, 0, 0, 0.3); text-align:center;&#34; &gt;Support this blog&lt;/a&gt;
&lt;/a&gt;&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 58 — October 14, 2018</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-58/</link>
      <pubDate>Sun, 14 Oct 2018 21:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-58/</guid>
      <description>
&lt;div class=&#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/distance_fields/&#34; target=&#34;_blank&#34; id=&#34;Distance Fields&#34;&gt;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;explains an O(n) algorithm that calculates 2D distance fields by operating on rows and treating samples as overlapping quadratic parabolas&lt;/li&gt;
&lt;li&gt;shows ideas to visualize distance fields, generate tiling noise and some use-cases of distance field 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-58/distance_fields.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;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/20181007184618/https://prideout.net/blog/distance_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;https://www.khronos.org/developers/library/2018-xdc&#34; target=&#34;_blank&#34; id=&#34;2018 XDC - Khronos&#34;&gt;2018 XDC - Khronos&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 XDC (&lt;a href=&#34;http://x.org/&#34; target=&#34;_blank&#34;&gt;X.Org&lt;/a&gt; Developer&amp;rsquo;s Conference)&lt;/li&gt;
&lt;li&gt;Vulkan timeline semaphores

&lt;ul&gt;
&lt;li&gt;allow increasing a 64-bit value on signal and wait on &amp;ldquo;greater than&amp;rdquo; a target value&lt;/li&gt;
&lt;li&gt;unified system for CPU and GPU waits&lt;/li&gt;
&lt;li&gt;look at how to implement them in the drivers&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;many more talks about OS-level graphic 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-58/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/20181014025844/https://www.khronos.org/developers/library/2018-xdc&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#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/jdupuy/opengl-framework/tree/master/demo-isubd-terrain&#34; target=&#34;_blank&#34; id=&#34;Mesh Shader - Implicit Subdivision on the GPU&#34;&gt;Mesh Shader - Implicit Subdivision 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;compute shader based adaptive GPU tessellation technique using Mesh Shaders on Turing&lt;/li&gt;
&lt;li&gt;up to ~25% rendering time reduction at high tesselation 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-58/mesh_shader_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://devblogs.nvidia.com/vulkan-raytracing/?linkId=100000003715485&#34; target=&#34;_blank&#34; id=&#34;Introduction to Real-Time Ray Tracing with Vulkan&#34;&gt;Introduction to Real-Time Ray Tracing 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;explains the Vulkan ray-tracing extension&lt;/li&gt;
&lt;li&gt;contains an overview of the ray tracing pipeline, the new shader types and how to interact with the API&lt;/li&gt;
&lt;li&gt;shows how to generate the acceleration structure, update and compact it as 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-58/ray_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/20181014030031/https://devblogs.nvidia.com/vulkan-raytracing/?linkId=100000003715485&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#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/deep-compositing/&#34; target=&#34;_blank&#34; id=&#34;Deep Compositing and Reprojection&#34;&gt;Deep Compositing and Reprojection&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 foundation behind deep composition that allows compositing of volumetric effects such as fog&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-58/reproj_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/20181014030200/https://zero-radiance.github.io/post/deep-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://schuttejoe.github.io/post/disneypostmortem/&#34; target=&#34;_blank&#34; id=&#34;Rendering the Moana Island Scene Part 2: A production scene from a hobby renderer&#34;&gt;Rendering the Moana Island Scene Part 2: A production scene from a hobby renderer&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 the steps required to render the Moana scene in the authors custom path tracer&lt;/li&gt;
&lt;li&gt;uses a binning scheme on rays combined with on-demand geometry loading to be able to render the scene on a 32 GB RAM 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-58/SelasBeachCam.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;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/20181013130154/https://schuttejoe.github.io/post/disneypostmortem/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;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/21856507&#34; target=&#34;_blank&#34; id=&#34;Project: SDL render batching&#34;&gt;Project: SDL render batching&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 change to the SDL render back-end that will batch CPU rendering commands to reduce the number of draw calls required&lt;/li&gt;
&lt;li&gt;this will improve performance 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-58/sdl_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/20181014025128/https://www.patreon.com/posts/21856507&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://falseidolfactory.com/2018/10/09/gfx-hal-part-2-vertex-buffers.html&#34; target=&#34;_blank&#34; id=&#34;Gfx-hal Tutorial part 2: Vertex buffers&#34;&gt;Gfx-hal Tutorial part 2: 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;next part of the series on gfx-hal usage (low-level graphics API for Rust)&lt;/li&gt;
&lt;li&gt;adds support for loading and using vertex 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-58/gfx_hal_part02_00.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20181014025439/https://falseidolfactory.com/2018/10/09/gfx-hal-part-2-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://vfxmike.blogspot.com/2018/10/ripples-for-days.html?m=1&#34; target=&#34;_blank&#34; id=&#34;Ripples For Days&#34;&gt;Ripples For Days&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 water ripple system implementation that uses a top-down projection of ripples onto the water surface in a separate rendering 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-58/RippleTex.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20181014025649/http://vfxmike.blogspot.com/2018/10/ripples-for-days.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;http://www.iquilezles.org/www/articles/distfunctions/distfunctions.htm&#34; target=&#34;_blank&#34; id=&#34;distance functions&#34;&gt;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;updated SDF function for a capped cone, round cone, and an ellipsoid&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-58/gfx26.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20181014025524/http://www.iquilezles.org/www/articles/distfunctions/distfunctions.htm&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;
&lt;p&gt;
If you are enjoying the series and getting value from it, please consider supporting this blog.
&lt;/p&gt;

&lt;script src=&#34;https://donorbox.org/install-popup-button.js&#34; type=&#34;text/javascript&#34; defer&gt;&lt;/script&gt;
&lt;a class=&#34;dbox-donation-button&#34; href=&#34;https://donorbox.org/jendrikillner&#34; style=&#34;background:#2d81c5 url(https://d1iczxrky3cnb2.cloudfront.net/red_logo.png) no-repeat 16px center; color: #fff;text-decoration: none;font-family: Verdana,sans-serif; font-size:12px; display: inline-block;padding: 5px 10px 5px 50px; -webkit-border-radius: 2px; -moz-border-radius: 2px; border-radius: 2px; box-shadow: 0 1px 0 0 #1f5a89; text-shadow: 0 1px rgba(0, 0, 0, 0.3); text-align:center;&#34; &gt;Support this blog&lt;/a&gt;
&lt;/a&gt;&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 57 — October 7, 2018</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-57/</link>
      <pubDate>Sun, 07 Oct 2018 21:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-57/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=_VU-G5rglnA&#34; target=&#34;_blank&#34; id=&#34;niagara: Cleaning up&#34;&gt;niagara: Cleaning up&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Vulkan stream - part 3&lt;/li&gt;
&lt;li&gt;fixing validation layer errors, explanation of pipeline barriers&lt;/li&gt;
&lt;li&gt;implementation of swap chain resize&lt;/li&gt;
&lt;li&gt;shader compiler integration with Visual Studio&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-57/niagara_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&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=nKCzD5iK71M&#34; target=&#34;_blank&#34; id=&#34;niagara: Rendering a mesh&#34;&gt;niagara: Rendering 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;Vulkan stream - part 4&lt;/li&gt;
&lt;li&gt;overview and integration of Vulkan extension loader&lt;/li&gt;
&lt;li&gt;loading an .obj and rendering a mesh using classical vertex pipeline and manual vertex pulling&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-57/niagara_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;div class=&#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/@bmind/cheap-diamond-rendering-e71203292674&#34; target=&#34;_blank&#34; id=&#34;“Cheap” Diamond Rendering&#34;&gt;“Cheap” Diamond Rendering&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 shader for diamond rendering in a forward rendering architecture&lt;/li&gt;
&lt;li&gt;uses a precalculated cubemap from the inside of the object to simulate internal bounces&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-57/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/20181007053558/https://medium.com/@bmind/cheap-diamond-rendering-e71203292674&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#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/@bananaft/my-journey-into-fractals-d25ebc6c4dc2&#34; target=&#34;_blank&#34; id=&#34;My journey into fractals&#34;&gt;My journey into fractals&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;discussing many aspects of making a fractal-based game&lt;/li&gt;
&lt;li&gt;including cone tracing, lighting, shadows, ambient occlusion, volumetric lighting, and 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-57/fractal.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;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/20181006131645/https://medium.com/@bananaft/my-journey-into-fractals-d25ebc6c4dc2&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#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/another-view-on-the-classic-ray-aabb-intersection-algorithm-for-bvh-traversal-41125138b525&#34; target=&#34;_blank&#34; id=&#34;Another View on the Classic Ray-AABB Intersection Algorithm for BVH Traversal&#34;&gt;Another View on the Classic Ray-AABB Intersection Algorithm for BVH Traversal&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 steps required to vectorize the Ray-AABB approach by &lt;a href=&#34;http://psgraphics.blogspot.com/2016/02/new-simple-ray-box-test-from-andrew.html&#34; target=&#34;_blank&#34;&gt;Andrew Kensler&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;results are very similar to the recent &lt;a href=&#34;http://jcgt.org/published/0007/03/04/&#34; target=&#34;_blank&#34;&gt;jcgt paper&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-57/bhv_heatmap.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/20181007054144/https://medium.com/@bromanz/another-view-on-the-classic-ray-aabb-intersection-algorithm-for-bvh-traversal-41125138b525&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#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/rendering/irradiance-caching/spherical-gaussians/2018/10/01/running-average-derivation.html&#34; target=&#34;_blank&#34; id=&#34;Running Average Encoding - Why It Works&#34;&gt;Running Average Encoding - Why 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;derivation of the progressive spherical Gaussian encoding technique discussed in last week&amp;rsquo;s 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-57/running_average_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/20181007054644/http://torust.me/rendering/irradiance-caching/spherical-gaussians/2018/10/01/running-average-derivation.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://bheisler.github.io/post/ptx-builder-and-linker/&#34; target=&#34;_blank&#34; id=&#34;Porting My CUDA Path Tracer to ptx-builder/linker&#34;&gt;Porting My CUDA Path Tracer to ptx-builder/linker&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;explores changes to CUDA path tracer with Rust, what improved since the last post and what problems persists&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;http://web.archive.org/web/20181005030747/https://bheisler.github.io/post/ptx-builder-and-linker/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;


&lt;div class=&#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/septag/glslcc&#34; target=&#34;_blank&#34; id=&#34;GLSL cross-compiler tool&#34;&gt;GLSL cross-compiler tool&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;command line tool that allows cross compilation from GLSL to HLSL, GLES and MSL (Metal)&lt;/li&gt;
&lt;li&gt;implemented using a combination of 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;&#34; style=&#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://alain.xyz/blog/comparison-of-modern-graphics-apis&#34; target=&#34;_blank&#34; id=&#34;A Comparison of Modern Graphics APIs&#34;&gt;A Comparison of Modern Graphics APIs&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;work in progress post comparing API concepts between D3D12, Vulkan, Metal, 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-57/api_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/20181007053002/https://alain.xyz/blog/comparison-of-modern-graphics-apis&#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.msdn.microsoft.com/directx/2018/10/02/directx-raytracing-and-the-windows-10-october-2018-update/&#34; target=&#34;_blank&#34; id=&#34;DirectX Raytracing and the Windows 10 October 2018 Update&#34;&gt;DirectX Raytracing and the Windows 10 October 2018 Update&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Windows raytracing support is available starting with Windows 10 October 2018 update&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-57/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;http://web.archive.org/web/20181005002112/https://blogs.msdn.microsoft.com/directx/2018/10/02/directx-raytracing-and-the-windows-10-october-2018-update/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#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/video-real-time-ray-tracing-workflows-frostbite/&#34; target=&#34;_blank&#34; id=&#34;Video Series: Real-Time Ray Tracing for Interactive Global Illumination Workflows in Frostbite&#34;&gt;Video Series: Real-Time Ray Tracing for Interactive Global Illumination Workflows 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;breakdown of &amp;ldquo;Real-Time Ray Tracing for Interactive Global Illumination Workflows in Frostbite&amp;rdquo; into short sections&lt;/li&gt;
&lt;li&gt;key takeaways for each section is provided in the 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-57/nvidia_frostbite.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20181007055111/https://devblogs.nvidia.com/video-real-time-ray-tracing-workflows-frostbite/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;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/pipeline/2018-10-04-parsing-shader-includes/&#34; target=&#34;_blank&#34; id=&#34;Parsing Shader Includes&#34;&gt;Parsing Shader Includes&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 parse a shader file for includes using regex (implemented using Rust)&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/20181007055340/https://www.wihlidal.com/blog/pipeline/2018-10-04-parsing-shader-includes/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://arturonereu.github.io/SRP101/&#34; target=&#34;_blank&#34; id=&#34;SRP101&#34;&gt;SRP101&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 to get started with the Unity 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-57/ssrp.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20181007055431/https://arturonereu.github.io/SRP101/&#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://beta.observablehq.com/@rreusser/perspective-matrices-and-depth&#34; target=&#34;_blank&#34; id=&#34;Perspective Matrices and Depth&#34;&gt;Perspective Matrices and Depth&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;visualization of floating point precision when a classical OpenGL projection matrix 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-57/depth_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/20181007055809/https://beta.observablehq.com/@rreusser/perspective-matrices-and-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://blogs.unity3d.com/2018/10/05/art-that-moves-creating-animated-materials-with-shader-graph/&#34; target=&#34;_blank&#34; id=&#34;Art That Moves: Creating Animated Materials with Shader Graph&#34;&gt;Art That Moves: Creating Animated Materials 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;explanation of Unity shader graph nodes&lt;/li&gt;
&lt;li&gt;walkthrough of example shaders that allow the creation of a small island 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-57/unity_island.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20181007060026/https://blogs.unity3d.com/2018/10/05/art-that-moves-creating-animated-materials-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://blogs.msdn.microsoft.com/pix/2018/10/04/pix-1810-02-direct3d11-and-winml/&#34; target=&#34;_blank&#34; id=&#34;PIX-1810.02 – Direct3D11 and WinML&#34;&gt;PIX-1810.02 – Direct3D11 and WinML&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 features are available with Windows 10 October 2018&lt;/li&gt;
&lt;li&gt;can capture D3D11 applications using Direct3D 11 on 12 translation layer and WinML 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-57/1810.02-WinMLMarkers.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;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/20181005134900/https://blogs.msdn.microsoft.com/pix/2018/10/04/pix-1810-02-direct3d11-and-winml/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#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.85.0/windows/release_notes.html&#34; target=&#34;_blank&#34; id=&#34;Vulkan SDK 1.1.85.0&#34;&gt;Vulkan SDK 1.1.85.0&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;adds support for Turing 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-57/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/20181007055927/https://vulkan.lunarg.com/doc/sdk/1.1.85.0/windows/release_notes.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.gamedev.net/news/qualcomm-releases-snapdragon-profiler-with-vulkan-support-r545/&#34; target=&#34;_blank&#34; id=&#34;Qualcomm Releases Snapdragon Profiler with Vulkan Support&#34;&gt;Qualcomm Releases Snapdragon Profiler with Vulkan Support&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;new profiler version now supports 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-57/qualcomm.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20181007060242/https://www.gamedev.net/news/qualcomm-releases-snapdragon-profiler-with-vulkan-support-r545/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;hr /&gt;

&lt;p&gt;
&lt;p&gt;
If you are enjoying the series and getting value from it, please consider supporting this blog.
&lt;/p&gt;

&lt;script src=&#34;https://donorbox.org/install-popup-button.js&#34; type=&#34;text/javascript&#34; defer&gt;&lt;/script&gt;
&lt;a class=&#34;dbox-donation-button&#34; href=&#34;https://donorbox.org/jendrikillner&#34; style=&#34;background:#2d81c5 url(https://d1iczxrky3cnb2.cloudfront.net/red_logo.png) no-repeat 16px center; color: #fff;text-decoration: none;font-family: Verdana,sans-serif; font-size:12px; display: inline-block;padding: 5px 10px 5px 50px; -webkit-border-radius: 2px; -moz-border-radius: 2px; border-radius: 2px; box-shadow: 0 1px 0 0 #1f5a89; text-shadow: 0 1px rgba(0, 0, 0, 0.3); text-align:center;&#34; &gt;Support this blog&lt;/a&gt;
&lt;/a&gt;&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 56 — September 30, 2018</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-56/</link>
      <pubDate>Sun, 30 Sep 2018 21:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-56/</guid>
      <description>
&lt;div class=&#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/turing-variable-rate-shading-vrworks/&#34; target=&#34;_blank&#34; id=&#34;Turing Variable Rate Shading in VRWorks&#34;&gt;Turing Variable Rate Shading in VRWorks&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 variable rate shading is and what use cases it enables&lt;/li&gt;
&lt;li&gt;a control texture allows varying of the shading rate on a 16x16 pixel grid&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-56/VRS_SRS_LUT_RT_New_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/20181001013718/https://devblogs.nvidia.com/turing-variable-rate-shading-vrworks/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#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/turing-multi-view-rendering-vrworks/&#34; target=&#34;_blank&#34; id=&#34;Turing Multi-View Rendering in VRWorks&#34;&gt;Turing Multi-View Rendering in VRWorks&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 recent developments in VR headsets and how Turing offers new hardware solutions&lt;/li&gt;
&lt;li&gt;extensions that allow rendering up to 4 different views, with view-dependent attributes using a single invocation&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-56/ultra_wide_fov.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20181001014327/https://devblogs.nvidia.com/turing-multi-view-rendering-vrworks/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#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/rendering/irradiance-caching/spherical-gaussians/2018/09/21/spherical-gaussians.html&#34; target=&#34;_blank&#34; id=&#34;Spherical Gaussian Encoding&#34;&gt;Spherical Gaussian Encoding&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 encoding method for Spherical Gaussians that improves quality from previous encoding 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-56/irradianceMCIS.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20181001014445/http://torust.me/rendering/irradiance-caching/spherical-gaussians/2018/09/21/spherical-gaussians.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://joostdevblog.blogspot.com/2018/09/interior-mapping-real-rooms-without.html?m=1&#34; target=&#34;_blank&#34; id=&#34;Interior Mapping: rendering real rooms without geometry&#34;&gt;Interior Mapping: rendering real rooms without geometry&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 high-level overview of how to implement interior mapping&lt;/li&gt;
&lt;li&gt;comments have much information about the timeline of games that used similar 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-56/interior_mapping_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/20181001012033/http://joostdevblog.blogspot.com/2018/09/interior-mapping-real-rooms-without.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.gamedev.net/articles/programming/graphics/efficient-instancing-in-a-streaming-scenario-r4966/&#34; target=&#34;_blank&#34; id=&#34;Efficient Instancing in a Streaming Scenario&#34;&gt;Efficient Instancing in a Streaming Scenario&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 technique to generate instanced geometry procedurally on the GPU using OpenGL compute shaders&lt;/li&gt;
&lt;li&gt;aimed at filling vast streaming worlds that are broken down into tiles&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-56/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;http://web.archive.org/web/20180924035101/https://www.gamedev.net/articles/programming/graphics/efficient-instancing-in-a-streaming-scenario-r4966/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#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/niagara&#34; target=&#34;_blank&#34; id=&#34;niagara: Building a Vulkan renderer from scratch*&#34;&gt;niagara: Building a Vulkan renderer 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;new stream coding series about the creation of a Vulkan renderer from scratch&lt;/li&gt;
&lt;li&gt;the first two episodes implement rendering of a single triangle 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-56/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;http://onrendering.com/data/papers/isubd/isubd.pdf&#34; target=&#34;_blank&#34; id=&#34;Adaptive GPU Tessellation with Compute Shaders&#34;&gt;Adaptive GPU Tessellation 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;pre-print of an article that will appear in GPU Zen 2&lt;/li&gt;
&lt;li&gt;implements adaptive tessellation using OpenGL 4.5 compute shaders&lt;/li&gt;
&lt;li&gt;source code: &lt;a href=&#34;https://github.com/jadkhoury/TessellationDemo&#34; target=&#34;_blank&#34;&gt;https://github.com/jadkhoury/TessellationDemo&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-56/compute_subdivision.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20181001014733/http://onrendering.com/data/papers/isubd/isubd.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://twitter.com/SebAaltonen/status/1045585985344557061?s=09&#34; target=&#34;_blank&#34; id=&#34;Claybook, raw-&amp;gt;typed buffer performance analysis numbers&#34;&gt;Claybook, raw-&amp;gt;typed buffer performance analysis numbers&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 Raw vs. Typed buffer performance on Claybook&lt;/li&gt;
&lt;li&gt;suggest using raw buffers if 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-56/sebastian_aaltonen_on_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;http://web.archive.org/web/20181001015415/https://twitter.com/SebAaltonen/status/1045585985344557061?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://devblogs.nvidia.com/cuda-10-features-revealed/&#34; target=&#34;_blank&#34; id=&#34;CUDA 10 Features Revealed: Turing, CUDA Graphs and More&#34;&gt;CUDA 10 Features Revealed: Turing, CUDA Graphs 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;overview of new features included in CUDA 10&lt;/li&gt;
&lt;li&gt;Multi-Precision Tensor Cores are exposed on Turing&lt;/li&gt;
&lt;li&gt;CUDA Graphs allow the specification and recording of an execution graph that can be executed multiple times, this reduces overhead and allows the compiler to apply further optimizations&lt;/li&gt;
&lt;li&gt;interoperability with Vulkan and D3D12 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-56/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;http://web.archive.org/web/20180930201653/https://devblogs.nvidia.com/cuda-10-features-revealed/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;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/2018/09/29/voronoi-noise.html&#34; target=&#34;_blank&#34; id=&#34;Voronoi Noise&#34;&gt;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;explains how to generate 2D and 3D noise 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-56/BordersNoAliasing.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20181001015947/https://www.ronja-tutorials.com/2018/09/29/voronoi-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://sergeyreznik.github.io/metal-ray-tracer/part-2/index&#34; target=&#34;_blank&#34; id=&#34;Metal Raytracer - Implementing diffuse BRDF&#34;&gt;Metal Raytracer - Implementing 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;extends the Metal raytracer with obj model loading&lt;/li&gt;
&lt;li&gt;a simple diffuse BRDF implementation, including frame accumulation and shadows&lt;/li&gt;
&lt;li&gt;provides a Mitsuba test 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-56/diffuse_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 class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20181001020329/https://sergeyreznik.github.io/metal-ray-tracer/part-2/index&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#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.reedbeta.com/blog/mesh-shader-possibilities/&#34; target=&#34;_blank&#34; id=&#34;Mesh Shader Possibilities&#34;&gt;Mesh Shader Possibilities&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 the geometry pipeline on current GPU architectures and how mesh shaders fit into it&lt;/li&gt;
&lt;li&gt;description of an upgrade path to mesh shaders&lt;/li&gt;
&lt;li&gt;look at possibilities of future use cases&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;http://web.archive.org/web/20180929203215/http://reedbeta.com/blog/mesh-shader-possibilities/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#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/the-peak-performance-analysis-method-for-optimizing-any-gpu-workload/&#34; target=&#34;_blank&#34; id=&#34;The Peak-Performance-Percentage Analysis Method for Optimizing Any GPU Workload&#34;&gt;The Peak-Performance-Percentage Analysis Method for Optimizing Any GPU Workload&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;updated post now includes SM warp-issue-stall metrics&lt;/li&gt;
&lt;li&gt;previously discussed in &lt;a href=&#34;https://www.jendrikillner.com/post/graphics-programming-weekly-issue-26/&#34; target=&#34;_blank&#34;&gt;issue-26&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-56/nvidia_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/20181001020749/https://devblogs.nvidia.com/the-peak-performance-analysis-method-for-optimizing-any-gpu-workload/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#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/2018/09/30/readings-on-the-state-of-the-art-in-rendering/&#34; target=&#34;_blank&#34; id=&#34;readings on the state of the art in rendering&#34;&gt;readings on the state of the art 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;summary of resources for graphics programmers to study and keep up-to-date with the graphics programming community&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;http://web.archive.org/web/20180930203155/https://interplayoflight.wordpress.com/2018/09/30/readings-on-the-state-of-the-art-in-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://catlikecoding.com/unity/tutorials/scriptable-render-pipeline/custom-pipeline/&#34; target=&#34;_blank&#34; id=&#34;Custom Pipeline Taking Control of Rendering&#34;&gt;Custom 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;a tutorial that shows how to implement a custom rendering pipeline in Unity&lt;/li&gt;
&lt;li&gt;implements skybox rendering, culling filtering, sorting and rendering of unlit objects&lt;/li&gt;
&lt;li&gt;how to improve memory usage and better integration with the Unity frame 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-56/render_pipeline_unlit_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/20181001021532/https://catlikecoding.com/unity/tutorials/scriptable-render-pipeline/custom-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.unrealengine.com/en-US/blog/siggraph-2018-tech-talk-videos-now-available&#34; target=&#34;_blank&#34; id=&#34;SIGGRAPH 2018 Tech Talk Videos Now Available!&#34;&gt;SIGGRAPH 2018 Tech Talk Videos 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;Unreal released the tech talks from SIGGRAPH 2018&lt;/li&gt;
&lt;li&gt;Virtual Production in Unreal Engine 4.20, Mixed Reality Production with Unreal Engine, Fortnite: Advancing the Animation Pipeline, Real-Time Motion Capture in 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-56/unreal_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/20181001014955/https://www.unrealengine.com/en-US/blog/siggraph-2018-tech-talk-videos-now-available&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;
&lt;p&gt;
If you are enjoying the series and getting value from it, please consider supporting this blog.
&lt;/p&gt;

&lt;script src=&#34;https://donorbox.org/install-popup-button.js&#34; type=&#34;text/javascript&#34; defer&gt;&lt;/script&gt;
&lt;a class=&#34;dbox-donation-button&#34; href=&#34;https://donorbox.org/jendrikillner&#34; style=&#34;background:#2d81c5 url(https://d1iczxrky3cnb2.cloudfront.net/red_logo.png) no-repeat 16px center; color: #fff;text-decoration: none;font-family: Verdana,sans-serif; font-size:12px; display: inline-block;padding: 5px 10px 5px 50px; -webkit-border-radius: 2px; -moz-border-radius: 2px; border-radius: 2px; box-shadow: 0 1px 0 0 #1f5a89; text-shadow: 0 1px rgba(0, 0, 0, 0.3); text-align:center;&#34; &gt;Support this blog&lt;/a&gt;
&lt;/a&gt;&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 55 — September 23, 2018</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-55/</link>
      <pubDate>Sun, 23 Sep 2018 21:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-55/</guid>
      <description>
&lt;div class=&#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/introduction-turing-mesh-shaders/&#34; target=&#34;_blank&#34; id=&#34;Introduction to Turing Mesh Shaders&#34;&gt;Introduction to Turing 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;new shader stages on Turing that allows the generation of primitives for direct consumption by the rasterizer&lt;/li&gt;
&lt;li&gt;task shader: emits mesh shader workgroups

&lt;ul&gt;
&lt;li&gt;allows work on larger clusters, the selection of mesh resolution, &amp;hellip;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;mesh shader: generates primitives (index + vertex buffers)&lt;/li&gt;
&lt;li&gt;OpenGL shader implementation that uses the new shader stages to allow culling on a per-cluster basis and generation of efficient mesh data&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;http://on-demand.gputechconf.com/siggraph/2018/video/sig1811-3-christoph-kubisch-mesh-shaders.html&#34; target=&#34;_blank&#34;&gt;video recording&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-55/turing_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;http://web.archive.org/web/20180918112236/https://devblogs.nvidia.com/introduction-turing-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;http://advances.realtimerendering.com/s2018/The%20Challenges%20of%20Rendering%20an%20Open%20World%20in%20Far%20Cry%205.pptx&#34; target=&#34;_blank&#34; id=&#34;Challenges of Rendering an Open World in Far Cry 5&#34;&gt;Challenges of Rendering an Open World in Far Cry 5&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;talks about the challenges of developing for open world games&lt;/li&gt;
&lt;li&gt;covers water rendering, physically based time of day model, nighttime rendering&lt;/li&gt;
&lt;li&gt;lighting, exposure, emissive effects, and tone mapping&lt;/li&gt;
&lt;li&gt;material 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-55/fc5_open_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/20180922040923/http://advances.realtimerendering.com/s2018/The%20Challenges%20of%20Rendering%20an%20Open%20World%20in%20Far%20Cry%205.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://www.jcgt.org/published/0007/03/04/&#34; target=&#34;_blank&#34; id=&#34;A Ray-Box Intersection Algorithm and Efficient Dynamic Voxel Rendering&#34;&gt;A Ray-Box Intersection Algorithm and Efficient Dynamic 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;a new algorithm to compute the intersection point and surface normal of an oriented 3D box without precomputations or spatial data structures&lt;/li&gt;
&lt;li&gt;uses rasterizer pipeline to generate screen-space AABB to limit tests to only potentially visible pixels&lt;/li&gt;
&lt;li&gt;provides GLSL 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-55/ray_box_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;http://web.archive.org/web/20180921113722/http://www.jcgt.org/published/0007/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://mynameismjp.wordpress.com/2018/09/08/breaking-down-barriers-part-5-back-to-the-real-world/&#34; target=&#34;_blank&#34; id=&#34;Breaking down barriers – part 5: back to the real world&#34;&gt;Breaking down barriers – part 5: back to the real world&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 evolution of the windows graphics driver model from win7 to win10&lt;/li&gt;
&lt;li&gt;how WDDM 2.0 enables the features of D3D12&lt;/li&gt;
&lt;li&gt;differences between D3D12 and Vulkan regarding queue submission design&lt;/li&gt;
&lt;li&gt;D3D12 fences are designed to enable the OS to control command buffer scheduling&lt;/li&gt;
&lt;li&gt;look at Nvidia and AMD 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-55/amd_command_processors.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20180922035718/https://mynameismjp.wordpress.com/2018/09/08/breaking-down-barriers-part-5-back-to-the-real-world/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#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/2018/09/04/hybrid-raytraced-shadows-part-2-performance-improvements/&#34; target=&#34;_blank&#34; id=&#34;hybrid raytraced shadows part 2: performance improvements&#34;&gt;hybrid raytraced shadows part 2: 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;explains optimizations done to the hybrid shadow raytracer&lt;/li&gt;
&lt;li&gt;change to the way the BVH layout is constructed (Surface Area Heuristic) and memory layout changes enable huge speedups (16ms to 0.8ms on the GTX970)&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-55/bvh-with-sah-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/20180922035824/https://interplayoflight.wordpress.com/2018/09/04/hybrid-raytraced-shadows-part-2-performance-improvements/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;


&lt;div class=&#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-turing-architecture-in-depth/&#34; target=&#34;_blank&#34; id=&#34;NVIDIA Turing Architecture In-Depth&#34;&gt;NVIDIA Turing 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;overview of the new Turing hardware architecture&lt;/li&gt;
&lt;li&gt;description of new hardware features, exposed shader features, and improvements to existing 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-55/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/20180922034650/https://devblogs.nvidia.com/nvidia-turing-architecture-in-depth/&#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.icare3d.org/2018/09/nvidia-turing-vulkanopengl-extensions.html?m=1&#34; target=&#34;_blank&#34; id=&#34;NVIDIA Turing Vulkan/OpenGL extensions&#34;&gt;NVIDIA Turing Vulkan/OpenGL extensions&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 list of OpenGL and Vulkan extensions that expose the new Turing hardware features&lt;/li&gt;
&lt;li&gt;with short descriptions of 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-55/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 class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20180922040330/https://blog.icare3d.org/2018/09/nvidia-turing-vulkanopengl-extensions.html?m=1&#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/?p=3098&#34; target=&#34;_blank&#34; id=&#34;Vulkan conditional rendering&#34;&gt;Vulkan conditional 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 makes it possible to skip parts of command buffers based on the content of a GPU buffer&lt;/li&gt;
&lt;li&gt;the example uses this to pre-generate a single command buffer and controls visibility of mesh parts 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-55/vulkan_conditional_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/20180922033758/https://www.saschawillems.de/?p=3098&#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.alanzucconi.com/2018/09/10/shader-showcase-9/&#34; target=&#34;_blank&#34; id=&#34;Shader Showcase Saturday #9: Interior Mapping&#34;&gt;Shader Showcase Saturday #9: 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;overview of the interior mapping technique&lt;/li&gt;
&lt;li&gt;showcase of different implementations and links 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-55/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;http://web.archive.org/web/20180910134727/https://www.alanzucconi.com/2018/09/10/shader-showcase-9/&#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://kosmonautblog.wordpress.com/2018/09/17/roughness-mip-maps-based-on-normal-maps/&#34; target=&#34;_blank&#34; id=&#34;roughness mip maps based on normal maps?&#34;&gt;roughness mip maps based on 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;discussing of a technique that tries to preserve normal map variation by generation MIPs that preserve the variance in the roughness map&lt;/li&gt;
&lt;li&gt;the comments contain links to further reading about this 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-55/roughness_normal_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://web.archive.org/web/20180922034435/https://kosmonautblog.wordpress.com/2018/09/17/roughness-mip-maps-based-on-normal-maps/&#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://wihlidal.com/blog/pipeline/2018-09-17-linux-fxc-docker/&#34; target=&#34;_blank&#34; id=&#34;Running Microsoft FXC in Docker&#34;&gt;Running Microsoft FXC in Docker&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;comparison of DXC (DirectX Shader Compiler) and FXC shader compiler in regards to performance and functional regressions&lt;/li&gt;
&lt;li&gt;provides a docker file that allows FXC to run successfully&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-55/fxc_docker.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20180922034831/https://wihlidal.com/blog/pipeline/2018-09-17-linux-fxc-docker/&#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://wihlidal.com/blog/pipeline/2018-09-15-linux-dxc-docker/&#34; target=&#34;_blank&#34; id=&#34;Running Microsoft DXC in Docker&#34;&gt;Running Microsoft DXC in Docker&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 configuration that allows the DXC compiler to run within docker&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/20180922034935/https://wihlidal.com/blog/pipeline/2018-09-15-linux-dxc-docker/&#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.wihlidal.com/blog/pipeline/2018-09-16-dxil-signing-post-compile/&#34; target=&#34;_blank&#34; id=&#34;Signing DXIL Post-Compile&#34;&gt;Signing DXIL Post-Compile&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 process that enables DXIL shaders to be signed after they have been compiled&lt;/li&gt;
&lt;li&gt;provides code for detecting if a shader has already been signed and how to call the necessary libraries to sign the shader&lt;/li&gt;
&lt;li&gt;provides a command line utility that can be used to sign DXIL 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-55/dxil_signing.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20180922035104/https://www.wihlidal.com/blog/pipeline/2018-09-16-dxil-signing-post-compile/&#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://sergeyreznik.github.io/metal-ray-tracer/&#34; target=&#34;_blank&#34; id=&#34;Metal ray-tracer&#34;&gt;Metal 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;start of a series of posts that will describe the development of a ray tracer using Metal Performance 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-55/metal_ray_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;http://web.archive.org/web/20180922034034/https://sergeyreznik.github.io/metal-ray-tracer/&#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/vulkan-has-just-become-the-worlds-first-graphics-api-with-a-formal-memory-model.-so-what-is-a-memory-model-and-why-should-i-care&#34; target=&#34;_blank&#34; id=&#34;Vulkan has just become the world’s first graphics API with a formal memory model.  So, what is a memory model and why should I care?&#34;&gt;Vulkan has just become the world’s first graphics API with a formal memory model.  So, what is a memory model and why should I care?&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 provisional material on the memory model for Vulkan&lt;/li&gt;
&lt;li&gt;including the specification, extensions for SPIR-V, GLSL and conformance tests&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-55/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;http://web.archive.org/web/20180918040248/https://www.khronos.org/blog/vulkan-has-just-become-the-worlds-first-graphics-api-with-a-formal-memory-model.-so-what-is-a-memory-model-and-why-should-i-care&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#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_1690_debugging_d3d12_driver_crash.html&#34; target=&#34;_blank&#34; id=&#34;Debugging D3D12 driver crash&#34;&gt;Debugging D3D12 driver crash&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 small cross-vendor library for D3D12 that allows collection of information to narrow down GPU hangs to specific draw call ranges&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/20180922035240/http://asawicki.info/news_1690_debugging_d3d12_driver_crash.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://themaister.net/blog/2018/09/09/the-state-of-window-system-integration-wsi-in-vulkan-for-retro-emulators/&#34; target=&#34;_blank&#34; id=&#34;The state of Window System Integration (WSI) in Vulkan for retro emulators&#34;&gt;The state of Window System Integration (WSI) in Vulkan for retro emulators&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 state of integration of the Vulkan swap chain with different OS and GPU vendors&lt;/li&gt;
&lt;li&gt;explains the expected API, what is required for a good experience and how the implementations differ between platforms&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;http://web.archive.org/web/20180909213236/http://themaister.net/blog/2018/09/09/the-state-of-window-system-integration-wsi-in-vulkan-for-retro-emulators/&#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/@jcowles/smooth-geometry-in-real-time-rendering-acdc5604e1b1&#34; target=&#34;_blank&#34; id=&#34;Smooth Geometry in Real-Time Rendering&#34;&gt;Smooth Geometry 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;discusses challenges and possible solutions to undersampling artifacts on curved 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-55/cup_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 class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20180922035600/https://medium.com/@jcowles/smooth-geometry-in-real-time-rendering-acdc5604e1b1&#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://sites.google.com/site/mlandrendering/&#34; target=&#34;_blank&#34; id=&#34;SIGGRAPH 2018 Course: Machine Learning and Rendering&#34;&gt;SIGGRAPH 2018 Course: Machine Learning 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;links to the presentations from the machine learning and rendering course from Siggraph&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/20180922040124/https://sites.google.com/site/mlandrendering/&#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/dlss-what-does-it-mean-for-game-developers/&#34; target=&#34;_blank&#34; id=&#34;DLSS: What Does It Mean for Game Developers?&#34;&gt;DLSS: What Does It Mean 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;an interview that explains what Nvidias DLSS is (Deep Learning Super Sampling)&lt;/li&gt;
&lt;li&gt;a trained neural network that is able to infer a 64 sample per pixel supersampled image from a 1 sample per pixel source&lt;/li&gt;
&lt;li&gt;the model is trained on Nvidia GPU clusters before the release 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-55/DLSS1.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20180922040216/https://news.developer.nvidia.com/dlss-what-does-it-mean-for-game-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;https://www.ronja-tutorials.com/2018/09/08/value-noise.html&#34; target=&#34;_blank&#34; id=&#34;Value Noise&#34;&gt;Value Noise&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 generate value noise 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-55/value_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/20180922040452/https://www.ronja-tutorials.com/2018/09/08/value-noise.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.ronja-tutorials.com/2018/09/15/perlin-noise.html&#34; target=&#34;_blank&#34; id=&#34;Perlin Noise&#34;&gt;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;explains how to generate Perlin noise 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-55/perlin_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/20180922040614/https://www.ronja-tutorials.com/2018/09/15/perlin-noise.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.ronja-tutorials.com/2018/09/22/layered-noise.html&#34; target=&#34;_blank&#34; id=&#34;Layered Noise&#34;&gt;Layered Noise&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 Perlin noise implementation from the previous tutorial to support mixing of multiple layers of Perlin noise&lt;/li&gt;
&lt;li&gt;uses this to generate a dynamic terrain in 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-55/layered_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/20180922040807/https://www.ronja-tutorials.com/2018/09/22/layered-noise.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://lindenreid.wordpress.com/2018/09/13/using-command-buffers-in-unity-selective-bloom/&#34; target=&#34;_blank&#34; id=&#34;Using Command Buffers in Unity: Selective Bloom&#34;&gt;Using Command Buffers in Unity: Selective Bloom&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 Unity command buffers enable the extension of the Unity graphics pipeline&lt;/li&gt;
&lt;li&gt;uses this to implement selective bloom on 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-55/selective_bloom.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20180923235621/https://lindenreid.wordpress.com/2018/09/13/using-command-buffers-in-unity-selective-bloom/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;hr /&gt;


&lt;p&gt;
If you are enjoying the series and getting value from it, please consider supporting this blog.
&lt;/p&gt;

&lt;script src=&#34;https://donorbox.org/install-popup-button.js&#34; type=&#34;text/javascript&#34; defer&gt;&lt;/script&gt;
&lt;a class=&#34;dbox-donation-button&#34; href=&#34;https://donorbox.org/jendrikillner&#34; style=&#34;background:#2d81c5 url(https://d1iczxrky3cnb2.cloudfront.net/red_logo.png) no-repeat 16px center; color: #fff;text-decoration: none;font-family: Verdana,sans-serif; font-size:12px; display: inline-block;padding: 5px 10px 5px 50px; -webkit-border-radius: 2px; -moz-border-radius: 2px; border-radius: 2px; box-shadow: 0 1px 0 0 #1f5a89; text-shadow: 0 1px rgba(0, 0, 0, 0.3); text-align:center;&#34; &gt;Support this blog&lt;/a&gt;
&lt;/a&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 54 — September 2, 2018</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-54/</link>
      <pubDate>Sun, 02 Sep 2018 21:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-54/</guid>
      <description>&lt;hr /&gt;

&lt;p&gt;I am going to be on vacation for the next two weeks so this series will take a small break and will return on September 24th.&lt;/p&gt;


&lt;div class=&#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/2018/08/25/pseudo-bandlimited-pixel-art-filtering-in-3d-a-mathematical-derivation/&#34; target=&#34;_blank&#34; id=&#34;Pseudo-bandlimited pixel art filtering in 3D – a mathematical derivation&#34;&gt;Pseudo-bandlimited pixel art filtering in 3D – a mathematical derivation&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 filtering approach for a pixel art style in a 3D environment&lt;/li&gt;
&lt;li&gt;discussion of filtering theory and derivation of a filter for real-time use&lt;/li&gt;
&lt;li&gt;provides GLSL implementation of the 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-54/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;http://web.archive.org/web/20180829152149/http://themaister.net/blog/2018/08/25/pseudo-bandlimited-pixel-art-filtering-in-3d-a-mathematical-derivation/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#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/2018/08/28/spotlight-team-best-practices-setting-up-the-lighting-pipeline/&#34; target=&#34;_blank&#34; id=&#34;Spotlight Team Best Practices: Setting up the Lighting Pipeline&#34;&gt;Spotlight Team Best Practices: Setting up the Lighting Pipeline&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 documentation for Unity&lt;/li&gt;
&lt;li&gt;explains the most common terms, the difference between the rendering pipelines with strengths and weaknesses&lt;/li&gt;
&lt;li&gt;explains the difference between global illumination systems and light modes&lt;/li&gt;
&lt;li&gt;provides 4 example scenarios that show how the desired game influences the 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-54/unity_render_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/20180903035145/https://blogs.unity3d.com/2018/08/28/spotlight-team-best-practices-setting-up-the-lighting-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;http://advances.realtimerendering.com/s2018/s2018_real_time_correct_soft_shadows.pdf&#34; target=&#34;_blank&#34; id=&#34;Real-Time Ray Tracing of Correct* Soft Shadows&#34;&gt;Real-Time Ray Tracing of Correct* 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;shows how to reformulate the rendering equation so that stochastic shadows can be combined with non-stochastic shading&lt;/li&gt;
&lt;li&gt;explains how to denoise the stochastic shadows&lt;/li&gt;
&lt;li&gt;shows results and discusses the performance 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-54/real_time_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;http://web.archive.org/web/20180903035416/http://advances.realtimerendering.com/s2018/s2018_real_time_correct_soft_shadows.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://software.intel.com/en-us/articles/practical-approach-to-vulkan-preface&#34; target=&#34;_blank&#34; id=&#34;API without Secrets: The Practical Approach to Vulkan* Preface&#34;&gt;API without Secrets: The Practical Approach to Vulkan* Preface&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 Intel series about Vulkan&lt;/li&gt;
&lt;li&gt;the focus is on the high-level usage and will be comparing different approaches to common problems&lt;/li&gt;
&lt;li&gt;walkthrough of the structure of the series and how the sample code will be structured&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-54/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/20180903035800/https://software.intel.com/en-us/articles/practical-approach-to-vulkan-preface&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#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/practical-approach-to-vulkan-part-1&#34; target=&#34;_blank&#34; id=&#34;API without Secrets: The Practical Approach to Vulkan* - Part 1&#34;&gt;API without Secrets: The Practical Approach to Vulkan* - 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;investigates the performance effect of different acquire → render → present approaches&lt;/li&gt;
&lt;li&gt;shows visually why two sets of frame resources are required to utilize the available hardware efficiently&lt;/li&gt;
&lt;li&gt;the sample allows experimentations with different scene complexities and CPU 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-54/gpu_overlap.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20180903035908/https://software.intel.com/en-us/articles/practical-approach-to-vulkan-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;http://ourmachinery.com/post/device-memory-management/&#34; target=&#34;_blank&#34; id=&#34;Device Memory Management&#34;&gt;Device 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;explains the strategy how GPU memory is currently managed and what allocation strategy is used&lt;/li&gt;
&lt;li&gt;shows a visual representation of allocator usage and discusses the weaknesses of the current approach,  pointing to 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-54/device_memory_analyzer.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20180903040026/http://ourmachinery.com/post/device-memory-management/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;


&lt;div class=&#34;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/21053825&#34; target=&#34;_blank&#34; id=&#34;Animated Candle Flame write-up&#34;&gt;Animated Candle Flame write-up&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 how to implement a candle flame using 3 separate texture channels and noise distortion 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-54/candle.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20180903040141/https://www.patreon.com/posts/21053825&#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/2018/08/reverse-engineering-rendering-of.html&#34; target=&#34;_blank&#34; id=&#34;Reverse engineering the rendering of The Witcher 3, part 5 - drunk effect&#34;&gt;Reverse engineering the rendering of The Witcher 3, part 5 - drunk effect&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 the drunk effect in &amp;ldquo;The Witcher 3&amp;rdquo; was implemented based on reverse engineering the D3D11 shader disassembly&lt;/li&gt;
&lt;li&gt;provides the reverse engineered HLSL source 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-54/drunk_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;http://web.archive.org/web/20180831220220/http://astralcode.blogspot.com/2018/08/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.iquilezles.org/blog/?p=4666&#34; target=&#34;_blank&#34; id=&#34;hacking a generic ray-triangle intersector&#34;&gt;hacking a generic ray-triangle intersector&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;reusing a generic ray-triangle intersection for other calculations such as calculating the distance from a ray to a curve 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-54/ray_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/20180903040636/http://www.iquilezles.org/blog/?p=4666&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;


&lt;div class=&#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/flow/looking-through-water/&#34; target=&#34;_blank&#34; id=&#34;Looking Through Water Underwater&#34;&gt;Looking Through Water Underwater&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 extends water with flow map (previous part of the series) to support transparent water rendering&lt;/li&gt;
&lt;li&gt;apply underwater fog and approximation of 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-54/water_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/20180903040934/https://catlikecoding.com/unity/tutorials/flow/looking-through-water/&#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.dsdambuster.com/blog/lsao-part-1&#34; target=&#34;_blank&#34; id=&#34;Large scale ambient occlusion: introduction&#34;&gt;Large scale ambient occlusion: 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 how the large-scale ambient occlusion data is baked for Homefront: The Revolution&lt;/li&gt;
&lt;li&gt;implemented using rasterization with an orthographic projection and per-pixel linked lists&lt;/li&gt;
&lt;li&gt;runtime information stored in regularly spaced cells&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-54/lsao_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/20180903041121/http://www.dsdambuster.com/blog/lsao-part-1&#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://ndotl.wordpress.com/2018/08/29/baking-artifact-free-lightmaps/&#34; target=&#34;_blank&#34; id=&#34;Baking artifact-free lightmaps on the GPU&#34;&gt;Baking artifact-free lightmaps 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;article discussing what is required to achieve high-quality lightmaps&lt;/li&gt;
&lt;li&gt;UV space rasterization, using a UV G-buffer to collect necessary information to trace rays&lt;/li&gt;
&lt;li&gt;dealing with shadow leaks and UV seams&lt;/li&gt;
&lt;li&gt;an algorithm to enable mipmap generation for 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-54/gpu_light_map_baker.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;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/20180903042459/https://ndotl.wordpress.com/2018/08/29/baking-artifact-free-lightmaps/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#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/2018/08/31/why-clip-transformed-vertices-in-clip-space/&#34; target=&#34;_blank&#34; id=&#34;Why Clip Transformed Vertices in Clip-Space?&#34;&gt;Why Clip Transformed Vertices in Clip-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 why clipping happens in 4D clip space before the perspective divide is 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-54/clip_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/20180903042635/https://tayfunkayhan.wordpress.com/2018/08/31/why-clip-transformed-vertices-in-clip-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://code.blender.org/2018/08/siggraph-2018-a-developers-viewpoint/&#34; target=&#34;_blank&#34; id=&#34;Siggraph 2018: A developer’s viewpoint&#34;&gt;Siggraph 2018: A developer’s viewpoint&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;blender developers view of the technologies shown at Siggraph&lt;/li&gt;
&lt;li&gt;talking about USD / Hydra, MaterialX / ShaderX / OSL / Gaffer and OpenColorIO&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-54/siggraph18.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20180903042742/https://code.blender.org/2018/08/siggraph-2018-a-developers-viewpoint/&#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=MxbTezmEeQ4&#34; target=&#34;_blank&#34; id=&#34;An edited (and extended) version of my OSL BOF talk at SIGGRAPH 2018&#34;&gt;An edited (and extended) version of my OSL BOF talk at SIGGRAPH 2018&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 open shading language in 3ds Max&lt;/li&gt;
&lt;li&gt;how OSL was implemented into the 3ds max architecture&lt;/li&gt;
&lt;li&gt;discusses problems encountered and improvement possibilities for OSL&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-54/osl_in_3ds_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&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.gamedev.net/articles/programming/graphics/contact-hardening-soft-shadows-made-fast-r4906/&#34; target=&#34;_blank&#34; id=&#34;Contact-hardening Soft Shadows Made Fast&#34;&gt;Contact-hardening Soft Shadows Made Fast&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 contact-hardening shadows are&lt;/li&gt;
&lt;li&gt;presents one technique that can be used to implement them and deal with artifacts&lt;/li&gt;
&lt;li&gt;discussions of a method to optimize the process by splitting the shadow mask generation into two passes&lt;/li&gt;
&lt;li&gt;the first pass generates the penumbra mask at a quarter resolution and the second pass generates the soft shadows, sampling from the quarter resolution penumbra mask&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-54/contact_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;http://web.archive.org/web/20180903013855/https://www.gamedev.net/articles/programming/graphics/contact-hardening-soft-shadows-made-fast-r4906/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;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/2018/program/&#34; target=&#34;_blank&#34; id=&#34;High-Performance Graphics 2018&#34;&gt;High-Performance Graphics 2018&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 all talks from the High-Performance Graphics 2018 conference have been uploaded&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-54/vancouver_hpg.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20180903035618/https://www.highperformancegraphics.org/2018/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://gpuopen.com/radeon-gpu-profiler-1-3/&#34; target=&#34;_blank&#34; id=&#34;Radeon GPU Profiler 1.3&#34;&gt;Radeon GPU Profiler 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;can now show register and LDS (Local data share) usage as well as theoretical occupancy&lt;/li&gt;
&lt;li&gt;new render target overview table, provides information about all render targets in the frame in one location&lt;/li&gt;
&lt;li&gt;more robust handling for applications that create multiple device 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-54/gpu_profiler.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20180903040253/https://gpuopen.com/radeon-gpu-profiler-1-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://seblagarde.wordpress.com/2018/09/02/gbuffer-helper-packing-integer-and-float-together/&#34; target=&#34;_blank&#34; id=&#34;GBuffer helper – Packing integer and float together&#34;&gt;GBuffer helper – Packing integer and float together&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 pack an integer and a floating point number into a single unsigned render target channel&lt;/li&gt;
&lt;li&gt;provides source code for packing and unpacking into a variable number of available bits&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;http://web.archive.org/web/20180903023619/https://seblagarde.wordpress.com/2018/09/02/gbuffer-helper-packing-integer-and-float-together/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;hr /&gt;


&lt;p&gt;
If you are enjoying the series and getting value from it, please consider supporting this blog.
&lt;/p&gt;

&lt;script src=&#34;https://donorbox.org/install-popup-button.js&#34; type=&#34;text/javascript&#34; defer&gt;&lt;/script&gt;
&lt;a class=&#34;dbox-donation-button&#34; href=&#34;https://donorbox.org/jendrikillner&#34; style=&#34;background:#2d81c5 url(https://d1iczxrky3cnb2.cloudfront.net/red_logo.png) no-repeat 16px center; color: #fff;text-decoration: none;font-family: Verdana,sans-serif; font-size:12px; display: inline-block;padding: 5px 10px 5px 50px; -webkit-border-radius: 2px; -moz-border-radius: 2px; border-radius: 2px; box-shadow: 0 1px 0 0 #1f5a89; text-shadow: 0 1px rgba(0, 0, 0, 0.3); text-align:center;&#34; &gt;Support this blog&lt;/a&gt;
&lt;/a&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 53 — August 26, 2018</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-53/</link>
      <pubDate>Sun, 26 Aug 2018 21:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-53/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=EN1Uk6vJqRw&#34; target=&#34;_blank&#34; id=&#34;DD2018: Paul Malin - HDR display in Call of Duty&#34;&gt;DD2018: Paul Malin - HDR display 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;video for the talk that was discussed in &lt;a href=&#34;https://www.jendrikillner.com/post/graphics-programming-weekly-issue-42/&#34; target=&#34;_blank&#34;&gt;issue 42&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;an in-depth overview of color, color spaces, and color transformations&lt;/li&gt;
&lt;li&gt;discussion of HDR standards&lt;/li&gt;
&lt;li&gt;ACES pipeline overview&lt;/li&gt;
&lt;li&gt;implementation of HDR pipeline covering:

&lt;ul&gt;
&lt;li&gt;tone curve, display mapping, UI rendering&lt;/li&gt;
&lt;li&gt;universal CLUT and color grading&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-53/HDR_in_Call_of_Duty.png&#34; style=&#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://advances.realtimerendering.com/s2018/MaterialAdvancesInWWII.pptx&#34; target=&#34;_blank&#34; id=&#34;Material Advances in Call of Duty: WWII&#34;&gt;Material Advances in Call of Duty: WWII&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;normal and gloss mipmapping

&lt;ul&gt;
&lt;li&gt;using a shortened normals technique&lt;/li&gt;
&lt;li&gt;normals are shortened based on the glossiness&lt;/li&gt;
&lt;li&gt;how to combine different textures to add detail to a base texture&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;material surface occlusion

&lt;ul&gt;
&lt;li&gt;reformulation of Ambient Occlusion that adds indirect lighting in the occluded parts of the material&lt;/li&gt;
&lt;li&gt;adds micro-shadowing from material occlusion into the direct-lighting component&lt;/li&gt;
&lt;li&gt;indirect specular occlusion, using 3D Environment BrdfLut, 3rd dimension is cone angle&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;multi-scattering diffuse BRDF utilizing an approximation stored in a 2D LUT&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-53/material_call_of_duty.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20180827030251/http://advances.realtimerendering.com/s2018/MaterialAdvancesInWWII.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://developer.oculus.com/blog/tech-note-shader-snippets-for-efficient-2d-dithering/&#34; target=&#34;_blank&#34; id=&#34;Tech Note: Shader Snippets for Efficient 2D Dithering&#34;&gt;Tech Note: Shader Snippets for Efficient 2D Dithering&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;present HLSL code snippets that implement different kinds of dithering and an example application&lt;/li&gt;
&lt;li&gt;comparison of quality and performance of the different dithering 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-53/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;http://web.archive.org/web/20180823044642/https://developer.oculus.com/blog/tech-note-shader-snippets-for-efficient-2d-dithering/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;


&lt;div class=&#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/s2018/2018-08-13-SIGGRAPH-A-Life-of-a-Bokeh.pptx&#34; target=&#34;_blank&#34; id=&#34;A Life of a Bokeh&#34;&gt;A Life of a Bokeh&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;an in-depth walkthrough of the new Depth of Field implementation in Unreal Engine 4&lt;/li&gt;
&lt;li&gt;discussing problems encountered, solutions and optimizations&lt;/li&gt;
&lt;li&gt;includes many small code snippets&lt;/li&gt;
&lt;li&gt;better results and better performance than the old UE4 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-53/bokeh.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20180827030846/http://advances.realtimerendering.com/s2018/2018-08-13-SIGGRAPH-A-Life-of-a-Bokeh.pptx&#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://advances.realtimerendering.com/s2018/Siggraph%202018%20HDRP%20talk_with%20notes.pdf&#34; target=&#34;_blank&#34; id=&#34;The Road toward Unified Rendering with Unity’s High Definition Render Pipeline&#34;&gt;The Road toward Unified Rendering with Unity’s High Definition Render Pipeline&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;discusses architecture, light culling, clustered lighting implemetation&lt;/li&gt;
&lt;li&gt;how feature parity between deferred and forward pipeline is achieved&lt;/li&gt;
&lt;li&gt;implementation of decal system using a D-buffer (similar to g-buffer but for decals only)&lt;/li&gt;
&lt;li&gt;details about material types, lighting features, volumetric 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-53/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/20180827030929/http://advances.realtimerendering.com/s2018/Siggraph%202018%20HDRP%20talk_with%20notes.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://advances.realtimerendering.com/s2018/Efficient%20screen%20space%20subsurface%20scattering%20Siggraph%202018.pdf&#34; target=&#34;_blank&#34; id=&#34;Efficient Screen-Space Subsurface Scattering Using Burley’s Normalized Diffusion in Real-Time&#34;&gt;Efficient Screen-Space Subsurface Scattering Using Burley’s Normalized Diffusion 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;presentation of a screen space subsurface scattering model, they call it the Disney SSS&lt;/li&gt;
&lt;li&gt;model is using a single tweakable parameter that makes it easy to use for artists&lt;/li&gt;
&lt;li&gt;implementation details for a thick and thin object model and optimizations to 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-53/ssss_skin.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20180827030955/http://advances.realtimerendering.com/s2018/Efficient%20screen%20space%20subsurface%20scattering%20Siggraph%202018.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://advances.realtimerendering.com/s2018/Pharr%20-%20Advances%20in%20RTR%20-%20Real-time%20Ray%20Tracing.pdf&#34; target=&#34;_blank&#34; id=&#34;Real-Time rendering’s next frontier: Adopting lessons from offline ray tracing to real-time ray tracing for practical pipelines&#34;&gt;Real-Time rendering’s next frontier: Adopting lessons from offline ray tracing to real-time ray tracing for practical pipelines&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;start tracing rays where rasterizer has shortcomings&lt;/li&gt;
&lt;li&gt;explains how to tune Monte Carlo estimators to converge quicker by minimizing variance using different AO and spherical lights as examples&lt;/li&gt;
&lt;li&gt;shows the weakness of uniform random numbers and provides techniques to generate better distributions&lt;/li&gt;
&lt;li&gt;variance-driven sampling focus taking more samples where variance is high&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-53/realtime_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/20180827030338/http://advances.realtimerendering.com/s2018/Pharr%20-%20Advances%20in%20RTR%20-%20Real-time%20Ray%20Tracing.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://extremelearning.com.au/evenly-distributing-points-on-a-sphere/&#34; target=&#34;_blank&#34; id=&#34;Evenly distributing points on a sphere&#34;&gt;Evenly distributing points 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;presents two techniques that improve on existing Fibonacci lattice methods&lt;/li&gt;
&lt;li&gt;one version to achieve better packing distribution&lt;/li&gt;
&lt;li&gt;other to optimize volume and surface area of the convex hull&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-53/sphere_point_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;http://web.archive.org/web/20180826091614/http://extremelearning.com.au/evenly-distributing-points-on-a-sphere/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;


&lt;div class=&#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/@jcowles/differentiable-rendering-d00a4b0f14be&#34; target=&#34;_blank&#34; id=&#34;Differentiable Rendering&#34;&gt;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;overview of differentiable rendering&lt;/li&gt;
&lt;li&gt;a technique gaining traction in machine learning&lt;/li&gt;
&lt;li&gt;the idea is to provide a way to inverse the rendering process so that changes in the output can be traced back through the pipeline to map changes from output state into changes in the input 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-53/differentiable_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/20180827024714/https://medium.com/@jcowles/differentiable-rendering-d00a4b0f14be&#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://community.arm.com/graphics/b/blog/posts/moving-mobile-graphics&#34; target=&#34;_blank&#34; id=&#34;Moving Mobile Graphics - SIGGRAPH 2018&#34;&gt;Moving Mobile Graphics - SIGGRAPH 2018&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 Moving Mobile Graphics 2018 course from SIGGRAPH 2018&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-53/mobile_graphics.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;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/20180827022943/https://community.arm.com/graphics/b/blog/posts/moving-mobile-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;https://jonathansteyfkens.com/rust/opengl/graphics/compute/shader/2018/08/19/compute-shaders.html&#34; target=&#34;_blank&#34; id=&#34;Journey into rust #2: Compute Shaders&#34;&gt;Journey into rust #2: 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;Game Of Life implemented using OpenGL compute shaders 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-53/rust_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/20180827024622/https://jonathansteyfkens.com/rust/opengl/graphics/compute/shader/2018/08/19/compute-shaders.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.breakin.se/mc-intro/&#34; target=&#34;_blank&#34; id=&#34;Monte Carlo Integration&#34;&gt;Monte Carlo Integration&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;an in-depth explanation WIP document about Monte Carlo integration&lt;/li&gt;
&lt;li&gt;how it&amp;rsquo;s able to approximate the shape of the function from taking independent samples&lt;/li&gt;
&lt;li&gt;how importance sampling helps to converge quicker&lt;/li&gt;
&lt;li&gt;extend technique to support Multiple 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-53/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/20180827030404/https://www.breakin.se/mc-intro/&#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://dl.acm.org/citation.cfm?id=3214840&#34; target=&#34;_blank&#34; id=&#34;Color in advanced displays: HDR, OLED, AR &amp;amp; VR&#34;&gt;Color in advanced displays: HDR, OLED, AR &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;slides from the SIGGRAPH course&lt;/li&gt;
&lt;li&gt;characteristics of an idealized display&lt;/li&gt;
&lt;li&gt;discussion of real hardware considerations&lt;/li&gt;
&lt;li&gt;tone reproduction, tone characteristics, dynamic range&lt;/li&gt;
&lt;li&gt;color primaries, gamut, calibration &amp;amp; characterization&lt;/li&gt;
&lt;li&gt;viewing environment, adaptive displays, observer 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-53/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/20180827032846/http://delivery.acm.org/10.1145/3220000/3214840/a11-murdoch.pdf?ip=70.26.250.37&amp;amp;id=3214840&amp;amp;acc=OPEN&amp;amp;key=4D4702B0C3E38B35%2E4D4702B0C3E38B35%2E4D4702B0C3E38B35%2E6D218144511F3437&amp;amp;__acm__=1535340815_0ef8b14c4670948c00b0dab999ca7fdf&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;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/subsurface-for-20888982&#34; target=&#34;_blank&#34; id=&#34;Subsurface Scattering for Foliage (without Raytracing!)&#34;&gt;Subsurface Scattering for Foliage (without Raytracing!)&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 how to implement a subsurface scattering approximation 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-53/subsurface_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/20180827030426/https://www.patreon.com/posts/subsurface-for-20888982&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;


&lt;div class=&#34;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/2018/08/18/stencil-buffers.html&#34; target=&#34;_blank&#34; id=&#34;Stencil Buffers&#34;&gt;Stencil Buffers&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 use the stencil buffer with Unity&lt;/li&gt;
&lt;li&gt;shows how to read/write the stencil mask so that only parts of models will be visible 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-53/stencil.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20180827030502/https://www.ronja-tutorials.com/2018/08/18/stencil-buffers.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://lindseyreidblog.wordpress.com/2018/03/17/x-ray-shader-tutorial-in-unity/&#34; target=&#34;_blank&#34; id=&#34;X-Ray Shader Tutorial in Unity&#34;&gt;X-Ray Shader Tutorial 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 tutorial explains how to create an Overwatch style x-ray effect in Unity&lt;/li&gt;
&lt;li&gt;implemented using stencil buffer and multiple shader 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-53/xray.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20180827030515/https://lindseyreidblog.wordpress.com/2018/03/17/x-ray-shader-tutorial-in-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://github.com/GPUOpen-LibrariesAndSDKs/V-EZ&#34; target=&#34;_blank&#34; id=&#34;V-EZ&#34;&gt;V-EZ&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;abstraction layer from AMD on-top of Vulkan has been released as open source&lt;/li&gt;
&lt;li&gt;implements automatic render barrier management, descriptor pools/sets, memory management, render passes, 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-53/vez.png&#34; style=&#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.realtimerendering.com/blog/siggraph-2018-stuff/&#34; target=&#34;_blank&#34; id=&#34;SIGGRAPH 2018 Stuff&#34;&gt;SIGGRAPH 2018 Stuff&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 observations and nuggets of information from different SIGGRAPH 2018 sessions&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-53/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/20180827030630/http://www.realtimerendering.com/blog/siggraph-2018-stuff/&#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://lindseyreidblog.wordpress.com/2018/08/25/basic-math-for-shaders/&#34; target=&#34;_blank&#34; id=&#34;Basic Math for Shaders&#34;&gt;Basic Math for 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 visual explanation of foundational linear algebra concepts that are required for shader 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-53/ineedspace1.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20180827030759/https://lindseyreidblog.wordpress.com/2018/08/25/basic-math-for-shaders/&#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.ctrl-alt-test.fr/2018/demoscene-session-at-siggraph-2018/&#34; target=&#34;_blank&#34; id=&#34;Demoscene session at SIGGRAPH 2018&#34;&gt;Demoscene session at SIGGRAPH 2018&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 demoscene session at SIGGRAPH 2018&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://youtu.be/yqA71-HHY2Q?t=585&#34; target=&#34;_blank&#34;&gt;Clouds in Wande&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://youtu.be/yqA71-HHY2Q?t=1555&#34; target=&#34;_blank&#34;&gt;Making an animation in 18 bytes at a time&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://youtu.be/yqA71-HHY2Q?t=2722&#34; target=&#34;_blank&#34;&gt;Building World in 64KB&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://youtu.be/yqA71-HHY2Q?t=3918&#34; target=&#34;_blank&#34;&gt;Demo Party in Japan&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-53/demoscene.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20180827025332/http://www.ctrl-alt-test.fr/2018/demoscene-session-at-siggraph-2018/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://voxel-tracer.github.io/scatter-kernel/&#34; target=&#34;_blank&#34; id=&#34;Scatter Kernel&#34;&gt;Scatter Kernel&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 the series about developing a path tracer using Cuda&lt;/li&gt;
&lt;li&gt;discussing how to move ray generation code from the CPU to the GPU&lt;/li&gt;
&lt;li&gt;speedup of 11x is achieved compared to single threaded CPU implementation&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/20180827024320/https://voxel-tracer.github.io/scatter-kernel/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://deadvoxels.blogspot.com/2018/08/some-thoughts-re-siggraph-2018.html?m=1&#34; target=&#34;_blank&#34; id=&#34;Some thoughts re Raytracing post-Siggraph 2018&#34;&gt;Some thoughts re Raytracing post-Siggraph 2018&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;thoughts on open questions in regards to raytracing dynamic, open world type environments&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/20180827030450/https://deadvoxels.blogspot.com/2018/08/some-thoughts-re-siggraph-2018.html?m=1&#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://momentsingraphics.de/?p=216&#34; target=&#34;_blank&#34; id=&#34;A brief postscript on moment-based order-independent transparency&#34;&gt;A brief postscript on moment-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;brief discussion of difference between &lt;a href=&#34;https://dl.acm.org/citation.cfm?id=3231585&#34; target=&#34;_blank&#34;&gt;Moment Transparency&lt;/a&gt; and &lt;a href=&#34;http://momentsingraphics.de/?page_id=210&#34; target=&#34;_blank&#34;&gt;Moment-Based Order-Independent Transparency&lt;/a&gt; approaches&lt;/li&gt;
&lt;li&gt;small code samples to help to integrate the trigonometric Moment-Based Order-Independent Transparency technique&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/20180827030609/http://momentsingraphics.de/?p=216&#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.breakin.se/learn/pathtracing-coherency.html&#34; target=&#34;_blank&#34; id=&#34;Pathtracing Coherency&#34;&gt;Pathtracing Coherency&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 different ray tracing scenarios and how they influence coherency between neighboring rays&lt;/li&gt;
&lt;li&gt;references to papers that investigate the issue in further details&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/20180827030734/https://www.breakin.se/learn/pathtracing-coherency.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;hr /&gt;


&lt;p&gt;
If you are enjoying the series and getting value from it, please consider supporting this blog.
&lt;/p&gt;

&lt;script src=&#34;https://donorbox.org/install-popup-button.js&#34; type=&#34;text/javascript&#34; defer&gt;&lt;/script&gt;
&lt;a class=&#34;dbox-donation-button&#34; href=&#34;https://donorbox.org/jendrikillner&#34; style=&#34;background:#2d81c5 url(https://d1iczxrky3cnb2.cloudfront.net/red_logo.png) no-repeat 16px center; color: #fff;text-decoration: none;font-family: Verdana,sans-serif; font-size:12px; display: inline-block;padding: 5px 10px 5px 50px; -webkit-border-radius: 2px; -moz-border-radius: 2px; border-radius: 2px; box-shadow: 0 1px 0 0 #1f5a89; text-shadow: 0 1px rgba(0, 0, 0, 0.3); text-align:center;&#34; &gt;Support this blog&lt;/a&gt;
&lt;/a&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 52 — August 19, 2018</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-52/</link>
      <pubDate>Sun, 19 Aug 2018 21:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-52/</guid>
      <description>
&lt;div class=&#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/slides/2018-brdf-realtime-layered/slides.html#/&#34; target=&#34;_blank&#34; id=&#34;Efficient rendering of layered materials&#34;&gt;Efficient rendering of 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;slides for the layered real-time shading model discussed in &lt;a href=&#34;https://www.jendrikillner.com/post/graphics-programming-weekly-issue-38/&#34; target=&#34;_blank&#34;&gt;issue 38&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;using a statistical analysis of light transport in layered structures&lt;/li&gt;
&lt;li&gt;a visual explanation of the statistical analysis framework&lt;/li&gt;
&lt;li&gt;presentation of results, comparison against stochastic references and discussion of 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-52/beetle.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20180818042323/https://belcour.github.io/blog/slides/2018-brdf-realtime-layered/slides.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.highperformancegraphics.org/wp-content/uploads/2018/Papers-Session3/HPG2018_ByExampleNoise.pdf&#34; target=&#34;_blank&#34; id=&#34;High-Performance By-Example Noise using a Histogram-Preserving Blending Operator&#34;&gt;High-Performance By-Example Noise using a Histogram-Preserving Blending Operator&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 technique 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;explanation of problems with linear blending&lt;/li&gt;
&lt;li&gt;how contrast-preserving blending is able to mitigate some of these problems&lt;/li&gt;
&lt;li&gt;presents a histogram-preserving blending algorithm that has many use cases besides the introduced procedural texturing technique&lt;/li&gt;
&lt;li&gt;whenever you blend

&lt;ul&gt;
&lt;li&gt;weighted data: use premultiplied blending&lt;/li&gt;
&lt;li&gt;data chosen randomly: use histogram-preserving blending&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-52/hpg2018_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;http://web.archive.org/web/20180813031418/https://www.highperformancegraphics.org/wp-content/uploads/2018/Papers-Session3/HPG2018_ByExampleNoise.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=x5CXPL7-RwM&#34; target=&#34;_blank&#34; id=&#34;Fully Automated Mesh UV UnWrapping&#34;&gt;Fully Automated Mesh UV UnWrapping&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 a fully automated UV unwrapping tool&lt;/li&gt;
&lt;li&gt;explains all steps of the pipeline that tries to find the best projection technique for local parts of the model&lt;/li&gt;
&lt;li&gt;tool available for 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-52/uw_unwrap.png&#34; style=&#34;margin:0px&#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/nvidia-announces-nsight-graphics-2018-4/&#34; target=&#34;_blank&#34; id=&#34;NVIDIA Announces Nsight Graphics 2018.4&#34;&gt;NVIDIA Announces Nsight Graphics 2018.4&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;added pixel history view for D3D12 and added support for support for Vulkan ray trace extension&lt;/li&gt;
&lt;li&gt;new GPU trace activity view visualizes the GPU utilization in more detail&lt;/li&gt;
&lt;li&gt;provides a breakdown of wrap level activity, connected to events and performance markers&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-52/nsight.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20180818014428/https://news.developer.nvidia.com/nvidia-announces-nsight-graphics-2018-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://www.ea.com/seed/news/hpg-2018-keynote&#34; target=&#34;_blank&#34; id=&#34;GAME RAY TRACING: STATE-OF-THE-ART AND OPEN PROBLEMS&#34;&gt;GAME RAY TRACING: STATE-OF-THE-ART AND OPEN PROBLEMS&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 PICA PICA hybrid raytracing pipeline&lt;/li&gt;
&lt;li&gt;thought about DirectXRaytracing constraints related to acceleration structures&lt;/li&gt;
&lt;li&gt;presentation of a texture LOD technique developed with Nvidia

&lt;ul&gt;
&lt;li&gt;preprint available &lt;a href=&#34;https://t.co/opJPBiZ6au&#34; target=&#34;_blank&#34;&gt;here&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;Pica Pica assets are avaible with with a non-commercial license on &lt;a href=&#34;https://skfb.ly/6AJCp&#34; target=&#34;_blank&#34;&gt;sketchfab&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-52/pica_pica.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20180818015224/https://www.ea.com/seed/news/hpg-2018-keynote&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#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/2018/08/12/not-all-blue-noise-is-created-equal/&#34; target=&#34;_blank&#34; id=&#34;Not All Blue Noise is Created Equal&#34;&gt;Not All Blue Noise is Created Equal&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;comparison of 3 techniques to generate blue noise&lt;/li&gt;
&lt;li&gt;visual quality comparison of three methods to generate blue noise&lt;/li&gt;
&lt;li&gt;the void and cluster technique produces the best results in 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-52/blue_noise_90.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;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/20180815221708/https://blog.demofox.org/2018/08/12/not-all-blue-noise-is-created-equal/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#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/slides/2018-integration-sh/slides.html#/&#34; target=&#34;_blank&#34; id=&#34;Integrating clipped spherical harmonics&#34;&gt;Integrating clipped 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;integration of spherical harmonics over spherical polygons&lt;/li&gt;
&lt;li&gt;using a closed form expression with linear cost&lt;/li&gt;
&lt;li&gt;shows applications for area lights and approximating shadows from 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-52/sh_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 class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20180818131535/https://belcour.github.io/blog/slides/2018-integration-sh/slides.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://blogs.nvidia.com/blog/2018/08/13/open-source-mdl-sdk/&#34; target=&#34;_blank&#34; id=&#34;May the Source Be with You: NVIDIA Open Sources Material Definition Language SDK&#34;&gt;May the Source Be with You: NVIDIA Open Sources Material Definition Language 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 open sourced the MDL SDK (Material Definition Language)&lt;/li&gt;
&lt;li&gt;set of tools that allow materials to be shared between different renderers&lt;/li&gt;
&lt;li&gt;can generate texturing functions for multiple backends; however the GLSL backend is NOT part of the open source 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-52/mdl.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20180818020224/https://blogs.nvidia.com/blog/2018/08/13/open-source-mdl-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;http://intro-to-dxr.cwyman.org&#34; target=&#34;_blank&#34; id=&#34;Introduction to DirectX RayTracing&#34;&gt;Introduction to DirectX RayTracing&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;p&gt;slides and &lt;a href=&#34;https://youtu.be/Q1cuuepVNoY?t=310&#34; target=&#34;_blank&#34;&gt;video&lt;/a&gt; for the &amp;ldquo;Introduction to DirectX RayTracing&amp;rdquo; track from Siggraph 2018 have been released&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-52/introDxrTeaser.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20180818024502/http://intro-to-dxr.cwyman.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://drive.google.com/drive/u/0/folders/14yayBb9XiL16lmuhbYhhvea8mKUUK77W&#34; target=&#34;_blank&#34; id=&#34;Ray Tracing Minibooks Series released as free pdf&#34;&gt;Ray Tracing Minibooks Series released as free pdf&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the pdf version of the Ray Tracing Minibooks series has been released for free&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-52/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&gt;&lt;/p&gt;


&lt;div class=&#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.selfshadow.com/2018/08/16/siggraph-2018-links/&#34; target=&#34;_blank&#34; id=&#34;SIGGRAPH 2018 Links&#34;&gt;SIGGRAPH 2018 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 collection of links to SIGGRAPH 2018 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-52/siggraph18.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20180818025250/http://blog.selfshadow.com/2018/08/16/siggraph-2018-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;https://www.anandtech.com/show/13214/nvidia-reveals-next-gen-turing-gpu-architecture&#34; target=&#34;_blank&#34; id=&#34;NVIDIA Reveals Next-Gen Turing GPU Architecture: NVIDIA Doubles-Down on Ray Tracing, GDDR6, &amp;amp; More&#34;&gt;NVIDIA Reveals Next-Gen Turing GPU Architecture: NVIDIA Doubles-Down on Ray Tracing, GDDR6, &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;new GPU architecture from Nvidia&lt;/li&gt;
&lt;li&gt;dedicated ray tracing hardware&lt;/li&gt;
&lt;li&gt;volta cores have int8 and int4 support&lt;/li&gt;
&lt;li&gt;support for variable rate 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-52/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;http://web.archive.org/web/20180818225454/https://www.anandtech.com/show/13214/nvidia-reveals-next-gen-turing-gpu-architecture&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#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/2018/index.html&#34; target=&#34;_blank&#34; id=&#34;siggraph course: path tracing in production 2018&#34;&gt;siggraph course: path tracing in production 2018&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 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-52/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;http://web.archive.org/web/20180818030056/https://jo.dreggn.org/path-tracing-in-production/2018/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.khronos.org/developers/library/2018-siggraph&#34; target=&#34;_blank&#34; id=&#34;Khronos - 2018 SIGGRAPH&#34;&gt;Khronos - 2018 SIGGRAPH&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 &lt;a href=&#34;https://www.youtube.com/watch?v=FCAM-3aAzXg&#34; target=&#34;_blank&#34;&gt;videos&lt;/a&gt; for the Khronos talks from SIGGRAPH 2018&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-52/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/20180818042127/https://www.khronos.org/developers/library/2018-siggraph&#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/@jcowles/siggraph-2018-papers-ee2bb1be9050&#34; target=&#34;_blank&#34; id=&#34;SIGGRAPH 2018 Papers - Machine Learning, Graphics, and Rendering&#34;&gt;SIGGRAPH 2018 Papers - Machine Learning, Graphics, 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;list of author&amp;rsquo;s favorite papers with a brief summary of the 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-52/siggraph18_summary.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20180819022238/https://medium.com/@jcowles/siggraph-2018-papers-ee2bb1be9050&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#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/citation.cfm?id=3214846&#34; target=&#34;_blank&#34; id=&#34;Fundamentals of color science&#34;&gt;Fundamentals of color science&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 Siggraph course about the fundamentals of color science and color management for games and film&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-52/color_science.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20180820001201/http://delivery.acm.org/10.1145/3220000/3214846/a7-ferwerda.pdf?ip=70.26.250.37&amp;amp;id=3214846&amp;amp;acc=OPEN&amp;amp;key=4D4702B0C3E38B35%2E4D4702B0C3E38B35%2E4D4702B0C3E38B35%2E6D218144511F3437&amp;amp;__acm__=1534724127_6faefb44d36ebba14531d82bd8604f32&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#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/citation.cfm?id=3214848&#34; target=&#34;_blank&#34; id=&#34;Introduction to the Vulkan Graphics API&#34;&gt;Introduction to the Vulkan 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;slides for the Siggraph course&lt;/li&gt;
&lt;li&gt;provides an overview of all API interfaces required to render 3D 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-52/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/20180820001548/http://delivery.acm.org/10.1145/3220000/3214848/a3-bailey.pdf?ip=70.26.250.37&amp;amp;id=3214848&amp;amp;acc=OPEN&amp;amp;key=4D4702B0C3E38B35%2E4D4702B0C3E38B35%2E4D4702B0C3E38B35%2E6D218144511F3437&amp;amp;__acm__=1534724130_c69a0efc91bd5ef7af549a4e6dea1262&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#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.gpuinfo.org/download.php&#34; target=&#34;_blank&#34; id=&#34;Vulkan GPUinfo database - 1.7&#34;&gt;Vulkan GPUinfo database - 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;fully vulkan 1.1 compatible&lt;/li&gt;
&lt;li&gt;support for VK_EXT_conditional_rendering, VK_KHR_8bit_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-52/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;
If you are enjoying the series and getting value from it, please consider supporting this blog.
&lt;/p&gt;

&lt;script src=&#34;https://donorbox.org/install-popup-button.js&#34; type=&#34;text/javascript&#34; defer&gt;&lt;/script&gt;
&lt;a class=&#34;dbox-donation-button&#34; href=&#34;https://donorbox.org/jendrikillner&#34; style=&#34;background:#2d81c5 url(https://d1iczxrky3cnb2.cloudfront.net/red_logo.png) no-repeat 16px center; color: #fff;text-decoration: none;font-family: Verdana,sans-serif; font-size:12px; display: inline-block;padding: 5px 10px 5px 50px; -webkit-border-radius: 2px; -moz-border-radius: 2px; border-radius: 2px; box-shadow: 0 1px 0 0 #1f5a89; text-shadow: 0 1px rgba(0, 0, 0, 0.3); text-align:center;&#34; &gt;Support this blog&lt;/a&gt;
&lt;/a&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 51 — August 12, 2018</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-51/</link>
      <pubDate>Sun, 12 Aug 2018 21:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-51/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.gamedev.net/blogs/entry/2265286-imperfect-environment-maps/&#34; target=&#34;_blank&#34; id=&#34;Imperfect Environment Maps&#34;&gt;Imperfect Environment Maps&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;using ideas from imperfect shadow map point-cloud rendering to implement reflections&lt;/li&gt;
&lt;li&gt;generates a point cloud around the track&lt;/li&gt;
&lt;li&gt;screen space pixels that are close to points of the point cloud transfer their color onto the points&lt;/li&gt;
&lt;li&gt;the point cloud is then projected onto a sphere around the car and used as an environment map to add reflections on the cars&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-51/env_maps.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20180812235808/https://www.gamedev.net/blogs/entry/2265286-imperfect-environment-maps/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#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.gijskaerts.com/wordpress/?p=112&#34; target=&#34;_blank&#34; id=&#34;Musings on cross-platform graphics engine architectures – Part 2&#34;&gt;Musings on cross-platform graphics engine architectures – 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;breaks down the engine into two separate related concepts, Resource and Command management&lt;/li&gt;
&lt;li&gt;discusses how to interact with resources&lt;/li&gt;
&lt;li&gt;introduces the idea of state scopes to prevent state leaking&lt;/li&gt;
&lt;li&gt;commands are recorded into engine specific command buffers that are later converted into the API specific 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-51/Record-stage-commit-model-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/20180809060935/http://www.gijskaerts.com/wordpress/?p=112&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#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.highperformancegraphics.org/2018/program/&#34; target=&#34;_blank&#34; id=&#34;High-Performance Graphics 2018&#34;&gt;High-Performance Graphics 2018&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 most of the talks have already been 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-51/vancouver_hpg.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20180813114316/http://www.highperformancegraphics.org/2018/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://news.developer.nvidia.com/dx12-raytracing-tutorials/&#34; target=&#34;_blank&#34; id=&#34;DX12 Ray Tracing Tutorials&#34;&gt;DX12 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;Nvidia tutorial on how to integrate DirectX raytracing and rasterization so that both rendering paths can be used within the same application&lt;/li&gt;
&lt;li&gt;how to initialize the API, create DXR acceleration structures&lt;/li&gt;
&lt;li&gt;how the ray tracing pipeline works, manage shaders, resources, and shader binding tables&lt;/li&gt;
&lt;li&gt;implementation of the required raytracing shaders to produce identical results with the rasterization 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-51/rt1.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;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/20180812050555/https://news.developer.nvidia.com/dx12-raytracing-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://schuttejoe.github.io/post/disneybsdf/&#34; target=&#34;_blank&#34; id=&#34;Rendering the Moana Island Scene Part 1: Implementing the Disney BSDF&#34;&gt;Rendering the Moana Island Scene Part 1: Implementing the Disney BSDF&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;p&gt;. short description of the different aspects of the Disney BSDF, including source code&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-51/disney_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/20180813004639/https://schuttejoe.github.io/post/disneybsdf/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://devfault.wordpress.com/2018/08/07/screen-space-water-rendering/&#34; target=&#34;_blank&#34; id=&#34;Screen-space Water Rendering&#34;&gt;Screen-space Water 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 technique to render screen space water using unity&lt;/li&gt;
&lt;li&gt;water particles write information into offscreen buffers to accumulate water information&lt;/li&gt;
&lt;li&gt;these buffers are then resolved to form a continues water surface instead of individual blobs&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-51/screenspace_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;http://web.archive.org/web/20180808182046/https://devfault.wordpress.com/2018/08/07/screen-space-water-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;http://blog.selfshadow.com/2018/08/05/multi-faceted-part-3/&#34; target=&#34;_blank&#34; id=&#34;A Multi-Faceted Exploration (Part 3)&#34;&gt;A Multi-Faceted Exploration (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;improves upon the multiple scattering approximation from the previous part of the series&lt;/li&gt;
&lt;li&gt;the result is a model that only requires a 2D LUT to be pre-calculated&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-51/spi_vs_heitz_r1.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;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/20180806092616/http://blog.selfshadow.com/2018/08/05/multi-faceted-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://blogs.unity3d.com/2018/08/07/shader-graph-updates-and-sample-project/&#34; target=&#34;_blank&#34; id=&#34;Shader Graph Updates and Sample Project&#34;&gt;Shader Graph Updates and Sample Project&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 vegetation shaders created with the visual shader editor that was added in Unity 2018.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-51/graph_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/20180808033800/https://blogs.unity3d.com/2018/08/07/shader-graph-updates-and-sample-project/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://marc-b-reynolds.github.io/distribution/2018/08/06/UniInSphere.html&#34; target=&#34;_blank&#34; id=&#34;Uniform points in sphere and capped cone&#34;&gt;Uniform points in sphere and capped cone&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 improve the generation of uniform points in a sphere, disk, and a spherically capped 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-51/disc.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;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/20180810154249/http://marc-b-reynolds.github.io/distribution/2018/08/06/UniInSphere.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://ronja-tutorials.tumblr.com/post/176709279492/clipping-objects-with-a-plane/&#34; target=&#34;_blank&#34; id=&#34;Clipping Objects with a Plane&#34;&gt;Clipping Objects with 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;a tutorial that shows how to clip a mesh in a pixel shader against a plane 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-51/mesh_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/20180812234509/https://ronja-tutorials.tumblr.com/post/176709279492/clipping-objects-with-a-plane/amp&#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://confettishadertranslator.azurewebsites.net&#34; target=&#34;_blank&#34; id=&#34;Confetti Shader Translator - Alpha&#34;&gt;Confetti Shader Translator - Alpha&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 tool that allows the conversion from HLSL Shaders to HLSL 6.2, GLSL 4.5 and Metal 2.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-51/conffx_logo_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;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://technik90.blogspot.com/2018/08/the-other-pathtracer-5-optimizing.html&#34; target=&#34;_blank&#34; id=&#34;The other pathtracer 5: Optimizing Triangle-Ray Intersections&#34;&gt;The other pathtracer 5: Optimizing Triangle-Ray Intersections&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;choosing a different algorithm to optimize triangle-ray intersection tests and vectorizing the 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-51/triangle_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/20180813003200/http://technik90.blogspot.com/2018/08/the-other-pathtracer-5-optimizing.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.demofox.org/2018/08/07/tiled-blue-noise/&#34; target=&#34;_blank&#34; id=&#34;Tiled Blue Noise&#34;&gt;Tiled 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;a quick overview of blue noise tiled with various tile sizes from 16x16 to 256x256&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-51/obluenoise256.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20180813003318/https://blog.demofox.org/2018/08/07/tiled-blue-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://hgpu.org/?p=18407&#34; target=&#34;_blank&#34; id=&#34;A Cross-platform Evaluation of Graphics Shader Compiler Optimization&#34;&gt;A Cross-platform Evaluation of Graphics Shader Compiler Optimization&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;explores source to source optimizations techniques using the LunarGlass framework with GLSL shaders&lt;/li&gt;
&lt;li&gt;comparison of different optimization techniques and the effects on runtime performance&lt;/li&gt;
&lt;li&gt;results vary significantly between different shaders and target 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-51/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/20180813003648/https://www.research.ed.ac.uk/portal/files/56917122/A_Cross_platform_Evaluation_of_Graphics_Shader_Compiler_Optimization.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://bheisler.github.io/post/state-of-gpgpu-in-rust/&#34; target=&#34;_blank&#34; id=&#34;The State of GPGPU in Rust&#34;&gt;The State of GPGPU in Rust&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 libraries available to write GPGPU applications using the Rust programming language&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/20180813003915/https://bheisler.github.io/post/state-of-gpgpu-in-rust/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.polygon-treehouse.com/blog/2017/10/2/lighting-the-unlit&#34; target=&#34;_blank&#34; id=&#34;Lighting the Unlit&#34;&gt;Lighting the Unlit&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;description of the &amp;ldquo;unlit&amp;rdquo; light system being used&lt;/li&gt;
&lt;li&gt;it allows lights to modify tint, brightness and contrast to enable the 2D characters to match the environment 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-51/unlit_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;http://web.archive.org/web/20180813114437/https://www.polygon-treehouse.com/blog/2017/10/2/lighting-the-unlit&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://redqueengraphics.com/2018/08/11/metal-shaders-blending-basics/&#34; target=&#34;_blank&#34; id=&#34;Metal shaders: blending basics&#34;&gt;Metal shaders: blending basics&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 explanation and Metal shader code for different blend modes as described in the PDF specification&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-51/blending.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20180813004540/http://redqueengraphics.com/2018/08/11/metal-shaders-blending-basics/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;


&lt;div class=&#34;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/2018/08/05/shader-showcase-saturday-4/&#34; target=&#34;_blank&#34; id=&#34;Shader Showcase Saturday #4&#34;&gt;Shader Showcase Saturday #4&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 different fire effects that are based around animated noise 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-51/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;http://web.archive.org/web/20180805180228/https://www.alanzucconi.com/2018/08/05/shader-showcase-saturday-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;https://www.alanzucconi.com/2018/08/10/shader-showcase-saturday-5/&#34; target=&#34;_blank&#34; id=&#34;Shader Showcase Saturday #5&#34;&gt;Shader Showcase Saturday #5&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 different rain effects with links to more in-depth articles discussing the showcased 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-51/rain.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;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/20180811120353/https://www.alanzucconi.com/2018/08/10/shader-showcase-saturday-5/&#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/Microsoft/glTF-SDK&#34; target=&#34;_blank&#34; id=&#34;Microsoft/glTF-SDK&#34;&gt;Microsoft/glTF-SDK&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 their library to read and write GLTF 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-51/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&gt;

&lt;hr /&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 50 — August 5, 2018</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-50/</link>
      <pubDate>Sun, 05 Aug 2018 21:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-50/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://google.github.io/filament/Filament.md.html&#34; target=&#34;_blank&#34; id=&#34;Filament - Physically-based rendering engine&#34;&gt;Filament - Physically-based 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;great in-depth discussion of the full PBR rendering pipeline, documentation for the &lt;a href=&#34;https://github.com/google/filament&#34; target=&#34;_blank&#34;&gt;Filament engine&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;base BRDF model, extended with support for clear coat layer, anisotropic surfaces, and cloth&lt;/li&gt;
&lt;li&gt;explanation of lighting units and implementations for directional, point and spotlights&lt;/li&gt;
&lt;li&gt;providing GLSL code snippets&lt;/li&gt;
&lt;li&gt;a short overview of the clustered forward shading implementation&lt;/li&gt;
&lt;li&gt;information about how to validate a PBR 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-50/screenshot_camera_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 class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;http://web.archive.org/web/20180804011506/https://google.github.io/filament/Filament.md.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/Nadrin/PBR&#34; target=&#34;_blank&#34; id=&#34;An implementation of physically based shading model &amp;amp; image based lighting in various graphics APIs&#34;&gt;An implementation of physically based shading model &amp;amp; image based lighting in various graphics APIs&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;physically based shading model implemented using D3D11, D3D12, Vulkan and OpenGL 4.5&lt;/li&gt;
&lt;li&gt;each backend is implemented in a single .h and .cpp file&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-50/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/20180804011701/https://github.com/Nadrin/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://karthikkaranth.me/blog/generating-random-points-in-a-sphere/&#34; target=&#34;_blank&#34; id=&#34;Generating random points in a sphere&#34;&gt;Generating random points 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;shows algorithms for generating random points within a sphere&lt;/li&gt;
&lt;li&gt;contains interactive visualizations that make it easy to see the quality of the distribution
&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-50/random_in_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;http://web.archive.org/web/20180805191942/https://karthikkaranth.me/blog/generating-random-points-in-a-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://deepspacebanana.github.io/deepspacebanana.github.io/blog/shader/art/unreal%20engine/Flowmapped-Burn-Shader&#34; target=&#34;_blank&#34; id=&#34;Flowmapped-Burn-Shader&#34;&gt;Flowmapped-Burn-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 of a burning shader implemented in Unreal Engine&lt;/li&gt;
&lt;li&gt;uses flow maps and world space positioned spheres to influence the fire&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-50/burn_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/20180804005324/https://deepspacebanana.github.io/deepspacebanana.github.io/blog/shader/art/unreal%20engine/Flowmapped-Burn-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.patreon.com/posts/20430343&#34; target=&#34;_blank&#34; id=&#34;Non-Scary Shader Intro 2: Vertex Fun&#34;&gt;Non-Scary Shader Intro 2: Vertex Fun&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 providing an introduction to vertex shaders&lt;/li&gt;
&lt;li&gt;shows how to add a custom vertex shader to a basic unity shader, sample textures, pass data from vertex to pixel shader and modify vertex positions
&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-50/vertex.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20180804010317/https://www.patreon.com/posts/20430343&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#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/marrs2018.html&#34; target=&#34;_blank&#34; id=&#34;Explanation of the paper &amp;#39;View-warped Multi-view Soft Shadows for Local Area Lights&amp;#39;&#34;&gt;Explanation of the paper &amp;#39;View-warped Multi-view Soft Shadows for Local Area Lights&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;summary of the paper: &amp;ldquo;View-warped Multi-view Soft Shadows for Local Area Lights &amp;rdquo; discussed in &lt;a href=&#34;https://www.jendrikillner.com/post/graphics-programming-weekly-issue-49&#34;&gt;last weeks&lt;/a&gt; issue&lt;/li&gt;
&lt;li&gt;a real-time technique for soft shadows
&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-50/umbra_penumbra_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/20180804005859/https://erkaman.github.io/posts/marrs2018.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://voxel-tracer.github.io/Optimize-Memory-Transfers/&#34; target=&#34;_blank&#34; id=&#34;Optimize Memory Transfers - Using CUDA profiler to figure out why our renderer is slow&#34;&gt;Optimize Memory Transfers - Using CUDA profiler to figure out why our renderer is slow&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 measure Cuda copy performance using the tools contained in the SDK&lt;/li&gt;
&lt;li&gt;how to speed up the application with the collected performance information
&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-50/CpuProfileWithoutLightSampling.PNG&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20180804005051/https://voxel-tracer.github.io/Optimize-Memory-Transfers/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://rreusser.github.io/aligning-3d-scans/&#34; target=&#34;_blank&#34; id=&#34;Aligning 3D scans&#34;&gt;Aligning 3D scans&lt;/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 the central axis from a 3D mesh&lt;/li&gt;
&lt;li&gt;the axis is computed as maximal perpendicular to the area-weighted surface normal of the mesh
&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-50/align_scans.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20180804010104/http://rreusser.github.io/aligning-3d-scans/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#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/Multisampling&#34; target=&#34;_blank&#34; id=&#34;Vulkan - Multisampling&#34;&gt;Vulkan - Multisampling&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 MSAA when using Vulkan&lt;/li&gt;
&lt;li&gt;how to detect the supported sample count, set up the render targets and make the necessary adjustments to the render passes&lt;/li&gt;
&lt;li&gt;shows how to enable sample shading to further improve quality on the inside of polygons&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-50/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/20180804010613/https://vulkan-tutorial.com/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://twitter.com/erkaman2/status/1025075725882277888/photo/1&#34; target=&#34;_blank&#34; id=&#34;Twitter - Volume rendering thread&#34;&gt;Twitter - Volume rendering 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 that provides a large number of links to information about volume rendering
&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-50/volume_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/20180804011347/https://twitter.com/erkaman2/status/1025075725882277888/photo/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://renderdoc.org/vkspec_chunked/index.html&#34; target=&#34;_blank&#34; id=&#34;Vulkan® 1.1.82 - Chunked Specification&#34;&gt;Vulkan® 1.1.82 - Chunked 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 the Vulkan specification in a chunked version&lt;/li&gt;
&lt;li&gt;the original specification is one large HTML file that causes usability issues&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/20180804011119/https://renderdoc.org/vkspec_chunked/chap1.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/decoding-radeon-vulkan-versions/&#34; target=&#34;_blank&#34; id=&#34;Decoding Radeon Vulkan versions&#34;&gt;Decoding Radeon Vulkan versions&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 XML file that offers the possibility to map from external driver version to the contained Vulkan 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-50/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/20180804010914/https://gpuopen.com/decoding-radeon-vulkan-versions/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://xenko.com/blog/xenko-opensource-mit/&#34; target=&#34;_blank&#34; id=&#34;Xenko 3.0 is now free and open-source!&#34;&gt;Xenko 3.0 is now free and 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;Xenko, a C# based game engine has been released as open source with an MIT license
&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-50/xenko.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;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/20180803225557/https://xenko.com/blog/xenko-opensource-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://rivten.github.io/2018/08/03/graphics-article-list.html&#34; target=&#34;_blank&#34; id=&#34;Compilation of 100&amp;#43; 3D graphics academic papers&#34;&gt;Compilation of 100&amp;#43; 3D graphics academic papers&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 many 3D graphics research papers for a large number of different topics (sorted by topic)
&lt;br /&gt;&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/20180806010952/https://rivten.github.io/2018/08/03/graphics-article-list.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://lpgpu.org/wp/2018/08/think-silicon-released-glove/&#34; target=&#34;_blank&#34; id=&#34;Think Silicon® releases GLOVE™, an OpenGL ES over Vulkan middleware as open source&#34;&gt;Think Silicon® releases GLOVE™, an OpenGL ES over Vulkan middleware as 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;OpenGL ES implementation using Vulkan&lt;/li&gt;
&lt;li&gt;licensed as LGPL v3
&lt;br /&gt;&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/20180804010754/http://lpgpu.org/wp/2018/08/think-silicon-released-glove/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 49 — July 29, 2018</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-49/</link>
      <pubDate>Sun, 29 Jul 2018 21:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-49/</guid>
      <description>
&lt;div class=&#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/@alen.ladavac/the-elusive-frame-timing-168f899aec92&#34; target=&#34;_blank&#34; id=&#34;The Elusive Frame Timing&#34;&gt;The Elusive Frame Timing&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 frame stuttering&lt;/li&gt;
&lt;li&gt;provides videos and frame by frame comparisons of what is causing the stutter&lt;/li&gt;
&lt;li&gt;explains how the discrepancy between measured time and actual present time causes the studdering issue&lt;/li&gt;
&lt;li&gt;current state of graphics API ecosystem in solving this problem
&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-49/frame_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;http://web.archive.org/web/20180727071728/https://medium.com/@alen.ladavac/the-elusive-frame-timing-168f899aec92&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;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/Xt3cDn&#34; target=&#34;_blank&#34; id=&#34;Quality hashes collection WebGL2	&#34;&gt;Quality hashes collection WebGL2	&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;shadertoy implementations of multiple noise types&lt;/li&gt;
&lt;li&gt;the comments describe improvements and possible optimizations to the used noise 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-49/webgl_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://jcgt.org/published/0007/03/01/&#34; target=&#34;_blank&#34; id=&#34;View-warped Multi-view Soft Shadowing for Local Area Lights&#34;&gt;View-warped Multi-view Soft Shadowing 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;shadow technique for local area lights&lt;/li&gt;
&lt;li&gt;based on the generation of view independent point clouds from dynamic triangle meshes and the rendering of multiple depth maps simultaneously&lt;/li&gt;
&lt;li&gt;proposes two different implementations&lt;/li&gt;
&lt;li&gt;performance and quality comparison against PCSS (percentage closer soft
shadows) and Multi-view rasterization (MVR)
&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-49/shadow_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;http://web.archive.org/web/20180727041613/http://www.jcgt.org/published/0007/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;http://reedbeta.com/blog/normals-inverse-transpose-part-3/&#34; target=&#34;_blank&#34; id=&#34;Normals and the Inverse Transpose, Part 3: Grassmann On Duals&#34;&gt;Normals and the Inverse Transpose, Part 3: Grassmann On Duals&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 series about Grassmann for computer graphics&lt;/li&gt;
&lt;li&gt;combines the concepts of bi-vectors / tri-vectors with dual vectors&lt;/li&gt;
&lt;li&gt;explaining 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-49/two_form.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;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/20180724040621/http://reedbeta.com/blog/normals-inverse-transpose-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://anteru.net/blog/2018/even-more-compute-shaders/&#34; target=&#34;_blank&#34; id=&#34;Even more compute shaders&#34;&gt;Even more 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;explains how GPUs are able to execute multiple execution streams to hide memory latency&lt;/li&gt;
&lt;li&gt;how the different workloads of CPU and GPU lead to differences in the design of caches
&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-49/more_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;http://web.archive.org/web/20180724204625/https://anteru.net/blog/2018/even-more-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://blogs.msdn.microsoft.com/pix/2018/07/24/pix-1807-19-shader-table-viewer/&#34; target=&#34;_blank&#34; id=&#34;PIX 1807.19 – Shader Table Viewer&#34;&gt;PIX 1807.19 – Shader Table Viewer&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 visualizing the content of DirectX Raytracing shader tables&lt;/li&gt;
&lt;li&gt;able to detect invalid data in the table and warn about 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-49/ShaderTableViewer.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;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/20180725110945/https://blogs.msdn.microsoft.com/pix/2018/07/24/pix-1807-19-shader-table-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://vfxmike.blogspot.com/2018/07/geometry-shader-adventures-mesh.html?m=1&#34; target=&#34;_blank&#34; id=&#34;Geometry Shader Adventures, Mesh Triangle to Particle&#34;&gt;Geometry Shader Adventures, Mesh Triangle to Particle&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 a geometry shader in Unity that converts a triangle mesh into camera facing quad particles
&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-49/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/20180730040024/https://vfxmike.blogspot.com/2018/07/geometry-shader-adventures-mesh.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;http://redqueengraphics.com/2018/07/26/metal-shaders-luminance/&#34; target=&#34;_blank&#34; id=&#34;metal shaders: luminance&#34;&gt;metal shaders: luminance&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 calculate luminance and a very brief overview of the human vision
&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-49/luminance.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20180730041031/http://redqueengraphics.com/2018/07/26/metal-shaders-luminance/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://redqueengraphics.com/2018/07/29/metal-shaders-color-adjustments/&#34; target=&#34;_blank&#34; id=&#34;metal shaders: color adjustments&#34;&gt;metal shaders: color adjustments&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 image shaders that modify brightness, contrast, exposure, gamma or saturation 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-49/macaronsBlue.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;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/20180730041157/http://redqueengraphics.com/2018/07/29/metal-shaders-color-adjustments/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=V4MMlKhJfGI&#34; target=&#34;_blank&#34; id=&#34;DF Retro H2O! Water Rendering: Wave Race 64, Quake, Duke Nukem 3D &amp;#43; Many More!&#34;&gt;DF Retro H2O! Water Rendering: Wave Race 64, Quake, Duke Nukem 3D &amp;#43; Many More!&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 water rendering starting from the early 90s to the early 2000s
&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-49/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&gt;&lt;/p&gt;

&lt;hr /&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 48 — July 22, 2018</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-48/</link>
      <pubDate>Sun, 22 Jul 2018 21:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-48/</guid>
      <description>
&lt;div class=&#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/2018/07/disney-animation-datasets.html&#34; target=&#34;_blank&#34; id=&#34;Disney Animation Data Sets&#34;&gt;Disney Animation Data 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 history behind the release of the Disney datasets of large-scale scenes&lt;/li&gt;
&lt;li&gt;comparison of the scene rendered using Disney&amp;rsquo;s renderer and PBRT 3&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-48/shotCam_hyperion.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;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/20180717211922/https://blog.yiningkarlli.com/2018/07/disney-animation-datasets.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.markussteinberger.net/publications.php&#34; target=&#34;_blank&#34; id=&#34;A High-Performance Software Graphics Pipeline Architecture for the GPU&#34;&gt;A High-Performance Software Graphics Pipeline Architecture 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;paper discussing the software implementation of the rasterization pipeline using compute shaders&lt;/li&gt;
&lt;li&gt;using a dynamic approach that adjusts to the workload dynamically&lt;/li&gt;
&lt;li&gt;comparison within environments taken from games to evaluate the pipeline overhead&lt;/li&gt;
&lt;li&gt;showcase of what kind of effects are possible with a software approach

&lt;ul&gt;
&lt;li&gt;custom primitive rendering&lt;/li&gt;
&lt;li&gt;programmable blending&lt;/li&gt;
&lt;li&gt;adaptive supersampling&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;in-depth performance comparison against hardware and other software 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-48/gpu_software_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;http://web.archive.org/web/20180722143229/https://www.markussteinberger.net/papers/cuRE.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://www.thetenthplanet.de/archives/4519&#34; target=&#34;_blank&#34; id=&#34;Followup to Atmospheric Scattering—Part 1&#34;&gt;Followup to Atmospheric Scattering—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;follow up series of 2012&amp;rsquo;s GPU Pro 3 model&lt;/li&gt;
&lt;li&gt;dynamic, real-time atmospheric model without pre-calculations&lt;/li&gt;
&lt;li&gt;explains aerial perspective and the Chapman approximation to optical depth&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-48/space_glider.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;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/20180715041141/http://www.thetenthplanet.de/archives/4519&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://github.prideout.net/blog/streamlines/&#34; target=&#34;_blank&#34; id=&#34;Visualizing 2D Vector Fields&#34;&gt;Visualizing 2D Vector Fields&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;showcase different ways to visualize a 2d flow field&lt;/li&gt;
&lt;li&gt;presentation of an algorithm that allows the creation of loopable animations from 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-48/vector_fields.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;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/20180718141954/http://github.prideout.net/blog/streamlines/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#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/tokuyoshi2018_tldr.html&#34; target=&#34;_blank&#34; id=&#34;TL;DR of the paper &amp;#39;Conservative Z-Prepass for Frustum-Traced Irregular Z-Buffers&amp;#39;&#34;&gt;TL;DR of the paper &amp;#39;Conservative Z-Prepass for Frustum-Traced Irregular Z-Buffers&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;summary of &amp;ldquo;Conservative Z-Prepass for Frustum-Traced Irregular Z-Buffers&amp;rdquo; paper&lt;/li&gt;
&lt;li&gt;explanation of irregular z-buffer and conservative shadow maps and how they are 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-48/conservative_shadow_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;http://web.archive.org/web/20180719042859/https://erkaman.github.io/posts/tokuyoshi2018_tldr.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://agraphicsguy.wordpress.com/2018/07/18/sampling-anisotropic-microfacet-brdf/&#34; target=&#34;_blank&#34; id=&#34;Sampling Anisotropic Microfacet BRDF&#34;&gt;Sampling Anisotropic Microfacet BRDF&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;mathematical derivations of importance sampling for GGX, Beckmann, and Blinn-Phong&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-48/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 class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;http://web.archive.org/web/20180720161914/https://agraphicsguy.wordpress.com/2018/07/18/sampling-anisotropic-microfacet-brdf/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#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/modern-metal-2/&#34; target=&#34;_blank&#34; id=&#34;Writing a Modern Metal App from Scratch: Part 2&#34;&gt;Writing a Modern Metal App from Scratch: 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 2 of the Metal tutorial&lt;/li&gt;
&lt;li&gt;adding support for depth buffers, some simple lighting with textures&lt;/li&gt;
&lt;li&gt;extending the application to support multiple lights, objects, and materials with some basic 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-48/metal_part.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20180723015549/http://metalbyexample.com/modern-metal-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.saschawillems.de/?p=3055&#34; target=&#34;_blank&#34; id=&#34;Vulkan input attachments and sub passes&#34;&gt;Vulkan input attachments and sub passes&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 Vulkan render passes example&lt;/li&gt;
&lt;li&gt;how to create Render passes&lt;/li&gt;
&lt;li&gt;manage shader bindings for input attachments and how to use them from within the GPU 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-48/subpasses.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20180723015854/https://www.saschawillems.de/?p=3055&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#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.gijskaerts.com/wordpress/?p=98&#34; target=&#34;_blank&#34; id=&#34;Musings on cross-platform graphics engine architectures – Part 1&#34;&gt;Musings on cross-platform graphics engine architectures – 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 a series about graphics engine architecture&lt;/li&gt;
&lt;li&gt;core design goals and pillars for the author&amp;rsquo;s graphics engine

&lt;ul&gt;
&lt;li&gt;embrace concepts introduced in modern graphics APIs&lt;/li&gt;
&lt;li&gt;make job-based multi-threaded execution a first class citizen&lt;/li&gt;
&lt;li&gt;define a clear, small API, but be open towards extension&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;&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20180722131022/http://www.gijskaerts.com/wordpress/?p=98&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.markussteinberger.net/publications.php&#34; target=&#34;_blank&#34; id=&#34;Revisiting The Vertex Cache: Understanding and Optimizing Vertex Processing on the modern GPU&#34;&gt;Revisiting The Vertex Cache: Understanding and Optimizing Vertex Processing on the modern GPU&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 vertex cache optimization algorithm that is able to improve cache usage on NVidia hardware by taking advantage of vertex batch 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-48/vertex_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;http://web.archive.org/web/20180723021331/https://www.markussteinberger.net/papers/ShadingRate.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://erkaman.github.io/posts/kerbl2018_tldr.html&#34; target=&#34;_blank&#34; id=&#34;TL;DR of the paper &amp;#39;Revisiting The Vertex Cache: Understanding and Optimizing Vertex Processing on the modern GPU&amp;#39;&#34;&gt;TL;DR of the paper &amp;#39;Revisiting The Vertex Cache: Understanding and Optimizing Vertex Processing on the modern GPU&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;summary of the &amp;ldquo;Revisiting The Vertex Cache: Understanding and Optimizing Vertex Processing on the modern GPU&amp;rdquo; paper&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;http://web.archive.org/web/20180720021135/https://erkaman.github.io/posts/kerbl2018_tldr.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/2018/07/21/shader-showcase-saturday-2/&#34; target=&#34;_blank&#34; id=&#34;Shader Showcase Saturday #2&#34;&gt;Shader Showcase Saturday #2&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;shader showcase of different waterfall 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-48/sss_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/20180723020245/https://www.alanzucconi.com/2018/07/21/shader-showcase-saturday-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://redqueengraphics.com/2018/07/15/metal-shaders-color-inversion/&#34; target=&#34;_blank&#34; id=&#34;metal shaders: color inversion&#34;&gt;metal shaders: color inversion&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 color inversion is and how to implement it 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-48/color_inversion.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://web.archive.org/web/20180723012906/http://redqueengraphics.com/2018/07/15/metal-shaders-color-inversion/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://ronja-tutorials.tumblr.com/post/176120178562/multipass-shaders-inverted-hull-outlines&#34; target=&#34;_blank&#34; id=&#34;Multipass Shaders (&amp;amp; inverted Hull outlines)&#34;&gt;Multipass Shaders (&amp;amp; inverted Hull outlines)&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 how to use multi-pass shaders in unity to implement an outline drawing effect&lt;/li&gt;
&lt;li&gt;first pass object is drawn like usual&lt;/li&gt;
&lt;li&gt;in the second pass drawn with front face culling and slightly scaled up to define the outline&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-48/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/20180723020440/https://ronja-tutorials.tumblr.com/post/176120178562/multipass-shaders-inverted-hull-outlines&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 47 — July 15, 2018</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-47/</link>
      <pubDate>Sun, 15 Jul 2018 21:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-47/</guid>
      <description>
&lt;div class=&#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.aclockworkberry.com/shader-derivative-functions/&#34; target=&#34;_blank&#34; id=&#34;An introduction to shader derivative functions&#34;&gt;An introduction to shader derivative functions&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 partial derivates in pixels shader, (ddx, ddy in HLSL or dFdx, dFdy in OpenGL)&lt;/li&gt;
&lt;li&gt;the rate of change for variables in a 2x2 pixel grid&lt;/li&gt;
&lt;li&gt;how they are calculated, how they can be used to calculate face normals from world space positions&lt;/li&gt;
&lt;li&gt;how branches interact with derivative 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-47/shader_derivative_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;http://web.archive.org/web/20180713005648/http://www.aclockworkberry.com/shader-derivative-functions/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#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/2018/more-compute-shaders/&#34; target=&#34;_blank&#34; id=&#34;More compute shaders&#34;&gt;More 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;explanation of SIMD execution details for GCN&lt;/li&gt;
&lt;li&gt;discussing latency, throughput, and scheduling&lt;/li&gt;
&lt;li&gt;introduction of instructions that allow multiple SIMD lanes to exchange information&lt;/li&gt;
&lt;li&gt;extra requirements for 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-47/pixel_crosstalk.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20180715195004/https://anteru.net/blog/2018/more-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.pyromuffin.com/2018/07/rotating-vector-using-integer-math.html?m=1&#34; target=&#34;_blank&#34; id=&#34;Rotating a vector using integer math&#34;&gt;Rotating a vector using integer math&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;a technique to rotate vectors on the GPU using only integer math&lt;/li&gt;
&lt;li&gt;aims to take advantage of packed operations and scalar integer 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-47/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/20180715143257/https://www.pyromuffin.com/2018/07/rotating-vector-using-integer-math.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://colinbarrebrisebois.com/2018/07/10/gathering-feedback-open-problems-in-real-time-raytracing/&#34; target=&#34;_blank&#34; id=&#34;Gathering Feedback: Open Problems in Real-Time Raytracing&#34;&gt;Gathering Feedback: Open Problems in 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;Colin Barré-Brisebois is looking for feedback and open problems in real time raytracing&lt;/li&gt;
&lt;li&gt;this will influence the HPG 2018 keynote&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-47/rt1.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20180715143114/https://colinbarrebrisebois.com/2018/07/10/gathering-feedback-open-problems-in-real-time-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;http://iquilezles.org/www/articles/bezierbbox/bezierbbox.htm&#34; target=&#34;_blank&#34; id=&#34;bezier bounding box&#34;&gt;bezier bounding box&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 calculate the bounding box for quadratic and cubic Bezier splines analytically&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-47/gfx01.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20180715003329/http://iquilezles.org/www/articles/bezierbbox/bezierbbox.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://medium.com/@bgolus/the-team-color-problem-b70ec69d109f&#34; target=&#34;_blank&#34; id=&#34;The Team Color Problem&#34;&gt;The Team Color Problem&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;changing the color parts of a character at runtime using a mask texture&lt;/li&gt;
&lt;li&gt;detailed visual explanation of why this works for fixed colors but causes an issue when giving the option to blend between two colors&lt;/li&gt;
&lt;li&gt;using premultiplied colors removes 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-47/team_color.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20180715143454/https://medium.com/@bgolus/the-team-color-problem-b70ec69d109f&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#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/2018/07/13/blending-an-hdr-color-into-a-u8-buffer/&#34; target=&#34;_blank&#34; id=&#34;Blending an HDR color into a U8 Buffer&#34;&gt;Blending an HDR color into a U8 Buffer&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 how blending HDR values into an SDR render target behaves regarding clipping into the [0,1] range&lt;/li&gt;
&lt;li&gt;shows how using non-premultiplied HDR values results in incorrect results and how this can be fixed by the use of premultiplied alpha 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-47/scenery.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;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/20180715041035/https://blog.demofox.org/2018/07/13/blending-an-hdr-color-into-a-u8-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;http://metalbyexample.com/modern-metal-1/&#34; target=&#34;_blank&#34; id=&#34;Writing a Modern Metal App from Scratch: Part 1&#34;&gt;Writing a Modern Metal App from Scratch: 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;tutorial how to write a Metal app for iOS&lt;/li&gt;
&lt;li&gt;end results is a spinning, constant color teapot&lt;/li&gt;
&lt;li&gt;deals with loading models, handling vertex data, shaders, constants and drawing&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-47/modern_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/20180715003920/http://metalbyexample.com/modern-metal-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/2018/07/14/shader-showcase-saturday-1/&#34; target=&#34;_blank&#34; id=&#34;Shader Showcase Saturday #1&#34;&gt;Shader Showcase Saturday #1&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;showcase of small rendering demos that showcase volumetric rendering 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-47/sss_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/20180715144801/https://www.alanzucconi.com/2018/07/14/shader-showcase-saturday-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;http://vfxmike.blogspot.com/2018/07/dark-and-stormy.html?m=1&#34; target=&#34;_blank&#34; id=&#34;Dark and Stormy&#34;&gt;Dark and Stormy&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 dark and stormy, cloudy skybox shader for unity&lt;/li&gt;
&lt;li&gt;source code and example assets 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-47/dark_and_stormy.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20180715003007/http://vfxmike.blogspot.com/2018/07/dark-and-stormy.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;http://stanford.edu/~jingweih/papers/quadriflow/&#34; target=&#34;_blank&#34; id=&#34;QuadriFlow: A Scalable and Robust Method for Quadrangulation&#34;&gt;QuadriFlow: A Scalable and Robust Method for Quadrangulation&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;a technique to generate quadrilateral meshes from triangulated meshes&lt;/li&gt;
&lt;li&gt;won the Best Paper Award at Symposium on Geometry Processing 2018&lt;/li&gt;
&lt;li&gt;source code 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-47/quadriflow.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;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/20180715144949/http://stanford.edu/~jingweih/papers/quadriflow/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#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/LukasBanana/LLGL&#34; target=&#34;_blank&#34; id=&#34;Low Level Graphics Library (LLGL)&#34;&gt;Low Level Graphics Library (LLGL)&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;a library that aims to provide a thin abstraction layer on top of OpenGL, D3D11, D3D12, Vulkan, 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-47/LLGL_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;p&gt;
&lt;div class=&#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/Erkaman/f24ef6bd7499be363e6c99d116d8734d&#34; target=&#34;_blank&#34; id=&#34;Rudimentary temporal anti-aliasing solution&#34;&gt;Rudimentary temporal anti-aliasing solution&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;GLSL implementation as a starting point for a temporal antialiasing solution&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/20180715143954/https://gist.github.com/Erkaman/f24ef6bd7499be363e6c99d116d8734d&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#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/refs.html&#34; target=&#34;_blank&#34; id=&#34;Real-Time Rendering, 4th Edition Bibliography&#34;&gt;Real-Time Rendering, 4th Edition Bibliography&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;bibliography of the Real-Time Rendering 4th edition&lt;/li&gt;
&lt;li&gt;1978 references&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;http://web.archive.org/web/20180716040524/http://www.realtimerendering.com/refs.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 46 — July 8, 2018</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-46/</link>
      <pubDate>Sun, 08 Jul 2018 21:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-46/</guid>
      <description>
&lt;div class=&#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/DiskLightSampling/&#34; target=&#34;_blank&#34; id=&#34;Progressive Sampling Strategies for Disk Light Sources&#34;&gt;Progressive Sampling Strategies for Disk 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;comparison of combinations of six different sampling strategies for disk area light sources and 9 sample sequences&lt;/li&gt;
&lt;li&gt;testing is done for wholly and partially illuminated regions&lt;/li&gt;
&lt;li&gt;the best result could be achieved with the polar4 strategy introduced in this paper with well-stratified 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-46/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/20180710015309/https://graphics.pixar.com/library/DiskLightSampling/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#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/ProgressiveMultiJitteredSampling/&#34; target=&#34;_blank&#34; id=&#34;Progressive Multi-Jittered Sample Sequences&#34;&gt;Progressive Multi-Jittered Sample Sequences&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 new strategies to generate progressive(hierarchical) 2D sample point sequences

&lt;ul&gt;
&lt;li&gt;can be stopped at any point in the sequence and samples will still be well distributed&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;comparison against existing techniques, using many different distribution functions and 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-46/multi_jittered.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;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/20180704045951/https://graphics.pixar.com/library/ProgressiveMultiJitteredSampling/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://hbfs.wordpress.com/2018/07/03/hsv-and-hsl-colorpsaces-xi/&#34; target=&#34;_blank&#34; id=&#34;HSV and HSL (colorpsaces XI)&#34;&gt;HSV and HSL (colorpsaces XI)&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;explanation and derivation of the HSV and HSL color spaces&lt;/li&gt;
&lt;li&gt;how to convert the color spaces to and from RGB 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-46/hsl.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;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/20180703162818/https://hbfs.wordpress.com/2018/07/03/hsv-and-hsl-colorpsaces-xi/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#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/2018/07/04/hybrid-raytraced-shadows-and-reflections/&#34; target=&#34;_blank&#34; id=&#34;Hybrid raytraced shadows and reflections&#34;&gt;Hybrid raytraced shadows and reflections&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 a hybrid approach that mixes rasterization for first hit and raytracing for secondary rays&lt;/li&gt;
&lt;li&gt;tracing against polygons using compute shaders directly (no raytracing API)&lt;/li&gt;
&lt;li&gt;how to create a BVH structure and traverse it&lt;/li&gt;
&lt;li&gt;details about how to raytrace for shadows and reflections&lt;/li&gt;
&lt;li&gt;look at the performance, mainly memory bound&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-46/hybrid_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 class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20180710022607/https://interplayoflight.wordpress.com/2018/07/04/hybrid-raytraced-shadows-and-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://mynameismjp.wordpress.com/2018/07/03/breaking-down-barriers-part-4-gpu-preemption/&#34; target=&#34;_blank&#34; id=&#34;Breaking down barriers – part 4: gpu preemption&#34;&gt;Breaking down barriers – part 4: gpu preemption&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 GPU preemption strategies and how these affect application responsiveness 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-46/multi_app_multi_queue1.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20180710023245/https://mynameismjp.wordpress.com/2018/07/03/breaking-down-barriers-part-4-gpu-preemption/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#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/2018/07/04/pathtraced-depth-of-field-bokeh/&#34; target=&#34;_blank&#34; id=&#34;Pathtraced Depth of Field &amp;amp; Bokeh&#34;&gt;Pathtraced Depth of Field &amp;amp; Bokeh&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 physical properties of cameras, starting with a pinhole camera model&lt;/li&gt;
&lt;li&gt;shows the effect of changing focal length, aperture radius and how to implement this into a raytracer&lt;/li&gt;
&lt;li&gt;extending the concepts into a lens based camera 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-46/ptdof10kv2.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;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/20180705002857/https://blog.demofox.org/2018/07/04/pathtraced-depth-of-field-bokeh/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#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=383&#34; target=&#34;_blank&#34; id=&#34;Rules of optimization&#34;&gt;Rules of optimization&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 performance culture, a working culture that treats performance as a core feature&lt;/li&gt;
&lt;li&gt;designed from the beginning and it&amp;rsquo;s everyone responsibility to uphold it&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/20180710023639/http://www.humus.name/index.php?ID=383&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#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/presentation-porting-engine-to-vulkan-dx12/&#34; target=&#34;_blank&#34; id=&#34;Porting your engine to Vulkan or DX12&#34;&gt;Porting your engine to Vulkan or DX12&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;video and slides from a talk that explains lessons learned from porting an AAA engine to Vulkan&lt;/li&gt;
&lt;li&gt;recommendations for memory, descriptors, command buffers and barrier management&lt;/li&gt;
&lt;li&gt;a short overview of frame graph architecture to achieve better barrier 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-46/vulkan_port.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20180710023822/https://gpuopen.com/presentation-porting-engine-to-vulkan-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://www.youtube.com/watch?v=MyTOGHqyquU&#34; target=&#34;_blank&#34; id=&#34;DD2018: Tomasz Stachowiak - Stochastic all the things: raytracing in hybrid real-time rendering&#34;&gt;DD2018: Tomasz Stachowiak - Stochastic all the things: raytracing in hybrid 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;overview of the hybrid real-time rendering pipeline developed for PICA PICA demo

&lt;ul&gt;
&lt;li&gt;layered material model&lt;/li&gt;
&lt;li&gt;transparency&lt;/li&gt;
&lt;li&gt;translucency&lt;/li&gt;
&lt;li&gt;shadows&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;an in-depth look at the reflection system and global illumination 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-46/pica_pica.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#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/2018/intro-to-compute-shaders/&#34; target=&#34;_blank&#34; id=&#34;Introduction to compute shaders&#34;&gt;Introduction to 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;how GPUs evolved from fixed function hardware to the uniform architecture used today&lt;/li&gt;
&lt;li&gt;overview of concepts required to understand the programming model&lt;/li&gt;
&lt;li&gt;how GPUs are able to hide memory latency to achieve higher throughput&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-46/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;http://web.archive.org/web/20180707173304/https://anteru.net/blog/2018/intro-to-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://rivten.github.io/2018/07/07/tldr-noise-histogram.html&#34; target=&#34;_blank&#34; id=&#34;TL;DR of the paper &amp;#39;High-Performance Procedural Noise using a Histogram-Preserving Blending Operator&amp;#39;&#34;&gt;TL;DR of the paper &amp;#39;High-Performance Procedural Noise using a Histogram-Preserving Blending Operator&amp;#39;&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;p&gt;summary of the paper &amp;ldquo;High-Performance Procedural Noise using a Histogram-Preserving Blending Operator&amp;rdquo; that was discussed in issue &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;/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-46/hist_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/20180710030128/https://rivten.github.io/2018/07/07/tldr-noise-histogram.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/2018/07/08/how-to-start-learn-graphics-programming/&#34; target=&#34;_blank&#34; id=&#34;How to start learning graphics programming?&#34;&gt;How to start 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;steps that the author recommends programmers follow that are interested in getting started in graphics programming&lt;/li&gt;
&lt;li&gt;from shadertoy (for instant visual feedback) to game engines to more low-level aspects 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-46/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;http://web.archive.org/web/20180708194812/https://interplayoflight.wordpress.com/2018/07/08/how-to-start-learn-graphics-programming/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=Xpf7Ua3UqOA&#34; target=&#34;_blank&#34; id=&#34;DD2018: Sebastian Aaltonen - GPU based clay simulation and ray tracing tech in Claybook&#34;&gt;DD2018: Sebastian Aaltonen - GPU based clay simulation and ray tracing tech in Claybook&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 SDF storage system&lt;/li&gt;
&lt;li&gt;how the world space SDF is generated from a list of brushes and how it is modified at runtime&lt;/li&gt;
&lt;li&gt;how to raytrace against the distance field efficiently&lt;/li&gt;
&lt;li&gt;soft shadows and ambient occlusion improvements&lt;/li&gt;
&lt;li&gt;SDF → mesh conversion for moving 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-46/claybook.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://pplux.github.io/why_px_render.html&#34; target=&#34;_blank&#34; id=&#34;px_render.h rationale&#34;&gt;px_render.h rationale&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 design decisions of single header low-level rendering API&lt;/li&gt;
&lt;li&gt;comparison against bgfx and sokol_gfx&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;http://web.archive.org/web/20180706101950/https://pplux.github.io/why_px_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;http://asawicki.info/news_1683_vulkan_layers_dont_work_look_at_registry.html&#34; target=&#34;_blank&#34; id=&#34;Vulkan layers don&amp;#39;t work? Look at registry&#34;&gt;Vulkan layers don&amp;#39;t work? Look at registry&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;windows registry contains entries for Explicit Layers (all layers that can be loaded by a process) and Implicit Layers (all layers that will be loaded automatically for every process)&lt;/li&gt;
&lt;li&gt;sometimes these values will become corrupted&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/20180710025611/http://asawicki.info/news_1683_vulkan_layers_dont_work_look_at_registry.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 45 — July 1, 2018</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-45/</link>
      <pubDate>Sun, 01 Jul 2018 21:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-45/</guid>
      <description>
&lt;div class=&#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/722-2/&#34; target=&#34;_blank&#34; id=&#34;High-Performance Procedural Noise using an Histogram-Preserving Blending Operator&#34;&gt;High-Performance Procedural Noise using an Histogram-Preserving Blending Operator&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;a technique that allows the generation of infinite output space from a small example texture (such a grass, snow) in a pixel shader only

&lt;ul&gt;
&lt;li&gt;for example tillable terrain textures&lt;/li&gt;
&lt;li&gt;cheap to evaluate; 0.29ms for a fullscreen quad&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;the approach is to partition the output space into a triangle grid and to pick three random patches from the input texture to blend to create the output patch&lt;/li&gt;
&lt;li&gt;this is made possible through the variance preserving blending operation, and this can also be used to improve triplanar 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-45/hpn2018_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/20180701131523/https://eheitzresearch.wordpress.com/722-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;http://www.inf.ufrgs.br/~eslgastal/SpectralRemapping/&#34; target=&#34;_blank&#34; id=&#34;Spectral Remapping for Image Downscaling&#34;&gt;Spectral Remapping for Image Downscaling&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;technique for downsampling images that preserves high-frequency information from the original image&lt;/li&gt;
&lt;li&gt;instead of discarding high-frequency information it remaps the signal into a form that can be represented in the downsampled 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-45/spectral_remapping_for_image_downscaling.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20180701131758/http://www.inf.ufrgs.br/~eslgastal/SpectralRemapping/Gastal_Oliveira_SIGGRAPH2017_Spectral_Remapping.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://www.iliyan.com/publications/ProjectedSphericalCaps&#34; target=&#34;_blank&#34; id=&#34;Stratified Sampling of Projected Spherical Caps&#34;&gt;Stratified Sampling of Projected 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;a technique to improve importance sampling for spherical light sources by projecting the visible spherical cap onto a 2D plane, and taking uniform samples within this plane&lt;/li&gt;
&lt;li&gt;yields noise-free direct illumination for constant illumination with no occluders&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-45/spherical_caps.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/http://www.iliyan.com/publications/ProjectedSphericalCaps/ProjectedSphericalCaps_EGSR2018.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://erkaman.github.io/posts/urena2018_tldr.html&#34; target=&#34;_blank&#34; id=&#34;TL;DR of the paper &amp;#39;Stratified Sampling of Projected Spherical Caps&amp;#39;&#34;&gt;TL;DR of the paper &amp;#39;Stratified Sampling of Projected Spherical Caps&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;summary of the previous paper&lt;/li&gt;
&lt;li&gt;explains the spherical cap projection and the intuition how this improves the 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-45/spherical_cap_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;http://web.archive.org/web/20180701132406/https://erkaman.github.io/posts/urena2018_tldr.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.highperformancegraphics.org/2018/program/&#34; target=&#34;_blank&#34; id=&#34;High-Performance Graphics 2018 - Program&#34;&gt;High-Performance Graphics 2018 - 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 High-Performance Graphics 2018 in Vancouver has been 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-45/hpg2018_banquet.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;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/20180701132720/http://www.highperformancegraphics.org/2018/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;http://www.cemyuksel.com/research/papers/DACS_HPG2018.pdf&#34; target=&#34;_blank&#34; id=&#34;Deferred Adaptive Compute Shading&#34;&gt;Deferred Adaptive Compute Shading&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;technique changes shading rate adaptively based on the local content of the image&lt;/li&gt;
&lt;li&gt;partitions the framebuffer into subdivision levels; uses these to estimate the variance between neighboring pixels to decide if new shading information needs to be calculated or if the shading result can be estimated from neighboring pixels&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-45/deferred_adaptive_compute_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/20180701132915/http://www.cemyuksel.com/research/papers/DACS_HPG2018.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://www.jcgt.org/published/0007/02/01/&#34; target=&#34;_blank&#34; id=&#34;Cube-to-sphere projections for procedural texturing and beyond&#34;&gt;Cube-to-sphere projections for procedural texturing 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;overview of area-preserving approaches of cube to sphere mapping&lt;/li&gt;
&lt;li&gt;summarizing ability to preserve area and GPU performance&lt;/li&gt;
&lt;li&gt;how to generalize 2D grid-based poisson-disc sampling to the sphere&lt;/li&gt;
&lt;li&gt;provides shadertoy 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-45/cube_to_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;Cube-to-sphere%20projections%20for%20procedural%20texturing%20and%20beyond&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#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/zucker2018_tldr.html&#34; target=&#34;_blank&#34; id=&#34;TL;DR of the paper &amp;#39;Cube-to-sphere projections for procedural texturing and beyond&amp;#39;&#34;&gt;TL;DR of the paper &amp;#39;Cube-to-sphere projections for procedural texturing and beyond&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;summary of &amp;ldquo;cube-to-sphere projections for procedural texturing and beyond&amp;rdquo; 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-45/cube_to_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;http://web.archive.org/web/20180701133237/https://erkaman.github.io/posts/zucker2018_tldr.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://blogs.msdn.microsoft.com/pix/2018/06/25/pix-1806-20-gpu-occupancy-for-amd-gpus/&#34; target=&#34;_blank&#34; id=&#34;PIX 1806.20 – GPU Occupancy for AMD GPUs&#34;&gt;PIX 1806.20 – GPU Occupancy for AMD GPUs&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Pix now also support GPU occupancy visualization for all shader types on 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-45/occupancy-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;http://web.archive.org/web/20180701131134/https://blogs.msdn.microsoft.com/pix/2018/06/25/pix-1806-20-gpu-occupancy-for-amd-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://cesium.com/blog/2018/06/26/implementing-materials-on-ground-primitives/&#34; target=&#34;_blank&#34; id=&#34;Materials for Polygons on Terrain and the Evils of Inverse Trigonometry&#34;&gt;Materials for Polygons on Terrain and the Evils of Inverse Trigonometry&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;polygons on terrain implemented as image-space decals&lt;/li&gt;
&lt;li&gt;how to apply them when they span a large area on the surface of the earth&lt;/li&gt;
&lt;li&gt;effects of implementation inaccuracies of inverse trigonometric functions 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-45/project_2d.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;Materials%20for%20Polygons%20on%20Terrain%20and%20the%20Evils%20of%20Inverse%20Trigonometry&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#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/understanding-gpu-context-rolls/&#34; target=&#34;_blank&#34; id=&#34;Understanding GPU context rolls&#34;&gt;Understanding GPU context rolls&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 context on AMD hardware is and how the driver manages these&lt;/li&gt;
&lt;li&gt;the Radeon GPU Profiler has a tool to analyze when context rolls are causing 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-45/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/20180701133416/https://gpuopen.com/understanding-gpu-context-rolls/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://cg.ivd.kit.edu/atf.php&#34; target=&#34;_blank&#34; id=&#34;Gradient Estimation for Real-Time Adaptive Temporal Filtering&#34;&gt;Gradient Estimation for Real-Time Adaptive Temporal Filtering&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;a technique that adjusts the temporal accumulation factor dynamically per pixel and frame&lt;/li&gt;
&lt;li&gt;done by calculating per-pixel temporal gradients. These are reconstructed from sparse information that captures the change of luminance between the last and current frame&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-45/adaptive_temporal_filtering.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;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/20180701133441/http://cg.ivd.kit.edu/atf.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://github.com/Microsoft/DirectXShaderCompiler/issues/1236&#34; target=&#34;_blank&#34; id=&#34;Compiling DirectXShaderCompiler on Linux/macOS&#34;&gt;Compiling DirectXShaderCompiler on Linux/macOS&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Microsoft DirectX Shader Compiler is now also supported on Linux and macOS&lt;/li&gt;
&lt;li&gt;there is a docker image available: &lt;a href=&#34;https://github.com/gwihlidal/docker-dxc&#34; target=&#34;_blank&#34;&gt;https://github.com/gwihlidal/docker-dxc&lt;/a&gt;&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;http://web.archive.org/web/20180629194155/https://github.com/Microsoft/DirectXShaderCompiler/issues/1236&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://mellinoe.github.io/graphics/2018/06/25/veldrid-spirv.html&#34; target=&#34;_blank&#34; id=&#34;Veldrid Support for SPIR-V Shaders&#34;&gt;Veldrid Support for SPIR-V Shaders&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;low-level C# graphics library now supports SPIR-V shader for all supported backends&lt;/li&gt;
&lt;li&gt;exposes specialization constants on the API level and emulates them at translation time for backends that don&amp;rsquo;t support them&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;http://web.archive.org/web/20180701131016/https://mellinoe.github.io/graphics/2018/06/25/veldrid-spirv.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 44 — June 24, 2018</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-44/</link>
      <pubDate>Sun, 24 Jun 2018 21:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-44/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://mynameismjp.wordpress.com/2018/06/17/breaking-down-barriers-part-3-multiple-command-processors/&#34; target=&#34;_blank&#34; id=&#34;Breaking down barriers – part 3: multiple command processors&#34;&gt;Breaking down barriers – part 3: multiple command processors&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;discusses problems with synchronization between unrelated work when using a single command queue&lt;/li&gt;
&lt;li&gt;showcases how two command queues can achieve better overall utilization at the cost of longer 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-44/bloom_dof_combined2.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20180623151655/https://mynameismjp.wordpress.com/2018/06/17/breaking-down-barriers-part-3-multiple-command-processors/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#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/1e__-DTvyFucV9nCxi3VYPeEhVP8aX4lY/view&#34; target=&#34;_blank&#34; id=&#34;Simball description&#34;&gt;Simball description&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 simball environment that has been initially designed for the Maxwell Renderer&lt;/li&gt;
&lt;li&gt;descriptions of the different object features, what they are designed to provide tests for and how it&amp;rsquo;s supposed 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-44/simball.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#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/zelda-the-bling-bling-offset/&#34; target=&#34;_blank&#34; id=&#34;Zelda – The Bling-Bling Offset&#34;&gt;Zelda – The Bling-Bling Offset&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 Zelda uses an FX in world space to make objects visible in high grass by adjusting the position of the effect based on the environment&lt;/li&gt;
&lt;li&gt;fix clipping with the object by offsetting the FX towards the 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-44/zelda_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/20180623153336/https://simonschreibt.de/gat/zelda-the-bling-bling-offset/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#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/1009526459239682048/photo/1&#34; target=&#34;_blank&#34; id=&#34;Blackscreen checklist for OpenGL and D3D&#34;&gt;Blackscreen checklist for OpenGL and D3D&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 with a checklist of common problems that can cause objects not be rendered in OpenGL / D3D&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-44/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/20180623154334/https://twitter.com/erkaman2/status/1009526459239682048/photo/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;http://research.nvidia.com/publication/2018-08_Adaptive-Temporal-Antialiasing&#34; target=&#34;_blank&#34; id=&#34;Adaptive Temporal Antialiasing&#34;&gt;Adaptive Temporal 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 technique that mixes rasterization and temporal antialiasing to only ray trace pixels where a classification algorithm determines that TAA will not produce 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-44/teaser_sm.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20180623154444/http://research.nvidia.com/publication/2018-08_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;http://casual-effects.com/research/Heitz2018Shadow/index.html&#34; target=&#34;_blank&#34; id=&#34;Combining Analytic Direct Illumination and Stochastic Shadows&#34;&gt;Combining Analytic Direct Illumination and Stochastic Shadows&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;C++ source code and prebuild demo application are 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-44/heitz2018.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;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/20180518013955/http://casual-effects.com/research/Heitz2018Shadow/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://devfault.wordpress.com/2018/06/13/texture-space-decals/&#34; target=&#34;_blank&#34; id=&#34;Texture-space Decals&#34;&gt;Texture-space 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 decals are projected from world space onto the mesh UV and rendered into separate per-object decal 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-44/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/20180623155323/https://devfault.wordpress.com/2018/06/13/texture-space-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://technik90.blogspot.com/2018/06/the-other-pathtracer-4-optimizing-aabb.html&#34; target=&#34;_blank&#34; id=&#34;The other Pathtracer 4: Optimizing AABB-Ray intersection&#34;&gt;The other Pathtracer 4: Optimizing AABB-Ray intersection&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;optimizations to raytracer using SIMD&lt;/li&gt;
&lt;li&gt;extending AABB tests to deal with various edge 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-44/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/20180624174020/https://technik90.blogspot.com/2018/06/the-other-pathtracer-4-optimizing-aabb.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://acescentral.com/t/aces-1-1-now-available/1420&#34; target=&#34;_blank&#34; id=&#34;ACES 1.1 now available&#34;&gt;ACES 1.1 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;a new set of SDR ODT (Output Device Transforms)&lt;/li&gt;
&lt;li&gt;first Output Transforms that combine the RRT (Reference Rendering Transform) and ODT (Output Device Transforms) into a single transform&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/20180623155501/http://acescentral.com/t/aces-1-1-now-available/1420&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://bitshifter.github.io/blog/2018/06/20/the-last-10-percent/&#34; target=&#34;_blank&#34; id=&#34;Optimising path tracing: the last 10%&#34;&gt;Optimising path tracing: the last 10%&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 runtime/compile time selection feature of the Rust programming language is used to select different SSE intrinsics based on the available hardware&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;http://web.archive.org/web/20180621230314/https://bitshifter.github.io/blog/2018/06/20/the-last-10-percent/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#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/e2952fd3c6570616ab618d88b5b557e2&#34; target=&#34;_blank&#34; id=&#34;roblox graphics APIs 2018&#34;&gt;roblox graphics APIs 2018&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 rendering API support for the user of Roblox&lt;/li&gt;
&lt;li&gt;Metal reaches above 60% on MacOS and D3D11 77% on Windows&lt;/li&gt;
&lt;li&gt;on Android, Vulkan is available on 20% of devices&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/20180623153845/https://gist.github.com/zeux/e2952fd3c6570616ab618d88b5b557e2&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;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-vulkan-1-1-77-sdk/&#34; target=&#34;_blank&#34; id=&#34;lunarg releases new vulkan 1.1.77 sdk&#34;&gt;lunarg releases new vulkan 1.1.77 sdk&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;new sdk contains VK_KHR_get_display_properties2 and VK_KHR_draw_indirect_count extensions&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/20180623154059/https://www.lunarg.com/lunarg-releases-new-vulkan-1-1-77-sdk/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 43 — June 17, 2018</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-43/</link>
      <pubDate>Sun, 17 Jun 2018 21:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-43/</guid>
      <description>
&lt;div class=&#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/graphics/b/blog/posts/using-compute-post-processing-in-vulkan-on-mali&#34; target=&#34;_blank&#34; id=&#34;Using Compute Post-Processing in Vulkan on Mali&#34;&gt;Using Compute Post-Processing in Vulkan on Mali&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 use two Vulkan queues to enable optimal scheduling for compute-shader based post-processing&lt;/li&gt;
&lt;li&gt;discussion how fragment → compute can introduce bubbles on the hardware&lt;/li&gt;
&lt;li&gt;uses two software queues with semaphore synchronization to overlap early work in the frame of the following frame with the post-processing work of the previous 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-43/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;http://web.archive.org/web/20180615170610/https://community.arm.com/graphics/b/blog/posts/using-compute-post-processing-in-vulkan-on-mali&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#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/2018/06/12/monte-carlo-integration-explanation-in-1d/&#34; target=&#34;_blank&#34; id=&#34;Monte Carlo Integration Explanation in 1D&#34;&gt;Monte Carlo Integration Explanation 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;explanation of to use Monte Carlo integration to calculate the area under a curve&lt;/li&gt;
&lt;li&gt;extending the system to deal with non-uniform random numbers distributions

&lt;ul&gt;
&lt;li&gt;convergence can be faster when using a distribution that is a closer match to the signal that is being sampled&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-43/sinx2integral.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;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/20180613104733/https://blog.demofox.org/2018/06/12/monte-carlo-integration-explanation-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://blogs.msdn.microsoft.com/pix/2018/06/13/pix-1806-11/&#34; target=&#34;_blank&#34; id=&#34;PIX 1806.11 – Fence signals and waits visualization, major UI streamlining, new Edit and Continue experience, and more&#34;&gt;PIX 1806.11 – Fence signals and waits visualization, major UI streamlining, new Edit and Continue 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;timing capture now visualizes fence signal and wait&lt;/li&gt;
&lt;li&gt;fences can be named&lt;/li&gt;
&lt;li&gt;shader edit and continue workflow improvements&lt;/li&gt;
&lt;li&gt;shader resource tracking for DXIL 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-43/gpusignalunblockcpuwait.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20180617014957/https://blogs.msdn.microsoft.com/pix/2018/06/13/pix-1806-11/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#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-playground.timjones.io&#34; target=&#34;_blank&#34; id=&#34;Shader Playground updates&#34;&gt;Shader Playground updates&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;shader playground added support for &lt;a href=&#34;https://github.com/shader-slang/slang&#34; target=&#34;_blank&#34;&gt;slang&lt;/a&gt;

&lt;ul&gt;
&lt;li&gt;a shader language that extends HLSL to make it more modular and extensible&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;ability to shows the control flow graph in GraphViz &amp;lsquo;dot&amp;rsquo; form for SPIRV&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&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#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/2018/06/lookup-table-based-real-time-pvrtc.html?m=1&#34; target=&#34;_blank&#34; id=&#34;Lookup table based real-time PVRTC encoding&#34;&gt;Lookup table based real-time PVRTC encoding&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;using lookup tables to precompute the endpoints better compression results&lt;/li&gt;
&lt;li&gt;different number of lookup tables allow tradeoffs in performance, quality 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-43/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/20180617014610/http://richg42.blogspot.com/2018/06/lookup-table-based-real-time-pvrtc.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://channel9.msdn.com/Events/GDC/GDC-2018&#34; target=&#34;_blank&#34; id=&#34;Microsoft - GDC 2018&#34;&gt;Microsoft - GDC 2018&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;talks from Microsoft at GDC are online

&lt;ul&gt;
&lt;li&gt;including &lt;a href=&#34;https://channel9.msdn.com/Events/GDC/GDC-2018/05&#34; target=&#34;_blank&#34;&gt;DirectX Raytracing&lt;/a&gt; and &lt;a href=&#34;https://channel9.msdn.com/Events/GDC/GDC-2018/10&#34; target=&#34;_blank&#34;&gt;Optimizing and debugging your DirectX-12 game&lt;/a&gt;&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-43/microsoft_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;http://www.ctrl-alt-test.fr/2018/texturing-in-a-64kb-intro/&#34; target=&#34;_blank&#34; id=&#34;Texturing in a 64kB intro&#34;&gt;Texturing in a 64kB intro&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 history and design of their in-house procedural texture generation 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-43/texture-breakout-500.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;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/20180615201655/http://www.ctrl-alt-test.fr/2018/texturing-in-a-64kb-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://blogs.unity3d.com/2018/06/15/book-of-the-dead-photogrammetry-assets-trees-vfx/&#34; target=&#34;_blank&#34; id=&#34;Book of the Dead: Photogrammetry Assets, Trees, VFX&#34;&gt;Book of the Dead: Photogrammetry Assets, Trees, VFX&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 the photogrammetry workflow&lt;/li&gt;
&lt;li&gt;camera used to capture, tools to generate the mesh and normals&lt;/li&gt;
&lt;li&gt;using unity Unity’s DeLighting tool to remove shadows are even present on an overcast day&lt;/li&gt;
&lt;li&gt;Tree assets are created with a mix of scans, 3ds max plugins, and quixel megascans assets&lt;/li&gt;
&lt;li&gt;a fluid solver is used to calculate the flow map for the wind, shape exploration and VFX 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-43/tree_book_of_the_dead.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20180617015504/https://blogs.unity3d.com/2018/06/15/book-of-the-dead-photogrammetry-assets-trees-vfx/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#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/2018/06/11/postfx-v2-amazing-visuals-upgraded/&#34; target=&#34;_blank&#34; id=&#34;PostFX v2 – Amazing visuals, upgraded&#34;&gt;PostFX v2 – Amazing visuals, upgraded&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 the post effects that can be found in PostFX v2&lt;/li&gt;
&lt;li&gt;code is on &lt;a href=&#34;https://github.com/Unity-Technologies/PostProcessing&#34; target=&#34;_blank&#34;&gt;github&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-43/postfx.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20180617014759/https://blogs.unity3d.com/2018/06/11/postfx-v2-amazing-visuals-upgraded/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#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/2018/06/simple-gpu-path-tracer.html&#34; target=&#34;_blank&#34; id=&#34;Simple GPU Path Tracer&#34;&gt;Simple GPU 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;explains the basic of path tracing used in his D3D12 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-43/traced_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;http://web.archive.org/web/20180615160625/http://simonstechblog.blogspot.com/2018/06/simple-gpu-path-tracer.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.gamefromscratch.com/post/2018/06/13/Cross-Platform-OpenGL-Alternatives.aspx&#34; target=&#34;_blank&#34; id=&#34;Cross-platform OpenGL alternatives&#34;&gt;Cross-platform OpenGL alternatives&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;discusses  engines, frameworks, abstraction layers that support 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-43/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 class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;http://web.archive.org/web/20180616032031/http://www.gamefromscratch.com/post/2018/06/13/Cross-Platform-OpenGL-Alternatives.aspx&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#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.qt.io/blog/2018/05/30/vulkan-for-qt-on-macos/&#34; target=&#34;_blank&#34; id=&#34;Vulkan for Qt on macOS&#34;&gt;Vulkan for Qt on macOS&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;QT adds support for vulkan on macOS through &lt;a href=&#34;https://github.com/KhronosGroup/MoltenVK&#34; target=&#34;_blank&#34;&gt;MolenVK&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-43/helloMacOSVulcanCubes.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20180617014527/http://blog.qt.io/blog/2018/05/30/vulkan-for-qt-on-macos/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 42 — June 10, 2018</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-42/</link>
      <pubDate>Sun, 10 Jun 2018 21:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-42/</guid>
      <description>
&lt;div class=&#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/t5/Publications/Real-World-Measurements-for-Call-of-Duty-Advanced-Warfare/ba-p/10730743&#34; target=&#34;_blank&#34; id=&#34;Real-World Measurements for Call of Duty: Advanced Warfare&#34;&gt;Real-World Measurements for Call of Duty: Advanced Warfare&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;this in-depth document (26 pages) covers how real-world measurement is used to achieve correct lighting in call of duty&lt;/li&gt;
&lt;li&gt;explanation of camera concepts&lt;/li&gt;
&lt;li&gt;getting relative EV differences between light and shadowed areas is more important than having absolute correct values&lt;/li&gt;
&lt;li&gt;how having consistent measurements between the real world and in-game allowed numerous issues to be discovered and fixed&lt;/li&gt;
&lt;li&gt;the exposure handling required for the sizeable dynamic range of the scene&lt;/li&gt;
&lt;li&gt;how to capture accurate HDR photographs, albedo textures, and specular gloss&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-42/Real_World_Measurements_for_Call_of_Duty_Advanced_Warfare.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20180610021643/https://www.activision.com/cdn/research/Real_World_Measurements_for_Call_of_Duty_Advanced_Warfare.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.activision.com/cdn/research/HDR_in_Call_of_Duty.pptx&#34; target=&#34;_blank&#34; id=&#34;HDR in Call of Duty&#34;&gt;HDR 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;an in-depth overview of color, color spaces, and color transformations&lt;/li&gt;
&lt;li&gt;discussion of HDR standards&lt;/li&gt;
&lt;li&gt;ACES pipeline overview&lt;/li&gt;
&lt;li&gt;implementation of HDR pipeline covering

&lt;ul&gt;
&lt;li&gt;tone curve, display mapping, UI rendering&lt;/li&gt;
&lt;li&gt;universal CLUT and color grading&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-42/HDR_in_Call_of_Duty.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20180610021741/https://www.activision.com/cdn/research/HDR_in_Call_of_Duty.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://blog.selfshadow.com/2018/06/04/multi-faceted-part-2/&#34; target=&#34;_blank&#34; id=&#34;A Multi-Faceted Exploration (Part 2)&#34;&gt;A Multi-Faceted Exploration (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;look at solution developed by Imageworks compensates for the energy loss in a single bounce BRDF model&lt;/li&gt;
&lt;li&gt;improvements to 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-42/spi_fixed_vs_heitz.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;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/20180605013709/http://blog.selfshadow.com/2018/06/04/multi-faceted-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;http://asawicki.info/news_1682_human-friendly_classification_of_vulkan_resources.html&#34; target=&#34;_blank&#34; id=&#34;Human-friendly classification of Vulkan resources&#34;&gt;Human-friendly classification of Vulkan resources&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 how to group vulkan resources by usage type&lt;/li&gt;
&lt;li&gt;designed for coloring in the &lt;a href=&#34;https://github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator&#34; target=&#34;_blank&#34;&gt;VulkanMemoryAllocator&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-42/VmaDumpVis_ColorWheel.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20180610010517/http://asawicki.info/news_1682_human-friendly_classification_of_vulkan_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;http://www.geeks3d.com/20180605/apple-announces-that-opengl-and-opencl-will-be-deprecated-in-macos-10-14-mojave/&#34; target=&#34;_blank&#34; id=&#34;Apple Announces that OpenGL and OpenCL will be Deprecated in macOS 10.14 Mojave&#34;&gt;Apple Announces that OpenGL and OpenCL will be Deprecated in macOS 10.14 Mojave&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Apple will start to deprecate OpenGL with macOS 10.14 and OpenGL ES with iOS 12&lt;/li&gt;
&lt;li&gt;developers should be using Metal instead&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/20180610021214/http://www.geeks3d.com/20180605/apple-announces-that-opengl-and-opencl-will-be-deprecated-in-macos-10-14-mojave/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#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/wwdc2018/607/&#34; target=&#34;_blank&#34; id=&#34;Metal for Game Developers&#34;&gt;Metal 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;how to generate command buffers in parallel on the CPU&lt;/li&gt;
&lt;li&gt;metal can analyze data dependencies to insert GPU parallelization automatically&lt;/li&gt;
&lt;li&gt;explicit control is supported but requires explicit opt-in&lt;/li&gt;
&lt;li&gt;how to build a GPU driven rendering pipeline using indirect command buffers and argument buffers&lt;/li&gt;
&lt;li&gt;look at image blocks, programmable blending, tile shading, persistent thread group memory, custom multi-sample color resolve&lt;/li&gt;
&lt;li&gt;lessons learned from bringing Fortnite: Battle Royale to iOS&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-42/metal_gpu_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/20180611031428/https://developer.apple.com/videos/play/wwdc2018/607/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#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/1004030860897783808&#34; target=&#34;_blank&#34; id=&#34;How To become an advanced graphics programmer&#34;&gt;How To become an advanced 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;twitter thread with advice how to learn more advanced graphics programming topics&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/20180610020840/https://twitter.com/erkaman2/status/1004030860897783808&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://ronja-tutorials.tumblr.com/post/174752077102/polygons&#34; target=&#34;_blank&#34; id=&#34;Polygons&#34;&gt;Polygons&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 clip a polygon based on a list of lines 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-42/polygon_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/20180611025942/https://ronja-tutorials.tumblr.com/post/174752077102/polygons&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&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;http://psgraphics.blogspot.com/2018/06/sticking-thin-lens-in-ray-tracer.html?m=1&#34; target=&#34;_blank&#34; id=&#34;Sticking a thin lens in a ray tracer&#34;&gt;Sticking a thin lens 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;derivation of a ray function that implements the effects of a thin lens on 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-42/sketch.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20180611031644/http://psgraphics.blogspot.com/2018/06/sticking-thin-lens-in-ray-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://gist.github.com/meshula/654cac9803a37d59a88954e61091f5da&#34; target=&#34;_blank&#34; id=&#34;3d file formats, last mile vs. interchange&#34;&gt;3d file formats, last mile vs. interchange&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 different file formats and discusses the difference between formats aimed at the interchange of information or consumption only&lt;/li&gt;
&lt;li&gt;formats covered: gltf, fbx, alembic, USD,&lt;/li&gt;
&lt;li&gt;a brief look at application and engine support&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/20180610021047/https://gist.github.com/meshula/654cac9803a37d59a88954e61091f5da&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#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=PLYO7XTAX41FPMg41svrVJA9stwcYCvdW0&#34; target=&#34;_blank&#34; id=&#34;2018 Vulkanised&#34;&gt;2018 Vulkanised&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;video presentations from the Vulkanised 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-42/2018-vulkanised-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://www.saschawillems.de/?p=3039&#34; target=&#34;_blank&#34; id=&#34;Multiview rendering in Vulkan using VK_KHR_multiview&#34;&gt;Multiview rendering in Vulkan using VK_KHR_multiview&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;a sample that shows how to use the VK_KHR_multiview Vulkan 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-42/multiview.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20180611003125/https://www.saschawillems.de/?p=3039&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 41 — June 3, 2018</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-41/</link>
      <pubDate>Wed, 06 Jun 2018 21:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-41/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://ourmachinery.com/post/the-machinery-shader-system-part-3/&#34; target=&#34;_blank&#34; id=&#34;The Machinery Shader System (part 3)&#34;&gt;The Machinery Shader System (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;shader authors can define variations of shaders with a number of systems&lt;/li&gt;
&lt;li&gt;each system can inject code/resources/constants into the shader&lt;/li&gt;
&lt;li&gt;a material allows specifications of which shaders belong together, which systems they use and allows to insert command at the correct time in the Frame&lt;/li&gt;
&lt;li&gt;all of the resulting shaders get a shared resource binder and constant buffer to reduce&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-41/machinery_materials.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20180606061658/http://ourmachinery.com/post/the-machinery-shader-system-part-3/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://chronokun.github.io/posts/2018-05-29--0.html&#34; target=&#34;_blank&#34; id=&#34;Adding texturing to a glsl path tracer&#34;&gt;Adding texturing to a glsl path tracer&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;p&gt;explanations how ray tracing shaders in OpenGL can access the necessary textures for all objects in the world using GL_ARB_bindless_texture&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-41/texture_path_tracer.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20180606061636/https://chronokun.github.io/posts/2018-05-29--0.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/2018/05/28/Pathtracer-13-GPU-threadgroup-memory-is-useful/&#34; target=&#34;_blank&#34; id=&#34;Pathtracer 13: GPU threadgroup memory is useful!&#34;&gt;Pathtracer 13: GPU threadgroup memory is useful!&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;moving the scene information into group shared memory to speed up the ray tracing code a lot&lt;/li&gt;
&lt;li&gt;problems on metal, slower unless passing data by value instead of by const reference&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/20180606061618/https://aras-p.info/blog/2018/05/28/Pathtracer-13-GPU-threadgroup-memory-is-useful/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#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/2018/05/30/Pathtracer-14-iOS/&#34; target=&#34;_blank&#34; id=&#34;Pathtracer 14: iOS&#34;&gt;Pathtracer 14: iOS&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 iOS implementation with an overview of performance tools for 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-41/ios-phone.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20180606061556/https://aras-p.info/blog/2018/05/30/Pathtracer-14-iOS/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#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/blog/2018/05/24/logarithmic-depth/&#34; target=&#34;_blank&#34; id=&#34;Hybrid Multi-Frustum Logarithmic Depth Buffer&#34;&gt;Hybrid Multi-Frustum Logarithmic 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;now using Logarithmic depth buffer when available&lt;/li&gt;
&lt;li&gt;writes custom depth in a pixel shader, this does disable early depth optimizations but still a performance win for their 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-41/frustum_geometry.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;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/20180525141602/https://cesium.com/blog/2018/05/24/logarithmic-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://drive.google.com/drive/folders/1gmn5XSYDUsOPXXKQO73zCpGAHWAfnK1U&#34; target=&#34;_blank&#34; id=&#34;Witcher tricks - a bit about rendering the witcher 3&#34;&gt;Witcher tricks - a bit about rendering the witcher 3&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 implementation of Witcher 3 rendering from an outside perspective using RenderDoc&lt;/li&gt;
&lt;li&gt;breakdown of rendering Frame structure&lt;/li&gt;
&lt;li&gt;how normals are stored in the g-buffer&lt;/li&gt;
&lt;li&gt;explanation of a number of techniques from the d3d disassembly

&lt;ul&gt;
&lt;li&gt;sun rendering&lt;/li&gt;
&lt;li&gt;blinking stars&lt;/li&gt;
&lt;li&gt;eye adaptation&lt;/li&gt;
&lt;li&gt;tonemapping&lt;/li&gt;
&lt;li&gt;vignette&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-41/witcher3.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#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/2018/05/basis-universal-gpu-texture-format.html?m=1&#34; target=&#34;_blank&#34; id=&#34;Basis universal GPU texture format examples&#34;&gt;Basis universal GPU texture format examples&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 tradeoffs for the basis file format&lt;/li&gt;
&lt;li&gt;comparison of different images formats transcoded from the same source 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-41/xenia.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20180606061517/http://richg42.blogspot.com/2018/05/basis-universal-gpu-texture-format.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;http://drz.disneyresearch.com/~jnovak/publications/KPAL/index.html&#34; target=&#34;_blank&#34; id=&#34;Denoising with Kernel Prediction and Asymmetric Loss Functions&#34;&gt;Denoising with Kernel Prediction and Asymmetric 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;extending previous work in CNN(Convolutional neural network)  based denoising&lt;/li&gt;
&lt;li&gt;using a modular architecture that improves temporal stability and detail preservation&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-41/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/20180607010541/http://drz.disneyresearch.com/~jnovak/publications/KPAL/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://bitshifter.github.io/blog/2018/06/04/simd-path-tracing/&#34; target=&#34;_blank&#34; id=&#34;Optimising path tracing with SIMD&#34;&gt;Optimising path tracing with SIMD&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 optimize a Rust path tracer using SSE4.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-41/simd_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/20180606061221/https://bitshifter.github.io/blog/2018/06/04/simd-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;http://www.yosoygames.com.ar/wp/2018/06/on-games-power-consumption-and-phones/&#34; target=&#34;_blank&#34; id=&#34;On Games’ Power Consumption and phones&#34;&gt;On Games’ Power Consumption and phones&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the longer the CPU/GPU can idle, the less power is needed&lt;/li&gt;
&lt;li&gt;optimizing a CPU bound game might cause more frames to be rendered (hitting 60 fps instead of 30). causing less GPU idle time and increasing power consumption&lt;/li&gt;
&lt;li&gt;kernel heuristics might trigger higher frequency mode which increases battery usage significantly&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;http://web.archive.org/web/20180604045156/http://www.yosoygames.com.ar/wp/2018/06/on-games-power-consumption-and-phones/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#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/flow/texture-distortion/&#34; target=&#34;_blank&#34; id=&#34;Texture Distortion Faking Liquid&#34;&gt;Texture Distortion Faking Liquid&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Tutorial about the implementation of water surface movement of using a flow map in unity&lt;/li&gt;
&lt;li&gt;how to deal with deformation of normals using derivative 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-41/water_flowmap.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20180606061332/https://catlikecoding.com/unity/tutorials/flow/texture-distortion/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#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/a-trio-of-new-nsight-tools-that-empowers-developers-to-fully-optimize-their-cpu-and-gpu-performance&#34; target=&#34;_blank&#34; id=&#34;A Trio of New Nsight Tools That Empower Developers to Fully Optimize their CPU and GPU Performance&#34;&gt;A Trio of New Nsight Tools That Empower Developers to Fully Optimize their CPU and GPU Performance&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;NVIDIA Nsight Systems visualizes system-wide application interactions across CPU and GPU&lt;/li&gt;
&lt;li&gt;Nsight

&lt;ul&gt;
&lt;li&gt;Volta, Vulkan 1.1 and Cuda 9.2, are supported&lt;/li&gt;
&lt;li&gt;user configurable memory view&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-41/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/20180606061352/https://news.developer.nvidia.com/a-trio-of-new-nsight-tools-that-empowers-developers-to-fully-optimize-their-cpu-and-gpu-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://devblogs.nvidia.com/nsight-systems-exposes-gpu-optimization/&#34; target=&#34;_blank&#34; id=&#34;Nsight Systems Exposes New GPU Optimization Opportunities&#34;&gt;Nsight Systems Exposes New GPU Optimization Opportunities&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;p&gt;-how to investigate GPU starvation and detect CPU/GPU synchronizations and overview of other tools&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-41/nsight_systems.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;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/20180602175016/https://devblogs.nvidia.com/nsight-systems-exposes-gpu-optimization/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 40 — May 27, 2018</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-40/</link>
      <pubDate>Sun, 27 May 2018 21:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-40/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://loopit.dk/inside_shipping_on_ios.pdf&#34; target=&#34;_blank&#34; id=&#34;INSIDE shipping on iOS&#34;&gt;INSIDE shipping on iOS&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;many optimization lessons learned for mobile&lt;/li&gt;
&lt;li&gt;how to deal with shader preloading&lt;/li&gt;
&lt;li&gt;discussion of error detection in automated image comparison tests&lt;/li&gt;
&lt;li&gt;increased game brightness to reduce the use of display backlights to save battery and reduce heat&lt;/li&gt;
&lt;li&gt;using raytracing to remove aliasing in special cases&lt;/li&gt;
&lt;li&gt;improvements to blue noise 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-40/inside.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/http://loopit.dk/inside_shipping_on_ios.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://interplayoflight.wordpress.com/2018/05/25/gpu-driven-rendering-experiments-at-the-digital-dragons-conference/amp/&#34; target=&#34;_blank&#34; id=&#34;GPU Driven rendering experiments at the Digital Dragons conference&#34;&gt;GPU Driven rendering experiments at the Digital Dragons conference&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;discussions of problems with old occlusion culling systems&lt;/li&gt;
&lt;li&gt;renders occluders in a pre-pass, uses the depth information to cull instances&lt;/li&gt;
&lt;li&gt;how to implement culling against the depth  buffer, remove culled instance from the stream&lt;/li&gt;
&lt;li&gt;stream compaction implementation&lt;/li&gt;
&lt;li&gt;extend the system to handle LOD, materials and manual vertex fetching&lt;/li&gt;
&lt;li&gt;performance results on Nvidia  and 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-40/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/20180528032653/https://interplayoflight.wordpress.com/2018/05/25/gpu-driven-rendering-experiments-at-the-digital-dragons-conference/amp/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://colourmath.com/2018/development/signed-distance-fields-in-unity/&#34; target=&#34;_blank&#34; id=&#34;SIGNED DISTANCE FIELDS IN UNITY&#34;&gt;SIGNED DISTANCE FIELDS 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;overview of how to generate a SDF in unity&lt;/li&gt;
&lt;li&gt;per object SDF at build time&lt;/li&gt;
&lt;li&gt;global SDF aggregation 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-40/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/20180528030805/http://colourmath.com/2018/development/signed-distance-fields-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.eventbrite.ca/e/shaders-for-artists-part-2-registration-45921632840&#34; target=&#34;_blank&#34; id=&#34;Workshop: Shaders for Artists - Part 2&#34;&gt;Workshop: Shaders for Artists - 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;introduction to shaders workshop in Montreal&lt;/li&gt;
&lt;li&gt;focused on the node-based shader pipeline of 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-40/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&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#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.ca/2018/05/never-map-again-persistent-memory.html&#34; target=&#34;_blank&#34; id=&#34;Never Map Again: Persistent Memory, System Memory, and Nothing In Between&#34;&gt;Never Map Again: Persistent Memory, System Memory, and Nothing In Between&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 characteristics of different ways to pass CPU generated data to the GPU using OpenGL

&lt;ul&gt;
&lt;li&gt;persistent memory (GL_ARB_buffer_storage)&lt;/li&gt;
&lt;li&gt;client arrays&lt;/li&gt;
&lt;li&gt;vertex buffer object (VBO)&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;&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20180528031129/http://hacksoflife.blogspot.ca/2018/05/never-map-again-persistent-memory.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://turanszkij.wordpress.com/2018/05/21/scalabe-gpu-fluid-simulation/&#34; target=&#34;_blank&#34; id=&#34;Scalable GPU Fluid Simulation&#34;&gt;Scalable GPU Fluid Simulation&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 SPH (Smooth Particle Hydrodynamics)&lt;/li&gt;
&lt;li&gt;how it&amp;rsquo;s implemented in a compute shader&lt;/li&gt;
&lt;li&gt;explanation of a sorted grid acceleration 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-40/fluid.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20180528031412/https://turanszkij.wordpress.com/2018/05/21/scalabe-gpu-fluid-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://khyperia.com/blog/fractal-raytracer-2.html&#34; target=&#34;_blank&#34; id=&#34;Fractal Raytracing: The Mathy Parts&#34;&gt;Fractal Raytracing: The Mathy Parts&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;how the fractal raytracer was implemented on the GPU&lt;/li&gt;
&lt;li&gt;evaluating the fractal, ray marching and photon 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-40/rail.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20180528031512/https://khyperia.com/blog/fractal-raytracer-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.gamasutra.com/blogs/PhiDinh/20180523/318444/Game_Design_Deep_Dive_Rendering_the_player_as_a_form_of_pure_energy_in_Recompile.php&#34; target=&#34;_blank&#34; id=&#34;Art Design Deep Dive: Rendering the player as a form of pure energy in Recompile&#34;&gt;Art Design Deep Dive: Rendering the player as a form of pure energy in Recompile&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 a unique art style rendering technique&lt;/li&gt;
&lt;li&gt;the character is represented from axis aligned voxels&lt;/li&gt;
&lt;li&gt;voxels are created/destroyed on a quantized world space grid as the character moves through 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-40/character.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;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/20180523141014/http://www.gamasutra.com/blogs/PhiDinh/20180523/318444/Game_Design_Deep_Dive_Rendering_the_player_as_a_form_of_pure_energy_in_Recompile.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://blog.three-eyed-games.com/2018/05/12/gpu-path-tracing-in-unity-part-2/&#34; target=&#34;_blank&#34; id=&#34;GPU Path Tracing in Unity – Part 2&#34;&gt;GPU Path Tracing in Unity – 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;adds supports for a basic material system with lambert diffuse + phong specular&lt;/li&gt;
&lt;li&gt;explanation 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-40/emissive.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20180528032014/http://blog.three-eyed-games.com/2018/05/12/gpu-path-tracing-in-unity-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://twitter.com/erkaman2/status/999722857516105730&#34; target=&#34;_blank&#34; id=&#34;Advice for beginners, who are just getting started in  Computer Graphics&#34;&gt;Advice for beginners, who are just 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;list of resource for beginners into 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-40/tweet.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20180528032244/https://twitter.com/erkaman2/status/999722857516105730&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;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/seed-dd18-presentation-slides-raytracing&#34; target=&#34;_blank&#34; id=&#34;Stochastic all the things: Raytracing in hybrid real-time rendering&#34;&gt;Stochastic all the things: Raytracing in hybrid 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;implementation details for reflections, translucency, transparency, shadows&lt;/li&gt;
&lt;li&gt;global illumination uses surfels with world space 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-40/pica.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/https://media.contentapi.ea.com/content/dam/ea/seed/presentations/dd18-seed-raytracing-in-hybrid-real-time-rendering.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/19042499&#34; target=&#34;_blank&#34; id=&#34;How I got started with shaders (Non-Scary Shader Intro)&#34;&gt;How I got started with shaders (Non-Scary Shader Intro)&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;explanations of how to get started with shader programming with unity&lt;/li&gt;
&lt;li&gt;takes the unity toon shader as the starting point to explain concepts and provide a gentle introduction into making modifications to 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-40/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/20180528033654/https://www.patreon.com/posts/19042499&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#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&#34; target=&#34;_blank&#34; id=&#34;The Forge: Release 1.10&#34;&gt;The Forge: Release 1.10&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;adds support for GPU tracking system that allows to enable/disable features based on the GPU 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-40/TheForge.jpg&#34; style=&#34;margin:0px&#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/radeon-gpu-profiler-1-2/&#34; target=&#34;_blank&#34; id=&#34;Radeon GPU Profiler 1.2&#34;&gt;Radeon GPU Profiler 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;now includes present events in the system activity view&lt;/li&gt;
&lt;li&gt;explanations for why the driver had to insert barriers&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-40/gpu_profile.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20180528032518/https://gpuopen.com/radeon-gpu-profiler-1-2/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;hr /&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 39 — May 20, 2018</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-39/</link>
      <pubDate>Sun, 20 May 2018 21:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-39/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://duruofei.com/Research/KernelFoveatedRendering&#34; target=&#34;_blank&#34; id=&#34;Kernel Foveated Rendering&#34;&gt;Kernel Foveated Rendering&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;implements foveated rendering through usage of log-polar transformation&lt;/li&gt;
&lt;li&gt;gbuffer is written as normal, attributes transformed into sub-resolution textures using a log-polar transformation&lt;/li&gt;
&lt;li&gt;shading is done in log-polar space before the results are transformed back into Cartesian space
&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-39/foveated_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;http://web.archive.org/web/20180521121626/http://duruofei.com/Public/papers/Meng_KernelFoveatedRendering_PACM_2018.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/2018/05/14/checkerboard-rendering-rotated-anti-aliasing-and-grid-frequencies/&#34; target=&#34;_blank&#34; id=&#34;Checkerboard rendering, rotated anti-aliasing and grid frequencies&#34;&gt;Checkerboard rendering, rotated anti-aliasing and grid frequencies&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 sampling theory and how different sampling patterns influence the aliasing that can be observed&lt;/li&gt;
&lt;li&gt;explanation of why the default D3D11 MSAA has been chosen
&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-39/sample_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/20180521003721/https://bartwronski.com/2018/05/14/checkerboard-rendering-rotated-anti-aliasing-and-grid-frequencies/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#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-spherical-mask-dissolve/&#34; target=&#34;_blank&#34; id=&#34;My take on shaders: Spherical mask dissolve&#34;&gt;My take on shaders: Spherical mask dissolve&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;description of a shader effect that dissolves triangles outside of a spherical effect range
&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-39/spherical_mask_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/20180521003510/http://halisavakis.com/my-take-on-shaders-spherical-mask-dissolve/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://allenchou.net/2018/05/game-math-swing-twist-interpolation-sterp/&#34; target=&#34;_blank&#34; id=&#34;Game Math: Swing-Twist Interpolation (…Sterp?)&#34;&gt;Game Math: Swing-Twist Interpolation (…Sterp?)&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;slerp between two orientations takes the shortest path on a 4D hypersphere&lt;/li&gt;
&lt;li&gt;author wants the shortest arc in 3D instead&lt;/li&gt;
&lt;li&gt;decomposes rotation into swing and twist operations&lt;/li&gt;
&lt;li&gt;these are interpolated independently and concatenated to form the final rotation
&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-39/sterp.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20180521003935/http://allenchou.net/2018/05/game-math-swing-twist-interpolation-sterp/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#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.selfshadow.com/2018/05/13/multi-faceted-part-1/&#34; target=&#34;_blank&#34; id=&#34;A Multi-Faceted Exploration (Part 1)&#34;&gt;A Multi-Faceted Exploration (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 series that will look at lack of multi scattering in common analytical BSDFs and solution&lt;/li&gt;
&lt;li&gt;only modelling single scattering causes significant energy loss on rough surfaces&lt;/li&gt;
&lt;li&gt;post shows visual example that up to 60% of energy can be lost
&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-39/heitz_ss_wf.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20180521004136/http://blog.selfshadow.com/2018/05/13/multi-faceted-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;http://patapom.com/blog/BRDF/MSBRDF/&#34; target=&#34;_blank&#34; id=&#34;Multiple-Scattering BRDF&#34;&gt;Multiple-Scattering BRDF&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;derivation of the multi-scattering GGX BRDF&lt;/li&gt;
&lt;li&gt;provides source code and precomputed 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-39/MSBRDFOrenNayarFullRho.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20180521004252/http://patapom.com/blog/BRDF/MSBRDF/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;


&lt;div class=&#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/2018/05/14/stripping-scriptable-shader-variants/&#34; target=&#34;_blank&#34; id=&#34;Stripping scriptable shader variants&#34;&gt;Stripping scriptable shader variants&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 shader variations are&lt;/li&gt;
&lt;li&gt;how to compute the amount of variations created for a shader&lt;/li&gt;
&lt;li&gt;how unity decides what variations to include&lt;/li&gt;
&lt;li&gt;Unity 2018.2 beta adds the possibility to control shader variation compilation from a C# script
&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-39/unity_variation_stripping.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20180521004502/https://blogs.unity3d.com/2018/05/14/stripping-scriptable-shader-variants/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#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/compressonator-v3-0-release-brings-powerful-new-3d-model-features/&#34; target=&#34;_blank&#34; id=&#34;Compressonator V3.0 Release Brings Powerful New 3D Model Features&#34;&gt;Compressonator V3.0 Release Brings Powerful New 3D Model Features&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;new image diff option allows visualization of pixel difference between compressed / uncompressed textures&lt;/li&gt;
&lt;li&gt;adds model optimizations (vertex cache, overdraw, vertex prefetch optimizations)&lt;/li&gt;
&lt;li&gt;draco compression support
&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-39/mesh_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/20180521004627/https://gpuopen.com/compressonator-v3-0-release-brings-powerful-new-3d-model-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://blog.magnum.graphics/hacking/simple-efficient-vulkan-loading-with-flextgl/&#34; target=&#34;_blank&#34; id=&#34;Simple and efficient Vulkan loading with flextGL&#34;&gt;Simple and efficient Vulkan loading with flextGL&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;tool that allows to only include vulkan functionality that you need&lt;/li&gt;
&lt;li&gt;comparison of header sizes and influence on compile time, startup time
&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-39/compile_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/20180521004848/http://blog.magnum.graphics/hacking/simple-efficient-vulkan-loading-with-flextgl/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://reedbeta.com/blog/normals-inverse-transpose-part-2/&#34; target=&#34;_blank&#34; id=&#34;Normals and the Inverse Transpose, Part 2: Dual Spaces&#34;&gt;Normals and the Inverse Transpose, Part 2: Dual Spaces&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 vectors as functions and dual space&lt;/li&gt;
&lt;li&gt;how to transform dual 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-39/linear-form-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/20180521005056/http://reedbeta.com/blog/normals-inverse-transpose-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://mellinoe.github.io/graphics/2018/05/19/writing-a-portable-cpu-gpu-ray-tracer-in-c.html&#34; target=&#34;_blank&#34; id=&#34;Writing a Portable CPU/GPU Ray Tracer in C#&#34;&gt;Writing a Portable CPU/GPU Ray Tracer 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;uses ShaderGen to write shaders in C# and compile them into the target shader language for D3D11, Metal, 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-39/ToyPathTracerOutput.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;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/20180520124601/https://mellinoe.github.io/graphics/2018/05/19/writing-a-portable-cpu-gpu-ray-tracer-in-c.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://timjones.io/blog/archive/2018/05/19/introducing-shader-playground&#34; target=&#34;_blank&#34; id=&#34;Introducing Shader Playground&#34;&gt;Introducing Shader Playground&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;website that allows compilation of shaders with a multitude of shader compilers and inspect the available outputs&lt;/li&gt;
&lt;li&gt;possibility to chain compilers together
&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-39/shader-playground-compiler-chaining.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20180521005425/http://timjones.io/blog/archive/2018/05/19/introducing-shader-playground&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;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/2018/05/Vulkan-Debug-Utils_05_18_v1.pdf&#34; target=&#34;_blank&#34; id=&#34;Vulkan Debug Utilities&#34;&gt;Vulkan Debug Utilities&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;tutorial how to use the VK_EXT_debug_utils extensions&lt;/li&gt;
&lt;li&gt;combines old debug extensions into a unified one and adds more possibilities&lt;/li&gt;
&lt;li&gt;allows more details to be reported from the validation layer and tools that support the extension
&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-39/vulkan_debug_utils.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/https://www.lunarg.com/wp-content/uploads/2018/05/Vulkan-Debug-Utils_05_18_v1.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://terathon.com/i3d2018_lengyel.pdf&#34; target=&#34;_blank&#34; id=&#34;GPU-Centered Font Rendering Directly from Glyph Outlines&#34;&gt;GPU-Centered Font Rendering Directly from Glyph Outlines&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;technical details about the font rendering algorithm used in &lt;a href=&#34;http://sluglibrary.com/&#34; target=&#34;_blank&#34;&gt;slug&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-39/slug_icons.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;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/20180521005849/http://terathon.com/i3d2018_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;http://allenchou.net/2018/05/game-math-deriving-the-slerp-formula/&#34; target=&#34;_blank&#34; id=&#34;Game Math: Deriving the Slerp Formula&#34;&gt;Game Math: Deriving the Slerp Formula&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;presents one method to derive the slerp formula for quaternions
&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-39/slerp_derivation.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;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/20180518211618/http://allenchou.net/2018/05/game-math-deriving-the-slerp-formula/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://aras-p.info/texts/files/2018-i3D-ProgrammabilityOfGraphicsPipelines.pdf&#34; target=&#34;_blank&#34; id=&#34;Programmability of Graphics Pipelines&#34;&gt;Programmability of 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;discusses issues with composability, how complexity poses a problem of sharing research results&lt;/li&gt;
&lt;li&gt;list of frameworks for research&lt;/li&gt;
&lt;li&gt;how the scriptable render pipeline of unity allows more flexibility and still hides most of the complexity
&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-39/unity_splits.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;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/20180517212620/http://aras-p.info/texts/files/2018-i3D-ProgrammabilityOfGraphicsPipelines.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://trevorius.com/scrapbook/unity/texture-arrays-in-unity/&#34; target=&#34;_blank&#34; id=&#34;Texture Arrays in Unity&#34;&gt;Texture Arrays 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;discusses problems with using a texture atlas&lt;/li&gt;
&lt;li&gt;set of scripts to help with the creation, management and usage of texture arrays in 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-39/batches.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20180521010507/http://trevorius.com/scrapbook/unity/texture-arrays-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://www.cemyuksel.com/research/alphadistribution/&#34; target=&#34;_blank&#34; id=&#34;Alpha Distribution&#34;&gt;Alpha Distribution&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;technique that helps to reduce problems of disappearing geometry for alpha tested geometry&lt;/li&gt;
&lt;li&gt;no runtime changes required, only changes the way mips are generated
&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-39/alphadist_comp1a2c_small.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;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/20180521010602/http://www.cemyuksel.com/research/alphadistribution/alpha_distribution.pdf&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 38 — May 13, 2018</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-38/</link>
      <pubDate>Sun, 13 May 2018 21:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-38/</guid>
      <description>
&lt;div class=&#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/optimizing-vulkan-for-amd-and-the-tale-of-two-vulkan-drivers/&#34; target=&#34;_blank&#34; id=&#34;Optimizing Vulkan for AMD and the tale of two Vulkan drivers&#34;&gt;Optimizing Vulkan for AMD and the tale of two Vulkan drivers&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;experience of using vulkan with AMD drivers (stock and open source)&lt;/li&gt;
&lt;li&gt;comparison of register usage with different shader compilers
&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-38/anki.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20180514025056/http://anki3d.org/optimizing-vulkan-for-amd-and-the-tale-of-two-vulkan-drivers/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;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-is-back-game-developers-vulkan&#34; target=&#34;_blank&#34; id=&#34;Vulkanised is back!&#34;&gt;Vulkanised is back!&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Khronos event focused on experiences of game developers that ship Vulkan versions on May22 in Cambridge&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-38/2018-vulkanised-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/20180514025311/https://www.khronos.org/events/vulkanised-is-back-game-developers-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://nfrechette.github.io/2018/05/08/anim_compression_additive_bind/&#34; target=&#34;_blank&#34; id=&#34;How much does additive bind pose help?&#34;&gt;How much does additive bind pose help?&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;compressing animation key frames relative to the bind pose and presenting results&lt;/li&gt;
&lt;li&gt;results are data dependent, on Paragon dataset saves 7.9% but increases compression 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-38/acl_paragon_bind_additive_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 class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20180514025515/http://nfrechette.github.io/2018/05/08/anim_compression_additive_bind/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#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/2018/05/05/brdf-realtime-layered.html&#34; target=&#34;_blank&#34; id=&#34;Efficient Rendering of Layered Materials using an Atomic Decomposition with Statistical Operators&#34;&gt;Efficient Rendering of Layered Materials using an Atomic Decomposition with Statistical Operators&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;new model for layered materials&lt;/li&gt;
&lt;li&gt;statistical analysis that uses an atomic decomposition of light transport to predict scattering in the layered structure&lt;/li&gt;
&lt;li&gt;per layer statistics are combined into a scattering function as mixture of microfacet models
&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-38/multi_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 class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20180514025644/https://belcour.github.io/blog/research/2018/05/05/brdf-realtime-layered.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://doc-ok.org/?p=1694&#34; target=&#34;_blank&#34; id=&#34;The Display Resolution of Head-mounted Displays, Revisited&#34;&gt;The Display Resolution of Head-mounted Displays, Revisited&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 look at the distribution of display resolution across the VR display&lt;/li&gt;
&lt;li&gt;how this influences the mapping of renderer output results to the final display&lt;/li&gt;
&lt;li&gt;physical display resolution is the same on both headsets (1080×1200 per eye)

&lt;ul&gt;
&lt;li&gt;Oculus favors  resolution over FoV&lt;/li&gt;
&lt;li&gt;Vive has a higher FoV but reduced resolution&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-38/DistortionMesh.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20180514025734/http://doc-ok.org/?p=1694&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://vic.crs4.it/eg2018-tutorial-voxels/&#34; target=&#34;_blank&#34; id=&#34;Voxel DAGs and Multiresolution Hierarchies from large-scale scenes to pre-computed shadows&#34;&gt;Voxel DAGs and Multiresolution Hierarchies from large-scale scenes to pre-computed shadows&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;tutorial course covering representation, usage and applications of voxel DAG and multiresolution hierarchies&lt;/li&gt;
&lt;li&gt;voxel DAG take advantage of duplicated data found in voxel data sets&lt;/li&gt;
&lt;li&gt;how to

&lt;ul&gt;
&lt;li&gt;compress color information&lt;/li&gt;
&lt;li&gt;construct a DAG using CUDA&lt;/li&gt;
&lt;li&gt;raytrace the structure&lt;/li&gt;
&lt;li&gt;use it for shadows in static environments&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-38/sparse_voxel_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/20180514025826/http://vic.crs4.it/eg2018-tutorial-voxels/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#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/font_rendering_sota_lengyel.pdf&#34; target=&#34;_blank&#34; id=&#34;GPU Font Rendering - Current State of the Art&#34;&gt;GPU Font Rendering - Current State of the Art&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;unicode overview&lt;/li&gt;
&lt;li&gt;overview of different font rendering techniques&lt;/li&gt;
&lt;li&gt;look at how Slug renders individual glyphs and what is required to present good results for lines of text
&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-38/slug.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;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/20180511205327/http://terathon.com/font_rendering_sota_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://antiagainst.github.io/post/hlsl-for-vulkan-semantic-strings-and-location-numbers/&#34; target=&#34;_blank&#34; id=&#34;HLSL for Vulkan: Semantic Strings and Location Numbers&#34;&gt;HLSL for Vulkan: Semantic Strings and Location Numbers&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 rules that apply to shader input structures and interstage linking&lt;/li&gt;
&lt;li&gt;differences between HLSL and SPIR-V semantics&lt;/li&gt;
&lt;li&gt;shows how HLSL semantics are expressed in SPIR-V&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/20180514030008/https://antiagainst.github.io/post/hlsl-for-vulkan-semantic-strings-and-location-numbers/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://graphicrants.blogspot.ca/2018/05/spherical-gaussian-series.html?m=1&#34; target=&#34;_blank&#34; id=&#34;Spherical Gaussian series&#34;&gt;Spherical Gaussian series&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;blog series about the mathematics of spherical gaussians

&lt;ul&gt;
&lt;li&gt;a gaussian function that is defined on the surface of a sphere&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;and how to use the techniques for normal map filtering
&lt;br /&gt;&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/20180514030059/http://graphicrants.blogspot.ca/2018/05/spherical-gaussian-series.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.youtube.com/playlist?list=PLYO7XTAX41FPr0FwSPttQyycCX03rbn3d&#34; target=&#34;_blank&#34; id=&#34;2018 Montreal Vulkan Dev Day&#34;&gt;2018 Montreal Vulkan Dev Day&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 the Montreal Vulkan dev days have been uploaded
&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-38/2018-vulkan-developer-day-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;hr /&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 37 — May 6, 2018</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-37/</link>
      <pubDate>Sun, 06 May 2018 21:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-37/</guid>
      <description>
&lt;div class=&#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/stylized-vfx-in-rime-water-edition/&#34; target=&#34;_blank&#34; id=&#34;Stylized VFX in RIME – Water Edition&#34;&gt;Stylized VFX in RIME – Water Edition&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;how the stylized vfx in Rime was implemented&lt;/li&gt;
&lt;li&gt;short overview of fire and smoke effect&lt;/li&gt;
&lt;li&gt;in-depth overview of the water rendering 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-37/thumbnail_youtube_01_forward.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20180506213419/https://simonschreibt.de/gat/stylized-vfx-in-rime-water-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://github.com/KhronosGroup/SPIRV-Cross/wiki/Reflection-API-user-guide&#34; target=&#34;_blank&#34; id=&#34;SPIRV-Cross - Reflection API user guide&#34;&gt;SPIRV-Cross - Reflection API user guide&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;explanation how to query reflection information from SPIR-V shader&lt;/li&gt;
&lt;li&gt;brief overview of the the SPIR-V type system&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/20180506213031/https://github.com/KhronosGroup/SPIRV-Cross/wiki/Reflection-API-user-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/byumjin/Jin-Engine-2.1&#34; target=&#34;_blank&#34; id=&#34;The implementation of Pixel-projected Screen Space Reflections&#34;&gt;The implementation of Pixel-projected 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;explanation of the implementation of &lt;a href=&#34;http://advances.realtimerendering.com/s2017/PixelProjectedReflectionsAC_v_1.92.pdf&#34; target=&#34;_blank&#34;&gt;Pixel Projected Reflections&lt;/a&gt; using vulkan&lt;/li&gt;
&lt;li&gt;supports approximation of normal maps and roughness&lt;/li&gt;
&lt;li&gt;comparison against brute force ray tracing implementation (image 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-37/ppssr.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20180506213629/https://github.com/byumjin/Jin-Engine-2.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;http://blog.three-eyed-games.com/2018/05/03/gpu-ray-tracing-in-unity-part-1/&#34; target=&#34;_blank&#34; id=&#34;GPU Ray Tracing in Unity – Part 1&#34;&gt;GPU Ray Tracing in Unity – 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;how to implement a ray tracer using a compute shader in unity&lt;/li&gt;
&lt;li&gt;features supported: sky box, ground plane, spheres, reflections, directional light with hard shadows and a basic material system&lt;/li&gt;
&lt;li&gt;simple temporal anti-aliasing 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-37/gpu-rt-result-close.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20180506213840/http://blog.three-eyed-games.com/2018/05/03/gpu-ray-tracing-in-unity-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;http://tuxedolabs.blogspot.ca/2018/05/bokeh-depth-of-field-in-single-pass.html?m=1&#34; target=&#34;_blank&#34; id=&#34;Bokeh depth of field in a single pass&#34;&gt;Bokeh depth of field in a single pass&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 steps leading up the final implementation&lt;/li&gt;
&lt;li&gt;uses a fixed weight for all contributing samples. If sample doesn&amp;rsquo;t contribute, blend in the current average color instead&lt;/li&gt;
&lt;li&gt;clamping sample size when sample is further away then the center sample. This makes sure out of focus background do not blur into in-focus foreground 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-37/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 class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20180506214029/http://tuxedolabs.blogspot.ca/2018/05/bokeh-depth-of-field-in-single-pass.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://github.com/catid/Zpng&#34; target=&#34;_blank&#34; id=&#34;Zpng&#34;&gt;Zpng&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;texture compression library in just 500 lines of C code + Zstd&lt;/li&gt;
&lt;li&gt;zpng compressing is quicker, takes 6% of the time and output size of the image is 66% compared to the png reference&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/20180506214207/https://github.com/catid/Zpng&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;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/2018-vulkan-montreal-dev-day&#34; target=&#34;_blank&#34; id=&#34;2018 Vulkan Montreal Dev Day&#34;&gt;2018 Vulkan Montreal Dev Day&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 the Vulkan Montreal dev day&lt;/li&gt;
&lt;li&gt;including updates about HLSL in Vulkan and descriptor indexing&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-37/2018-vulkan-developer-day-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/20180506214329/https://www.khronos.org/developers/library/2018-vulkan-montreal-dev-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://gist.github.com/zeux/b48678a44944187c16f55ad6cca45e78&#34; target=&#34;_blank&#34; id=&#34;Comparison of vertexcodec/indexcodec from meshoptimizer with Google Draco&#34;&gt;Comparison of vertexcodec/indexcodec from meshoptimizer with Google Draco&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;comparison of Draco and mesh optimizer output in regards to size and decoding time&lt;/li&gt;
&lt;li&gt;Draco size compression is mesh dependent, can be larger. Always a lot slower to decode&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/20180506214935/https://gist.github.com/zeux/b48678a44944187c16f55ad6cca45e78&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#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-2018-presentations/&#34; target=&#34;_blank&#34; id=&#34;GDC 2018 Presentations&#34;&gt;GDC 2018 Presentations&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;most of the AMD presentations from GDC have now been uploaded&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-37/gdc_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/20180506215044/https://gpuopen.com/gdc-2018-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://developer.apple.com/documentation/metal/fundamental_lessons/argument_buffers/basic_argument_buffers&#34; target=&#34;_blank&#34; id=&#34;Basic Argument Buffers&#34;&gt;Basic Argument Buffers&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;examples for arguments buffer have been published&lt;/li&gt;
&lt;li&gt;allow the grouping of resources and constants into a single object that can be bound as a single unit&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-37/argument_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/20180506215212/https://developer.apple.com/documentation/metal/fundamental_lessons/argument_buffers/basic_argument_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://developers.googleblog.com/2018/05/open-sourcing-seurat.html?m=1&#34; target=&#34;_blank&#34; id=&#34;Open Sourcing Seurat: bringing high-fidelity scenes to mobile VR&#34;&gt;Open Sourcing Seurat: bringing high-fidelity scenes to 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;tool that allows simplifications for static VR environments&lt;/li&gt;
&lt;li&gt;takes RGB + depth as input images&lt;/li&gt;
&lt;li&gt;generates simplified geometry that textures will be mapped onto to represent the scene&lt;/li&gt;
&lt;li&gt;prebuild version can be found here: &lt;a href=&#34;https://github.com/ddiakopoulos/seurat/releases&#34; target=&#34;_blank&#34;&gt;https://github.com/ddiakopoulos/seurat/releases&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-37/seurat.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20180506215319/https://developers.googleblog.com/2018/05/open-sourcing-seurat.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;http://momentsingraphics.de/?page_id=210&#34; target=&#34;_blank&#34; id=&#34;i3D 2018 – Moment-Based Order-Independent Transparency&#34;&gt;i3D 2018 – Moment-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;build upon the ideas of moment shadow mapping&lt;/li&gt;

&lt;li&gt;&lt;p&gt;transparent geometry is rendered twice&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;determine transmittance function per pixel&lt;/li&gt;
&lt;li&gt;composite all transparent surfaces&lt;/li&gt;
&lt;/ol&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;taking advantage of the fact that the logarithm of the transmittance can be accumulated additively&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-37/mboit.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;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/20180506215529/http://momentsingraphics.de/Media/I3D2018/Muenstermann2018-MBOIT.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://floooh.github.io/2018/05/05/oryol-sokol-gfx-changes.html&#34; target=&#34;_blank&#34; id=&#34;Upcoming Oryol Changes (sokol_gfx.h migration)&#34;&gt;Upcoming Oryol Changes (sokol_gfx.h migration)&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 new rendering API&lt;/li&gt;
&lt;li&gt;build around method chaining for the initialization of  descriptors&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/20180506215855/http://floooh.github.io/2018/05/05/oryol-sokol-gfx-changes.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://on-demand-gtc.gputechconf.com/gtcnew/on-demand-gtc.php?searchByKeyword=&amp;amp;searchItems=&amp;amp;sessionTopic=&amp;amp;sessionEvent=2&amp;amp;sessionYear=2018&amp;amp;sessionFormat=&amp;amp;submit=&amp;amp;select=&#34; target=&#34;_blank&#34; id=&#34;GTC On-Demand&#34;&gt;GTC On-Demand&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 presentations from GTC 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-37/gtc-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;hr /&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 36 — April 29, 2018</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-36/</link>
      <pubDate>Sun, 29 Apr 2018 21:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-36/</guid>
      <description>
&lt;div class=&#34;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/nubis-realtime-volumetric-cloudscapes-in-a-nutshell&#34; target=&#34;_blank&#34; id=&#34;Nubis: Realtime volumetric cloudscapes in a nutshell&#34;&gt;Nubis: Realtime volumetric cloudscapes in a nutshell&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

&lt;ul&gt;
&lt;li&gt;cloud modeling and authoring system&lt;/li&gt;
&lt;li&gt;lighting model&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;high level 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-36/nubis_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/20180501020808/https://www.guerrilla-games.com/read/nubis-realtime-volumetric-cloudscapes-in-a-nutshell&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://tuxedolabs.blogspot.ca/2018/04/stratified-sampling.html?m=1&#34; target=&#34;_blank&#34; id=&#34;Stratified sampling&#34;&gt;Stratified sampling&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;environment lighting is using several distributed area lights&lt;/li&gt;
&lt;li&gt;distribution / strength is adapted to the environment&lt;/li&gt;
&lt;li&gt;implementation of importance sampling using varying step sizes for ray marching 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-36/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/20180501021539/http://tuxedolabs.blogspot.ca/2018/04/stratified-sampling.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://blog.demofox.org/2018/04/23/taking-a-stroll-between-the-pixels/&#34; target=&#34;_blank&#34; id=&#34;Taking a Stroll Between The Pixels&#34;&gt;Taking a Stroll Between The Pixels&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;investigation of relation between linear interpolation and curve 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-36/curve_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;http://web.archive.org/web/20180424190123/https://blog.demofox.org/2018/04/23/taking-a-stroll-between-the-pixels/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#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-smp-assist-api-vr-programming/&#34; target=&#34;_blank&#34; id=&#34;NVIDIA SMP Assist API for VR Programming&#34;&gt;NVIDIA SMP Assist API for VR Programming&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;D3D11 extensions to simplify use of Lens Matched Shading and Multi-Res Shading&lt;/li&gt;
&lt;li&gt;short overview of the concepts and how the API 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-36/lens_matched.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20180501021849/https://devblogs.nvidia.com/nvidia-smp-assist-api-vr-programming/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#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/reducing-vulkan-api-call-overhead/&#34; target=&#34;_blank&#34; id=&#34;Reducing Vulkan API call overhead&#34;&gt;Reducing Vulkan API call overhead&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;vulkan function calls pass through several layers until the actual function is  executed&lt;/li&gt;
&lt;li&gt;looks at the disassembly to evaluate the cost of this (between 1-5%)&lt;/li&gt;
&lt;li&gt;and how to bypass many layers to reduce the overhead&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/20180501022021/https://gpuopen.com/reducing-vulkan-api-call-overhead/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://de.slideshare.net/philiphammer/dissecting-the-rendering-of-the-surge/&#34; target=&#34;_blank&#34; id=&#34;Dissecting the Rendering of The Surge&#34;&gt;Dissecting the Rendering of The Surge&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;100% dynamic lights, 16 shadow maps in 4kx4k atlas&lt;/li&gt;
&lt;li&gt;gbuffer breakdown

&lt;ul&gt;
&lt;li&gt;stores material index in gbuffer, indexing into structured buffer for material information&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;deferred decals have problems with depth discontinuities because of wrong mip selections

&lt;ul&gt;
&lt;li&gt;use mip0 when depth discontinues are found around the pixel&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;object decals, blending arbitrary meshes into the gbuffer&lt;/li&gt;
&lt;li&gt;working on bindless decals, follow the same pattern as clustered deferred 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-36/the_surge.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20180501022216/https://de.slideshare.net/philiphammer/dissecting-the-rendering-of-the-surge/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://aras-p.info/blog/2018/04/25/Daily-Pathtracer-12-GPU-Buffer-Oriented-D3D11/&#34; target=&#34;_blank&#34; id=&#34;Daily Pathtracer 12: GPU Buffer-Oriented D3D11&#34;&gt;Daily Pathtracer 12: GPU Buffer-Oriented D3D11&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 a buffer based (breadth first) approach for the raytracer&lt;/li&gt;
&lt;li&gt;looking at synchronization issues, performance&lt;/li&gt;
&lt;li&gt;brief look at the NVidia nsight 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-36/rt-gpubuffer-nsight-initial-markup.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20180501022510/http://aras-p.info/blog/2018/04/25/Daily-Pathtracer-12-GPU-Buffer-Oriented-D3D11/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#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.ca/2018/04/gpu-texture-compression-error-metrics.html?m=1&#34; target=&#34;_blank&#34; id=&#34;GPU texture compression error metrics&#34;&gt;GPU texture compression error metrics&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 error metric he uses when working/comparing encoders&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-36/error_metric.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20180501022625/http://richg42.blogspot.ca/2018/04/gpu-texture-compression-error-metrics.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;http://thomasdeliot.wixsite.com/blog/single-post/2018/04/26/Small-project-OpenGL-engine-and-PBR-deferred-pipeline-with-SSRSSAO&#34; target=&#34;_blank&#34; id=&#34;OpenGL engine and PBR deferred pipeline with SSR/SSAO&#34;&gt;OpenGL engine and PBR deferred pipeline with SSR/SSAO&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;shows effect of different ray marching step sizes for screen space reflections&lt;/li&gt;
&lt;li&gt;diffuse reflections approximation with mip selection vs reference implementation with many 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-36/rough_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/20180501022744/http://thomasdeliot.wixsite.com/blog/single-post/2018/04/26/Small-project-OpenGL-engine-and-PBR-deferred-pipeline-with-SSRSSAO&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#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/1cef1417215add13c9eb26451f26afe2&#34; target=&#34;_blank&#34; id=&#34;Comparison of backface culling efficiency for cluster cone culling&#34;&gt;Comparison of backface culling efficiency for cluster cone culling&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;comparison of backface culling efficiency for cluster cone, 64-triangle clusters&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/20180501023010/https://gist.github.com/zeux/1cef1417215add13c9eb26451f26afe2&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://moon519.github.io/Terrain-Erosion-On-The-GPU/&#34; target=&#34;_blank&#34; id=&#34;Terrain Erosion On GPU&#34;&gt;Terrain Erosion 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;discusses 3 different approaches for implementing thermal erosion on a height field based 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-36/thermalResults.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20180501023057/https://moon519.github.io/Terrain-Erosion-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;http://richg42.blogspot.ca/2018/04/new-bc7-encoder-open-sourced.html?m=1&#34; target=&#34;_blank&#34; id=&#34;New BC7 encoder open sourced&#34;&gt;New BC7 encoder open sourced&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;supports perceptual metric for compression&lt;/li&gt;
&lt;li&gt;designed for opaque textures&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/20180501023200/http://richg42.blogspot.ca/2018/04/new-bc7-encoder-open-sourced.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://antiagainst.github.io/post/hlsl-for-vulkan-resources/&#34; target=&#34;_blank&#34; id=&#34;HLSL for Vulkan: Resources&#34;&gt;HLSL for Vulkan: Resources&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;descriptor types in vulkan vs D3D12&lt;/li&gt;
&lt;li&gt;how to specify resource bindings for vulkan in HLSL&lt;/li&gt;
&lt;li&gt;memory layout rules&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/20180501023241/https://antiagainst.github.io/post/hlsl-for-vulkan-resources/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 35 — April 22, 2018</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-35/</link>
      <pubDate>Sun, 22 Apr 2018 21:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-35/</guid>
      <description>
&lt;div class=&#34;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/2018-vulkan-developer-day-in-montreal&#34; target=&#34;_blank&#34; id=&#34;2018 Vulkan Developer Day in Montréal&#34;&gt;2018 Vulkan Developer Day in Montréal&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;April 30th, Vulkan Developer Day in Montreal, hosted by Ubisoft&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-35/2018-vulkan-developer-day-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/20180422053702/https://www.khronos.org/events/2018-vulkan-developer-day-in-montreal&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;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/17516667&#34; target=&#34;_blank&#34; id=&#34;Recolouring assets with lazy unwrapping!&#34;&gt;Recolouring assets with lazy unwrapping!&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;UVs map into a gradient texture&lt;/li&gt;
&lt;li&gt;to change the colors the UVs are adjusted to point to other sections in gradient 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-35/Recolouring_assets_with_lazy_unwrapping.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20180422053737/https://www.patreon.com/posts/17516667&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://ourmachinery.com/post/the-machinery-shader-system-part-2/&#34; target=&#34;_blank&#34; id=&#34;The Machinery Shader System (part 2)&#34;&gt;The Machinery Shader System (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;overview of the shader authoring format&lt;/li&gt;
&lt;li&gt;shader input parameters are defined without thinking about how they are bound&lt;/li&gt;
&lt;li&gt;passing data between shader stages is abstracted

&lt;ul&gt;
&lt;li&gt;giving the system flexibility to pack as required&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-35/The_Machinery_Shader_System.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20180422053806/http://ourmachinery.com/post/the-machinery-shader-system-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://arxiv.org/abs/1804.06826&#34; target=&#34;_blank&#34; id=&#34;Dissecting the NVIDIA Volta GPU Architecture via Microbenchmarking&#34;&gt;Dissecting the NVIDIA Volta GPU Architecture via Microbenchmarking&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;microarchitectural details of the NVIDIA Volta architecture&lt;/li&gt;
&lt;li&gt;registers are divided into two 64 bit banks

&lt;ul&gt;
&lt;li&gt;reduction of bank conflicts with register remapping can improve performance by 15%&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;shorter latency for shared memory 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-35/volta.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;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/20180422040546/https://arxiv.org/pdf/1804.06826.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://medium.com/@bmind/benefits-of-image-based-lighting-on-mobile-284cda30d6d8&#34; target=&#34;_blank&#34; id=&#34;Benefits of Image Based Lighting on Mobile&#34;&gt;Benefits of Image Based Lighting 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;MatCap texture contains lighting information for all camera space normals&lt;/li&gt;
&lt;li&gt;needs to be recalculated when camera direction 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-35/Benefits_of_Image_Based_Lighting_on_Mobile_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 class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20180421174135/https://medium.com/@bmind/benefits-of-image-based-lighting-on-mobile-284cda30d6d8&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#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/graphics/b/blog/posts/post-processing-effects-on-mobile-optimization-and-alternatives&#34; target=&#34;_blank&#34; id=&#34;Post-processing effects on optimization mobile gaming&#34;&gt;Post-processing effects on optimization mobile gaming&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;uses a texture based and camera facing quad approach instead of a post-processing bloom&lt;/li&gt;
&lt;li&gt;lighting for terrain rendered into a low-res light map, sampled per-fragment&lt;/li&gt;
&lt;li&gt;terrain is rendered at 720p, up-scaled to 1080p&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-35/post_processing.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20180422053858/https://community.arm.com/graphics/b/blog/posts/post-processing-effects-on-mobile-optimization-and-alternatives&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#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/2018/04/16/prefix-sums-and-summed-area-tables&#34; target=&#34;_blank&#34; id=&#34;Prefix Sums and Summed Area Tables&#34;&gt;Prefix Sums and Summed Area Tables&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;algorithm to sum regions from arrays or grids in constant time&lt;/li&gt;
&lt;li&gt;need larger storage format, increase depends on largest range that needs to be summed&lt;/li&gt;
&lt;li&gt;compatible with bilinear filtering for sub-pixel 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-35/sat5.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;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/20180417053224/https://blog.demofox.org/2018/04/16/prefix-sums-and-summed-area-tables/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#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/1FAIpQLSdz7lxiLA_jbzG9gsmOR15V4Wi9XSTEpSqdN86fpWrcQWEIQg/viewform&#34; target=&#34;_blank&#34; id=&#34;Unity Graphics Questionnaire&#34;&gt;Unity Graphics Questionnaire&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;unity graphics team is looking to gather feedback to improve the roadmap&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&gt;&lt;/p&gt;


&lt;div class=&#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/2018/04/16/Daily-Pathtracer-10-Update-CsharpGPU/&#34; target=&#34;_blank&#34; id=&#34;Daily Pathtracer 10: Update C#&amp;amp;GPU&#34;&gt;Daily Pathtracer 10: Update C#&amp;amp;GPU&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;performance numbers for all implementations with latest changes&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/20180422053955/https://aras-p.info/blog/2018/04/16/Daily-Pathtracer-10-Update-CsharpGPU/&#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://aras-p.info/blog/2018/04/19/Daily-Pathtracer-11-Buffer-Oriented/&#34; target=&#34;_blank&#34; id=&#34;Daily Pathtracer 11: Buffer-Oriented&#34;&gt;Daily Pathtracer 11: Buffer-Oriented&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;current approach recursively processes a single ray until it terminates&lt;/li&gt;
&lt;li&gt;new approach calculates each step for all rays in seperate passes&lt;/li&gt;
&lt;li&gt;memory read seems to be limiting factor, shows a few optimizations for that&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-35/rt-buffer-diagram-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/20180422054026/http://aras-p.info/blog/2018/04/19/Daily-Pathtracer-11-Buffer-Oriented/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#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/first-steps-implementing-fp16/&#34; target=&#34;_blank&#34; id=&#34;First steps when implementing FP16&#34;&gt;First steps when implementing FP16&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;available with AMD vega architecture&lt;/li&gt;
&lt;li&gt;pack two FP16 into FP32 register

&lt;ul&gt;
&lt;li&gt;reduce ALU instructions count, reduce VGPR usage&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;how to detect FP16 code generation in FXC disassembly and GCN ISA output&lt;/li&gt;
&lt;li&gt;discussion of pitfalls and common use-cases&lt;/li&gt;
&lt;li&gt;how to deal with FP16 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-35/fp16.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20180422054050/https://gpuopen.com/first-steps-implementing-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://deepspacebanana.github.io/deepspacebanana.github.io/blog/shader/art/unreal%20engine/Rainy-Surface-Shader-Part-2&#34; target=&#34;_blank&#34; id=&#34;Rainy SurfaceShader in UE4 Part 2&#34;&gt;Rainy SurfaceShader in UE4 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;combination of ripples and streaking effect&lt;/li&gt;
&lt;li&gt;blending between the two effects based on surface orientation&lt;/li&gt;
&lt;li&gt;this post covers the implementation of the streaking 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-35/rain.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;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/20180422052523/https://deepspacebanana.github.io/deepspacebanana.github.io/blog/shader/art/unreal%20engine/Rainy-Surface-Shader-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;http://richg42.blogspot.ca/2018/04/bc7-encoding-using-weighted-ycbcr.html?m=1&#34; target=&#34;_blank&#34; id=&#34;BC7 encoding using weighted YCbCr colorspace metrics&#34;&gt;BC7 encoding using weighted YCbCr colorspace metrics&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;many BC7 encoders compress all channels equally&lt;/li&gt;
&lt;li&gt;for color textures, errors in red and blue are less noticeable&lt;/li&gt;
&lt;li&gt;YCbCr color space allows better compression by reducing the number of bits used for chroma&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-35/bc7_graph2_luma.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20180422053832/http://richg42.blogspot.ca/2018/04/bc7-encoding-using-weighted-ycbcr.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;http://richg42.blogspot.ca/2018/04/ispctexcomp-bc7-issues.html?m=1&#34; target=&#34;_blank&#34; id=&#34;ispc_texcomp BC7 issues&#34;&gt;ispc_texcomp BC7 issues&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;discusses issue with the ispc implementation&lt;/li&gt;
&lt;li&gt;compression has quality problems with grayscale 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-35/intel_hramp.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20180422054141/http://richg42.blogspot.ca/2018/04/ispctexcomp-bc7-issues.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;http://iliyan.com/publications/VolumeSTAR&#34; target=&#34;_blank&#34; id=&#34;Monte Carlo Methods for Volumetric Light Transport Simulation&#34;&gt;Monte Carlo Methods for Volumetric 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;survey of methods utilizing Monte Carlo for light transport in participating media&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-35/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 class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20180422054320/http://iliyan.com/publications/VolumeSTAR/VolumeSTAR_EG2018.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://shadertoyunofficial.wordpress.com/2018/04/16/readings-shaders-maths-3d/&#34; target=&#34;_blank&#34; id=&#34;Readings (shaders, maths, 3D)&#34;&gt;Readings (shaders, maths, 3D)&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 resources for beginners aimed at shader toy like 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/20180422044911/https://shadertoyunofficial.wordpress.com/2018/04/16/readings-shaders-maths-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://github.com/jessey-git/fx-gltf&#34; target=&#34;_blank&#34; id=&#34;fx-gltf&#34;&gt;fx-gltf&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;A C++14/C++17 header-only library for simple, efficient, and robust serialization/deserialization of glTF 2.0&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&gt;&lt;/p&gt;


&lt;div class=&#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/metrics-discovery&#34; target=&#34;_blank&#34; id=&#34;intel metrics discovery&#34;&gt;intel metrics discovery&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;library that allows access to GPU performance data on intel GPUs&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&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 34 — April 15, 2018</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-34/</link>
      <pubDate>Sun, 15 Apr 2018 12:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-34/</guid>
      <description>&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;http://colourmath.com/2018/tutorials/exploring-scriptable-render-pipelines-in-unity-2018-1/&#34; target=&#34;_blank&#34;&gt;Exploring scriptable render pipelines in unity 2018.1&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20180416005143/http://colourmath.com/2018/tutorials/exploring-scriptable-render-pipelines-in-unity-2018-1/&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;overview of the scriptable render pipeline&lt;/li&gt;
&lt;li&gt;walkthrough of the development of a pipeline for mobile VR, code on &lt;a href=&#34;https://github.com/colourmath/ScriptableRenderPipeline&#34; target=&#34;_blank&#34;&gt;github&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;lighting, fog, lightmaps, shadows, light/reflection probes, transparency&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://mzucker.github.io/2018/04/11/sympy-case-studies-part-2-derivatives.html&#34; target=&#34;_blank&#34;&gt;SymPy case studies, part 2: derivatives&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20180416005317/https://mzucker.github.io/2018/04/11/sympy-case-studies-part-2-derivatives.html&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;calculation of partial derivatives, function gradients&lt;/li&gt;
&lt;li&gt;able to eliminate common subexpressions&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://mzucker.github.io/2018/04/12/sympy-part-3-moar-derivatives.html&#34; target=&#34;_blank&#34;&gt;SymPy part 3: moar derivatives!&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20180416005350/https://mzucker.github.io/2018/04/12/sympy-part-3-moar-derivatives.html&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;longer example combining all elements of previous posts of the series to calculate area elements on the unit sphere&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://aras-p.info/blog/2018/04/10/Daily-Pathtracer-Part-7-Initial-SIMD/&#34; target=&#34;_blank&#34;&gt;Daily Pathtracer Part 7: Initial SIMD&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20180416005411/https://aras-p.info/blog/2018/04/10/Daily-Pathtracer-Part-7-Initial-SIMD/&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&#34;https://aras-p.info/blog/2018/04/11/Daily-Pathtracer-8-SSE-HitSpheres/&#34; target=&#34;_blank&#34;&gt;Daily Pathtracer 8: SSE HitSpheres&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20180416005430/https://aras-p.info/blog/2018/04/11/Daily-Pathtracer-8-SSE-HitSpheres/&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&#34;https://aras-p.info/blog/2018/04/13/Daily-Pathtracer-9-A-wild-ryg-appears/&#34; target=&#34;_blank&#34;&gt;Daily Pathtracer 9: A wild ryg appears&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20180416005443/https://aras-p.info/blog/2018/04/13/Daily-Pathtracer-9-A-wild-ryg-appears/&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;new parts about the pathracer, discussing SSE implementation approaches, performance and optimizations&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://software.intel.com/en-us/articles/coarse-pixel-shading-with-temporal-supersampling&#34; target=&#34;_blank&#34;&gt;Coarse Pixel Shading with Temporal Supersampling&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20180416005252/https://software.intel.com/en-us/articles/coarse-pixel-shading-with-temporal-supersampling&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;coarse pixel shading lowers shading rate&lt;/li&gt;
&lt;li&gt;temporally reconstructs shading samples and full visibility information&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://software.intel.com/sites/default/files/managed/3b/2b/CPST_preprint.pdf&#34; target=&#34;_blank&#34;&gt;pdf preprint&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://www.ea.com/frostbite/news/frostbite-gpu-emitter-graph-system&#34; target=&#34;_blank&#34;&gt;GPU Emitter Graph System in Star Wars Battlefront 2&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20180416005556/https://media.contentapi.ea.com/content/dam/eacom/frostbite/files/gdc2018-frostbitediceemittergraph.pptx&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;workflow overview&lt;/li&gt;
&lt;li&gt;runtime design

&lt;ul&gt;
&lt;li&gt;frame organisation&lt;/li&gt;
&lt;li&gt;data management&lt;/li&gt;
&lt;li&gt;particle sorting&lt;/li&gt;
&lt;li&gt;performance&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;walkthrough of different use cases (sparks, snow, rain, leaves, &amp;hellip; , crowds)&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;http://tryhlsl.azurewebsites.net&#34; target=&#34;_blank&#34;&gt;DXC online compiler&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;website allows the compilation of HLSL using the old fxc and the new dxc shader compiler&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://medium.com/@tidyui/fast-beautiful-2d-lighting-in-unity-47b76b10447c&#34; target=&#34;_blank&#34;&gt;Fast &amp;amp; beautiful 2D lighting in Unity&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20180416005655/https://medium.com/@tidyui/fast-beautiful-2d-lighting-in-unity-47b76b10447c&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;breakdown of how the 2D lighting system was implemented&lt;/li&gt;
&lt;li&gt;using 3D objects to cast and receive shadows&lt;/li&gt;
&lt;li&gt;rendering shadows and lighting into a render target, blend the result into the main output&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://blogs.msdn.microsoft.com/marcelolr/2018/04/09/interactive-editor-for-the-directx-shader-compiler/&#34; target=&#34;_blank&#34;&gt;Interactive Editor for the DirectX Shader Compiler&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20180416005719/https://blogs.msdn.microsoft.com/marcelolr/2018/04/09/interactive-editor-for-the-directx-shader-compiler/&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Interactive editor mode allows to show changes introduced by each pass&lt;/li&gt;
&lt;li&gt;changes to disassembly can be made and will be propagated to following changes&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://blogs.msdn.microsoft.com/directx/2018/04/09/dxgi-flip-model/&#34; target=&#34;_blank&#34;&gt;For best performance, use DXGI flip model&lt;/a&gt; &lt;a href=&#34;http://web.archive.org/web/20180416005736/https://blogs.msdn.microsoft.com/directx/2018/04/09/dxgi-flip-model/&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Spring Creators Update brings new features&lt;/li&gt;
&lt;li&gt;discussion of scenarios when the windows compositor can be bypassed with the flip model to allow best performance&lt;/li&gt;
&lt;li&gt;hardware can scale back buffers when they don&amp;rsquo;t match the screen resolution&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://www.unrealengine.com/en-US/events/gdc2018/&#34; target=&#34;_blank&#34;&gt;Epic at GDC 2018&lt;/a&gt; &lt;a href=&#34;http://web.archive.org/web/20180310045337/https://www.unrealengine.com/en-US/events/gdc2018/&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;list of all Epic content presented at GDC 2018&lt;/li&gt;
&lt;/ul&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 33 — April 8, 2018</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-33/</link>
      <pubDate>Sun, 08 Apr 2018 12:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-33/</guid>
      <description>&lt;hr /&gt;

&lt;!--End mc_embed_signup--&gt;

&lt;p&gt;&lt;a href=&#34;https://mynameismjp.wordpress.com/2018/04/01/breaking-down-barriers-part-2-synchronizing-gpu-threads/&#34; target=&#34;_blank&#34;&gt;Breaking down barriers – part 2: Synchronizing GPU threads&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20180408164108/https://mynameismjp.wordpress.com/2018/04/01/breaking-down-barriers-part-2-synchronizing-gpu-threads/&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;explanations of barrier behaviour on a simplified GPU model&lt;/li&gt;
&lt;li&gt;how split barriers help to increase GPU utilization&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;http://jamie-wong.com/post/color/&#34; target=&#34;_blank&#34;&gt;Color: From Hexcodes to Eyeballs&lt;/a&gt; &lt;a href=&#34;http://web.archive.org/web/20180408122501/http://jamie-wong.com/post/color/&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;in-depth introduction into light theory, human perception, color spaces and gamma correction&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://www.unrealengine.com/en-US/blog/one-mesh-to-rule-them-all&#34; target=&#34;_blank&#34;&gt;One Mesh To Rule Them All&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20180408164138/https://www.unrealengine.com/en-US/blog/one-mesh-to-rule-them-all&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;same assets used on PC/mobile/consoles&lt;/li&gt;
&lt;li&gt;limits the LODs based on the target platform&lt;/li&gt;
&lt;li&gt;creates clusters of nearby objects, generate proxy geometry from these clusters&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://www.gamasutra.com/blogs/ScottLembcke/20180404/316046/Improved_Lerp_Smoothing.php&#34; target=&#34;_blank&#34;&gt;Improved Lerp Smoothing&lt;/a&gt; &lt;a href=&#34;http://web.archive.org/web/20180407224633/https://www.gamasutra.com/blogs/ScottLembcke/20180404/316046/Improved_Lerp_Smoothing.php&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;classical lerp is frame rate dependent, hard to tweak&lt;/li&gt;
&lt;li&gt;improved version that solves these problems: value = lerp(target, value, exp2(-rate*deltaTime))&lt;/li&gt;
&lt;li&gt;how to convert from classical lerp&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;http://reedbeta.com/blog/normals-inverse-transpose-part-1/&#34; target=&#34;_blank&#34;&gt;Normals and the Inverse Transpose, Part 1: Grassmann Algebra&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20180408165324/http://reedbeta.com/blog/normals-inverse-transpose-part-1/&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;introduction into grassmann algebra&lt;/li&gt;
&lt;li&gt;explanation of vector, bivector, trivector and wedge product&lt;/li&gt;
&lt;li&gt;derivation of a more geometric understanding about the behaviour under transformation&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://eheitzresearch.wordpress.com/705-2/&#34; target=&#34;_blank&#34;&gt;Combining Analytic Direct Illumination and Stochastic Shadows&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20180408164303/https://eheitzresearch.wordpress.com/705-2/&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;split into unshadowed illumination and illumination-weighted shadow

&lt;ul&gt;
&lt;li&gt;unshadowed areas are noise free, only shadowed areas use stochastic ray tracing and need denoising&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;discussions of denoising techniques&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://arvid.io/2018/04/02/memory-mapping-on-windows/&#34; target=&#34;_blank&#34;&gt;Memory Mapping on Windows (including Benchmark)&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20180408164849/https://arvid.io/2018/04/02/memory-mapping-on-windows/&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;overview of memory mapping on windows&lt;/li&gt;
&lt;li&gt;benchmark of different techniques&lt;/li&gt;
&lt;li&gt;using MEM_RESET allows the OS to lazily unmap pages&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://blogs.msdn.microsoft.com/marcelolr/2018/04/05/rendering-in-the-directx-shader-compiler-editor/&#34; target=&#34;_blank&#34;&gt;Rendering in the DirectX Shader Compiler Editor&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20180408165038/https://blogs.msdn.microsoft.com/marcelolr/2018/04/05/rendering-in-the-directx-shader-compiler-editor/&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;tool to allow compilation of shaders, inspection of AST and disassembly&lt;/li&gt;
&lt;li&gt;renderView allows execution of draw/dispatch, could be useful for prototyping&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://blogs.msdn.microsoft.com/marcelolr/2018/04/06/viewing-optimization-passes-in-the-directx-shader-compiler-editor/&#34; target=&#34;_blank&#34;&gt;Viewing Optimization Passes in the DirectX Shader Compiler Editor&lt;/a&gt; &lt;a href=&#34;http://web.archive.org/web/20180408165400/https://blogs.msdn.microsoft.com/marcelolr/2018/04/06/viewing-optimization-passes-in-the-directx-shader-compiler-editor/&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;allows display of optimisation passes&lt;/li&gt;
&lt;li&gt;change setup of used passes, ordering and parameters&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://github.com/kayru/Barycentrics&#34; target=&#34;_blank&#34;&gt;Barycentrics&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20180408165100/https://github.com/kayru/Barycentrics&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;demo application that shows 5 ways to get Barycentric coordinates&lt;/li&gt;
&lt;li&gt;large variation in performance between the different approaches&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;http://diaryofagraphicsprogrammer.blogspot.ca/2018/04/ray-tracing-with-directx-ray-tracing.html?m=1&#34; target=&#34;_blank&#34;&gt;Ray Tracing with the DirectX Ray Tracing API (DXR)&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20180408165147/http://diaryofagraphicsprogrammer.blogspot.ca/2018/04/ray-tracing-with-directx-ray-tracing.html?m=1&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;concerns about a blackbox raytracing API and the quality of drivers&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VK_EXT_descriptor_indexing&#34; target=&#34;_blank&#34;&gt;Vulkan bindless extensions&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20180408165205/https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;descriptors can be updated after they are bound to a command buffer&lt;/li&gt;
&lt;li&gt;relax requirement so that descriptors that are not accessed can be invalid&lt;/li&gt;
&lt;li&gt;allow variable size bindings in descriptor set layout&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/KhronosGroup/GLSL/blob/master/extensions/ext/GL_EXT_nonuniform_qualifier.txt&#34; target=&#34;_blank&#34;&gt;GL_EXT_nonuniform_qualifier&lt;/a&gt; allows indexing into resource arrays which differ within the same draw call&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://colinbarrebrisebois.com/2018/04/07/some-thoughts-on-real-time-raytracing/&#34; target=&#34;_blank&#34;&gt;GDC Retrospective and Additional Thoughts on Real-Time Raytracing&lt;/a&gt; &lt;a href=&#34;http://web.archive.org/web/20180408052448/https://colinbarrebrisebois.com/2018/04/07/some-thoughts-on-real-time-raytracing/&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;quick overview about the content of the SEED raytracing presentation at GDC&lt;/li&gt;
&lt;li&gt;sees the future to be about trade-offs between noise, ghosting and performance&lt;/li&gt;
&lt;li&gt;allows comparison against ground truth&lt;/li&gt;
&lt;li&gt;allows researchers to implement techniques using a common API&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://github.com/chaoticbob/SPIRV-Reflect&#34; target=&#34;_blank&#34;&gt;SPIRV-Reflect&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;library that provides a C reflection API for SPIR-V shader bytecode&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://mzucker.github.io/2018/04/06/why-every-gfx-cv-robotics-programmer-should-love-sympy.html&#34; target=&#34;_blank&#34;&gt;Why every gfx/CV/robotics programmer should love SymPy (Part 1)&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20180408165237/https://mzucker.github.io/2018/04/06/why-every-gfx-cv-robotics-programmer-should-love-sympy.html&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;2 case studies of how to use SymPy&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://aras-p.info/blog/2018/04/03/Daily-Pathtracer-Part-5-Metal-GPU/&#34; target=&#34;_blank&#34;&gt;Daily Pathtracer Part 5: Metal GPU!&lt;/a&gt; &lt;a href=&#34;http://web.archive.org/web/20180404033138/http://aras-p.info/blog/2018/04/03/Daily-Pathtracer-Part-5-Metal-GPU/&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;experience of porting the pathtracer to metal with performance numbers and problems encountered&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;http://www.geeks3d.com/20180402/demoscene-revision-2018/&#34; target=&#34;_blank&#34;&gt;(Demoscene) Revision 2018&lt;/a&gt; &lt;a href=&#34;http://web.archive.org/web/20180403032337/http://www.geeks3d.com/20180402/demoscene-revision-2018/&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;videos of the demos shown at revision 2018&lt;/li&gt;
&lt;/ul&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 32 — April 1, 2018</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-32/</link>
      <pubDate>Sun, 01 Apr 2018 12:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-32/</guid>
      <description>&lt;hr /&gt;

&lt;!--End mc_embed_signup--&gt;

&lt;p&gt;&lt;a href=&#34;http://diaryofagraphicsprogrammer.blogspot.ca/2018/03/triangle-visibility-buffer.html?m=1&#34; target=&#34;_blank&#34;&gt;Triangle Visibility Buffer&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20180402192008/http://diaryofagraphicsprogrammer.blogspot.ca/2018/03/triangle-visibility-buffer.html?m=1&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;in-depth walkthrough of the GPU triangle culling pipeline&lt;/li&gt;
&lt;li&gt;render into a single render RGBA8 render target, storing drawID + triangle ID&lt;/li&gt;
&lt;li&gt;memory usage comparison with deferred shading&lt;/li&gt;
&lt;li&gt;at shading time

&lt;ul&gt;
&lt;li&gt;lookup the triangle ID from the render target&lt;/li&gt;
&lt;li&gt;interpolate vertex attributes at pixel position&lt;/li&gt;
&lt;li&gt;apply shading&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;advantages of the technique

&lt;ul&gt;
&lt;li&gt;less memory bandwidth required&lt;/li&gt;
&lt;li&gt;better memory coherence during shading&lt;/li&gt;
&lt;li&gt;more material variety, no need to store material data in gbuffers&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;http://kylehalladay.com/blog/tutorial/vulkan/2018/03/28/SSBO-VS-Uniform-Buffer-2.html&#34; target=&#34;_blank&#34;&gt;Re-Testing Vulkan Transform Data Handling Strategies&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20180402192024/http://kylehalladay.com/blog/tutorial/vulkan/2018/03/28/SSBO-VS-Uniform-Buffer-2.html&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;performance comparison of constant buffer data stored in

&lt;ul&gt;
&lt;li&gt;push-constants&lt;/li&gt;
&lt;li&gt;large UBO (device / host memory)&lt;/li&gt;
&lt;li&gt;large SSBO (device / host memory)&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;on Nvidia UBO performs significantly better&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;http://www.shaderbits.com/blog/octahedral-impostors&#34; target=&#34;_blank&#34;&gt;Octahedral Impostors&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20180402192049/http://www.shaderbits.com/blog/octahedral-impostors&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;better usage of texture space, workflow improvements&lt;/li&gt;
&lt;li&gt;overview of billboard techniques&lt;/li&gt;
&lt;li&gt;using either Hemi-Octahedron or full Octahedron&lt;/li&gt;
&lt;li&gt;how to blend between the different baked directions&lt;/li&gt;
&lt;li&gt;integration into UE pipeline&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://www.allegorithmic.com/blog/pbr-guide-revised-and-expanded&#34; target=&#34;_blank&#34;&gt;substance PBR guide&lt;/a&gt; &lt;a href=&#34;http://web.archive.org/web/20180320130812/https://www.allegorithmic.com/blog/pbr-guide-revised-and-expanded&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;updated version of the guide in two parts &lt;a href=&#34;https://academy.allegorithmic.com/courses/b6377358ad36c444f45e2deaa0626e65&#34; target=&#34;_blank&#34;&gt;1&lt;/a&gt;, &lt;a href=&#34;https://academy.allegorithmic.com/courses/05171e19aa8dc19421385fd9bb9e016e&#34; target=&#34;_blank&#34;&gt;2&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;http://cbloomrants.blogspot.ca/2018/03/improving-compression-of-block.html?m=1&#34; target=&#34;_blank&#34;&gt;Improving the compression of block-compressed textures Revisited&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20180402191459/http://cbloomrants.blogspot.ca/2018/03/improving-compression-of-block.html?m=1&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;comparison of crunch (unity improved version) with DDS + general purpose compressors&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://gpuopen.com/v-ez-brings-easy-mode-vulkan/&#34; target=&#34;_blank&#34;&gt;V-EZ brings “Easy Mode” to Vulkan&lt;/a&gt; &lt;a href=&#34;http://web.archive.org/web/20180331153811/https://gpuopen.com/v-ez-brings-easy-mode-vulkan/&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;abstraction layer on-top of vulkan&lt;/li&gt;
&lt;li&gt;implements automatic render barrier management, descriptor pools/sets, memory management, render passes, etc.&lt;/li&gt;
&lt;li&gt;aimed at CAD software, not games&lt;/li&gt;
&lt;li&gt;not open source at this point&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://ronja-tutorials.tumblr.com/post/172080069592/hlsl-basics&#34; target=&#34;_blank&#34;&gt;HLSL Basics&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20180402191532/https://ronja-tutorials.tumblr.com/post/172080069592/hlsl-basics&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;set of lessons explaining shader basics with unity&lt;/li&gt;
&lt;li&gt;how shaders are integrated into the unity pipeline&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;http://www.realtimerendering.com/blog/ray-tracing-at-gdc/&#34; target=&#34;_blank&#34;&gt;Ray Tracing at GDC&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20180402191547/http://www.realtimerendering.com/blog/ray-tracing-at-gdc/&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;summary of available ray tracing articles&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://blogs.msdn.microsoft.com/directx/2018/03/19/announcing-microsoft-directx-raytracing/&#34; target=&#34;_blank&#34;&gt;Announcing Microsoft DirectX Raytracing!&lt;/a&gt; &lt;a href=&#34;http://web.archive.org/web/20180325225149/https://blogs.msdn.microsoft.com/directx/2018/03/19/announcing-microsoft-directx-raytracing/&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;overview of DirectX raytracing api&lt;/li&gt;
&lt;li&gt;discussion of design decisions&lt;/li&gt;
&lt;li&gt;future direction&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://blogs.msdn.microsoft.com/pix/2018/03/19/pix-1803-16-raytracing-directx-raytracing-support/&#34; target=&#34;_blank&#34;&gt;PIX 1803.16-raytracing – DirectX Raytracing support&lt;/a&gt; &lt;a href=&#34;http://web.archive.org/web/20180319230100/https://blogs.msdn.microsoft.com/pix/2018/03/19/pix-1803-16-raytracing-directx-raytracing-support/&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;pix supports DirectX Raytracing (DXR) API calls&lt;/li&gt;
&lt;li&gt;shows details about resources&lt;/li&gt;
&lt;li&gt;visualization of acceleration structure&lt;/li&gt;
&lt;li&gt;showcase of demos that support DXR&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://devblogs.nvidia.com/introduction-nvidia-rtx-directx-raytracing/&#34; target=&#34;_blank&#34;&gt;Introduction to NVIDIA RTX and DirectX Raytracing&lt;/a&gt; &lt;a href=&#34;http://web.archive.org/web/20180330072238/https://devblogs.nvidia.com/introduction-nvidia-rtx-directx-raytracing/&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;more in-depth explanation of how the DXR API work&lt;/li&gt;
&lt;li&gt;ray generation -&amp;gt; intersection / any hit -&amp;gt; closest hit / miss&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://blog.demofox.org/2018/03/24/an-idea-raytracing-lookup-tables/&#34; target=&#34;_blank&#34;&gt;An Idea: Raytracing Lookup Tables&lt;/a&gt; &lt;a href=&#34;http://web.archive.org/web/20180324230707/https://blog.demofox.org/2018/03/24/an-idea-raytracing-lookup-tables/&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;instead of using textures use adaptive-meshes to represent data where required, raytrace against that mesh to get the lookup value&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://blogs.msdn.microsoft.com/pix/2018/03/27/pix-1803-25/&#34; target=&#34;_blank&#34;&gt;PIX 1803.25 – GPU Occupancy, CPU sampling, automatic shader PDB resolution, and more&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20180402191708/https://blogs.msdn.microsoft.com/pix/2018/03/27/pix-1803-25/&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;allows to see occupancy broken down into different render pipeline stages (NVidia only for now)&lt;/li&gt;
&lt;li&gt;improved CPU profiling&lt;/li&gt;
&lt;li&gt;more memory usage information (command allocators, PSO, descriptor heaps)&lt;/li&gt;
&lt;li&gt;geometry shader and DXR debug support&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;http://aras-p.info/blog/2018/03/28/Daily-Pathtracer-Part-0-Intro/&#34; target=&#34;_blank&#34;&gt;Daily Pathtracer Part 0: Intro&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20180402191726/http://aras-p.info/blog/2018/03/28/Daily-Pathtracer-Part-0-Intro/&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;series about small path tracing experiment with C++, C# and unity C# burst&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://medium.com/@jcowles/gpu-ray-tracing-in-one-weekend-3e7d874b3b0f&#34; target=&#34;_blank&#34;&gt;GPU Ray Tracing in One Weekend&lt;/a&gt; &lt;a href=&#34;http://web.archive.org/web/20180331230152/https://medium.com/@jcowles/gpu-ray-tracing-in-one-weekend-3e7d874b3b0f&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;unity implementation of a compute shader ray tracer&lt;/li&gt;
&lt;li&gt;random points on sphere stored in texture&lt;/li&gt;
&lt;li&gt;ray scheduler, store persistent ray state in gpu buffer and iterate, no recursion&lt;/li&gt;
&lt;li&gt;depth of field&lt;/li&gt;
&lt;li&gt;scene change handling&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://render.otoy.com/forum/viewtopic.php?f=33&amp;amp;t=66013&#34; target=&#34;_blank&#34;&gt;Hello World: OctaneRender 4 is here&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20180402191756/https://render.otoy.com/forum/viewtopic.php?f=33&amp;amp;t=66013&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;free option for single PC available&lt;/li&gt;
&lt;li&gt;Brigade Engine integration (real time path tracing engine)&lt;/li&gt;
&lt;li&gt;many speed improvements&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;http://www.realtimerendering.com/blog/ray-tracing-gems-book-call-for-participation/&#34; target=&#34;_blank&#34;&gt;“Ray Tracing Gems” Book Call for Participation&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20180402191756/https://render.otoy.com/forum/viewtopic.php?f=33&amp;amp;t=66013&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;new book, call for authors&lt;/li&gt;
&lt;li&gt;small overview of raytracing history&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 31 — March 18, 2018</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-31/</link>
      <pubDate>Sun, 18 Mar 2018 12:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-31/</guid>
      <description>&lt;hr /&gt;

&lt;!--End mc_embed_signup--&gt;

&lt;p&gt;This week I am at GDC, therefore there will be no newsletter at the end of the week.
If you would like to meet during the week, send me an email or message me on twitter. DMs are open.&lt;/p&gt;

&lt;p&gt;The series will return on April 2nd.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://github.com/zeux/volk&#34; target=&#34;_blank&#34;&gt;Meta loader for Vulkan API&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;dynamically loads vulkan entry points, bypassing the vulkan loader for increased calling performance&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://timothylottes.github.io/20180316.html&#34; target=&#34;_blank&#34;&gt;Good Vulkan Binding&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20180319143646/https://timothylottes.github.io/20180316.html&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;suggests using dynamic SSBO on AMD&lt;/li&gt;
&lt;li&gt;on NVidia: data smaller then 64 KiB use UBO, otherwise SSBO&lt;/li&gt;
&lt;li&gt;then alias use binding aliasing to access as different types&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://www.impulsegear.com/a-look-inside-farpoints-rendering-techniques-for-vr&#34; target=&#34;_blank&#34;&gt;A Look Inside Farpoint’s Rendering Techniques for VR&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20180319143709/https://www.impulsegear.com/a-look-inside-farpoints-rendering-techniques-for-vr&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;MSAA didn&amp;rsquo;t give the image quality required&lt;/li&gt;
&lt;li&gt;used oculus UE4 renderer with dynamic resolution to enable super sampling when possible&lt;/li&gt;
&lt;li&gt;occlusion query is done using a merged depth buffer from the left and right eye&lt;/li&gt;
&lt;li&gt;applies a mip bias based on the distance to the center of the screen&lt;/li&gt;
&lt;li&gt;experiment with world space cone tracing&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://medium.com/@jcowles/performance-profiling-d5f44b4b6f33&#34; target=&#34;_blank&#34;&gt;Performance Profiling&lt;/a&gt; &lt;a href=&#34;http://web.archive.org/web/20180319120354/https://medium.com/@jcowles/performance-profiling-d5f44b4b6f33&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;what to optimize for, selecting appropriate metrics&lt;/li&gt;
&lt;li&gt;tips on how to make tests reproduceable&lt;/li&gt;
&lt;li&gt;considerations for data recording to validate assumptions&lt;/li&gt;
&lt;li&gt;what data to record and how to present the results&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://www.khronos.org/blog/vulkan-subgroup-tutorial&#34; target=&#34;_blank&#34;&gt;Vulkan Subgroup Tutorial&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20180319144416/https://www.khronos.org/blog/vulkan-subgroup-tutorial&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;what subgroups are&lt;/li&gt;
&lt;li&gt;how to use subgroup operations efficiently&lt;/li&gt;
&lt;li&gt;examples of use-cases&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://drive.google.com/file/d/1fmceYuM5J2s8puNHZ9o4OF3YjqzIvmRR/view&#34; target=&#34;_blank&#34;&gt; Horizon-Based Indirect Lighting (HBIL) &lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;screen space indirect lighting technique&lt;/li&gt;
&lt;li&gt;based on the ideas of horizon based ambient occlusion (HBAO)&lt;/li&gt;
&lt;li&gt;discussion of improvements to HBAO&lt;/li&gt;
&lt;li&gt;how to integrate it into a rendering pipeline&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;http://www.ctrl-alt-test.fr/?p=463&#34; target=&#34;_blank&#34;&gt; A dive into the making of Immersion &lt;/a&gt; &lt;a href=&#34;http://web.archive.org/web/20180319131928/http://www.ctrl-alt-test.fr/?p=463&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;water reflection ( planar reflection with blur )&lt;/li&gt;
&lt;li&gt;volumetric lighting

&lt;ul&gt;
&lt;li&gt;algithmn description including light absorption&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;vegetation and particles&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;http://blog.camposanto.com/post/171934927979/hi-im-matt-wilde-an-old-man-from-the-north-of&#34; target=&#34;_blank&#34;&gt;valley of gods - water&lt;/a&gt; &lt;a href=&#34;http://web.archive.org/web/20180317211428/http://blog.camposanto.com/post/171934927979/hi-im-matt-wilde-an-old-man-from-the-north-of&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;GPU based shallow water simulation&lt;/li&gt;
&lt;li&gt;signed distance field for collision with the geometry&lt;/li&gt;
&lt;li&gt;breakdown of the different visual components&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;http://blog.ruofeidu.com/estimated-cost-per-atom-function-real-time-shaders-gpu/&#34; target=&#34;_blank&#34;&gt; Estimated Cost of Per Atom Function in Real-time Shaders on the GPU &lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20180319143954/http://blog.ruofeidu.com/estimated-cost-per-atom-function-real-time-shaders-gpu/&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;gives rough estimates of how expensive GPU instructions are relative to each other&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://www.unrealengine.com/en-US/blog/unreal-engine-4-19-released&#34; target=&#34;_blank&#34;&gt;Unreal Engine 4.19 Released!&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20180319143610/https://www.unrealengine.com/en-US/blog/unreal-engine-4-19-released&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;new temporal up sampling method&lt;/li&gt;
&lt;li&gt;dynamic resolution&lt;/li&gt;
&lt;li&gt;all lights use physically based units&lt;/li&gt;
&lt;li&gt;terrain LOD selection is now screen size based instead of distance based&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://blogs.unity3d.com/2018/03/16/the-high-definition-render-pipeline-focused-on-visual-quality/&#34; target=&#34;_blank&#34;&gt;The High Definition Render Pipeline: Focused on visual quality&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20180319144158/https://blogs.unity3d.com/2018/03/16/the-high-definition-render-pipeline-focused-on-visual-quality/&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;unified lighting across all render passes (deferred, forward, &amp;hellip;.)&lt;/li&gt;
&lt;li&gt;build for high end PCs and consoles&lt;/li&gt;
&lt;li&gt;new area lights, sun based on physical units&lt;/li&gt;
&lt;li&gt;overview of new BRDF&lt;/li&gt;
&lt;li&gt;decals on opaque and transparent objects&lt;/li&gt;
&lt;li&gt;many new debug features&lt;/li&gt;
&lt;li&gt;volume based system for scene settings such as sky, shadows, &amp;hellip;&lt;/li&gt;
&lt;/ul&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 30 — March 11, 2018</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-30/</link>
      <pubDate>Sun, 11 Mar 2018 12:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-30/</guid>
      <description>&lt;hr /&gt;

&lt;!--End mc_embed_signup--&gt;

&lt;p&gt;&lt;a href=&#34;https://interplayoflight.wordpress.com/2018/03/05/porting-gpu-driven-occlusion-culling-to-bgfx/&#34; target=&#34;_blank&#34;&gt;Porting GPU driven occlusion culling to bgfx&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20180312003030/https://interplayoflight.wordpress.com/2018/03/05/porting-gpu-driven-occlusion-culling-to-bgfx/&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;breakdown of how a gpu driven pipeline can be implemented with bgfx&lt;/li&gt;
&lt;li&gt;indirect buffer writing from the CPU not supported so using regular instancing instead&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://mynameismjp.wordpress.com/2018/03/06/breaking-down-barriers-part-1-whats-a-barrier/&#34; target=&#34;_blank&#34;&gt;Breaking down barriers – part 1: what’s a barrier?&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20180312003104/https://mynameismjp.wordpress.com/2018/03/06/breaking-down-barriers-part-1-whats-a-barrier/&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;look at different meaning of barriers&lt;/li&gt;
&lt;li&gt;on GPUs it includes synchronization, cache management, decompression&lt;/li&gt;
&lt;li&gt;description of how it works on the hardware level&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;http://blog.camposanto.com/post/171638832704/zora-is-one-of-the-two-main-characters-in-our&#34; target=&#34;_blank&#34;&gt;Hair in In the Valley of Gods&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20180312102025/http://blog.camposanto.com/post/171638832704/zora-is-one-of-the-two-main-characters-in-our&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;how the stylized hair from Zora is being created&lt;/li&gt;
&lt;li&gt;based on hair cards&lt;/li&gt;
&lt;li&gt;for the trailer the hair was rigged and animated&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://blogs.msdn.microsoft.com/marcelolr/2018/03/06/using-the-github-dxcompiler-dll/&#34; target=&#34;_blank&#34;&gt;Using the GitHub dxcompiler.dll&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20180312003125/https://blogs.msdn.microsoft.com/marcelolr/2018/03/06/using-the-github-dxcompiler-dll/&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;when using custom dxcompiler.dll to build shaders they will be unsigned&lt;/li&gt;
&lt;li&gt;can only be used when windows developer mode is active and d3d12 experimental mode is enabled&lt;/li&gt;
&lt;li&gt;when the official dxil.dll can be loaded by the compiler the shader will be signed&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://www.khronos.org/news/press/khronos-group-releases-vulkan-1-1&#34; target=&#34;_blank&#34;&gt;Khronos Group Releases Vulkan 1.1&lt;/a&gt; &lt;a href=&#34;http://web.archive.org/web/20180310010501/https://www.khronos.org/news/press/khronos-group-releases-vulkan-1-1&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Subgroup Operations: operations that allow communications between parallel gpu work&lt;/li&gt;
&lt;li&gt;extension integrated into 1.1 core specification&lt;/li&gt;
&lt;li&gt;multi-gpu support, cross-api sharing, 16-bit data types, hlsl memory data layout&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://schuttejoe.github.io/post/ggximportancesamplingpart1/&#34; target=&#34;_blank&#34;&gt;Importance Sampling techniques for GGX with Smith Masking-Shadowing: Part 1&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20180312003155/https://schuttejoe.github.io/post/ggximportancesamplingpart1/&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;mathematical derivation of importance sampling using the CDF (Cumulative Distribution Function)&lt;/li&gt;
&lt;li&gt;including source code&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://schuttejoe.github.io/post/ggximportancesamplingpart2/&#34; target=&#34;_blank&#34;&gt;Importance Sampling techniques for GGX with Smith Masking-Shadowing: Part 2&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20180312003207/https://schuttejoe.github.io/post/ggximportancesamplingpart2/&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;description of the flaws of solution from part 1&lt;/li&gt;
&lt;li&gt;explanation of a better importance sampling using the distribution of visible normals&lt;/li&gt;
&lt;li&gt;source code included&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://blog.demofox.org/2018/03/10/dont-convert-srgb-u8-to-linear-u8/&#34; target=&#34;_blank&#34;&gt;Don’t Convert sRGB U8 to Linear U8!&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20180312003224/https://blog.demofox.org/2018/03/10/dont-convert-srgb-u8-to-linear-u8/&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;visualizing loss of precision between storing color data in 8 bits per channel using linear vs sRGB encoding&lt;/li&gt;
&lt;li&gt;difference in lerp behaviour between sRGB and linear color space&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://anteru.net/blog/2018/codegen-for-fast-vulkan/&#34; target=&#34;_blank&#34;&gt;Codegen for fast Vulkan&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20180312003238/https://anteru.net/blog/2018/codegen-for-fast-vulkan/&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;for better calling performance it&amp;rsquo;s recommended to query the entry points directly instead of going through the vulkan loader&lt;/li&gt;
&lt;li&gt;article shows how to parse the vulkan xml specification with python to automate the generation of the loading code&lt;/li&gt;
&lt;/ul&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 29 — March 04, 2018</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-29/</link>
      <pubDate>Sun, 04 Mar 2018 12:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-29/</guid>
      <description>&lt;hr /&gt;

&lt;!--End mc_embed_signup--&gt;

&lt;p&gt;&lt;a href=&#34;http://pharr.org/matt/blog/2018/03/02/rendering-in-camera-space.html&#34; target=&#34;_blank&#34;&gt;Rendering in Camera Space(ish)&lt;/a&gt; &lt;a href=&#34;http://web.archive.org/web/20180304031506/http://pharr.org/matt/blog/2018/03/02/rendering-in-camera-space.html&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;shows effects of floating point precision loss far away from the origin&lt;/li&gt;
&lt;li&gt;transforms rendering to be relative to the camera position in the world instead of the origin of the world&lt;/li&gt;
&lt;li&gt;this makes rendering precision independent from the position in the world&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;http://www.yosoygames.com.ar/wp/2018/03/vertex-formats-part-1-compression/&#34; target=&#34;_blank&#34;&gt;Vertex Formats Part 1: Compression&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20180304214334/http://www.yosoygames.com.ar/wp/2018/03/vertex-formats-part-1-compression/&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;overview of pros/cons for 16 bit position encoding formats&lt;/li&gt;
&lt;li&gt;considerations for UVs&lt;/li&gt;
&lt;li&gt;storing normals with &lt;a href=&#34;http://www.crytek.com/cryengine/presentations/spherical-skinning-with-dual-quaternions-and-qtangents&#34; target=&#34;_blank&#34;&gt;QTangents&lt;/a&gt; encoding&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;http://www.yosoygames.com.ar/wp/2018/03/vertex-formats-part-2-fetch-vs-pull/&#34; target=&#34;_blank&#34;&gt;Vertex Formats Part 2: Fetch vs Pull&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20180304214358/http://www.yosoygames.com.ar/wp/2018/03/vertex-formats-part-2-fetch-vs-pull/&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;description of pull and fetch model&lt;/li&gt;
&lt;li&gt;extra flexibility when using the fetch model&lt;/li&gt;
&lt;li&gt;performance implications on different hardware architectures&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://0fps.net/2018/03/03/a-level-of-detail-method-for-blocky-voxels/&#34; target=&#34;_blank&#34;&gt;A level of detail method for blocky voxels&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/*/https://0fps.net/2018/03/03/a-level-of-detail-method-for-blocky-voxels/&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;small overview of Progressively Ordered Primitive (POP) buffer&lt;/li&gt;
&lt;li&gt;a way to encode LODs for models&lt;/li&gt;
&lt;li&gt;how to deal with LOD transition boundaries&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://www.cginternals.com/en/blog/2018-01-10-screen-aligned-quads-and-triangles.html&#34; target=&#34;_blank&#34;&gt;Screen-filling Rasterization using Screen-aligned Quads and Triangles&lt;/a&gt; &lt;a href=&#34;http://web.archive.org/web/20180228031819/https://www.cginternals.com/en/blog/2018-01-10-screen-aligned-quads-and-triangles.html&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;comparison of 3 techniques (quad, triangle, nvidia fill_rectangle extension)&lt;/li&gt;
&lt;li&gt;explanation of the problems with the quad approach&lt;/li&gt;
&lt;li&gt;why the triangle or extension approach should be preferred&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://www.anandtech.com/show/12465/khronos-group-extends-vulkan-portability-with-opensource&#34; target=&#34;_blank&#34;&gt;Bringing Vulkan to Apple&amp;rsquo;s Platforms: Khronos Group Announces Open Source MoltenVK 1.0 &amp;amp; SDKs&lt;/a&gt; &lt;a href=&#34;http://web.archive.org/web/20180226184027/https://www.anandtech.com/show/12465/khronos-group-extends-vulkan-portability-with-opensource&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;MoltenVK is open source, collaboration with valve&lt;/li&gt;
&lt;li&gt;a library for translating Vulkan to Apple’s Metal&lt;/li&gt;
&lt;li&gt;DOTA 2 is using this layer to run on macOS&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://github.com/KhronosGroup/MoltenVK&#34; target=&#34;_blank&#34;&gt;MoltenVK&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;open source implementation of vulkan using metal on iOS and macOS&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://www.saschawillems.de/?p=2778&#34; target=&#34;_blank&#34;&gt;Conservative rasterization in Vulkan&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20180304214430/https://www.saschawillems.de/?p=2778&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;example how to use conservative rasterization extension with vulkan&lt;/li&gt;
&lt;li&gt;shows results for a triangle render with/without the extension&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;http://blog.mecheye.net/2018/03/deconstructing-the-water-effect-in-super-mario-sunshine/&#34; target=&#34;_blank&#34;&gt;Deconstructing the water effect in Super Mario Sunshine&lt;/a&gt; &lt;a href=&#34;http://web.archive.org/web/20180304054516/http://blog.mecheye.net/2018/03/deconstructing-the-water-effect-in-super-mario-sunshine/&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;how the water effect was implemented in the fixed function hardware of the GameCube&lt;/li&gt;
&lt;li&gt;based on scrolling textures&lt;/li&gt;
&lt;li&gt;each mip level is manually created to approximate separate effects based on camera distance&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;http://3dgraphics.guru/publication/real-time-iridescenet-scratches/&#34; target=&#34;_blank&#34;&gt;Real-Time Rendering of Wave-Optical Effects on Scratched Surfaces&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20180304063057/http://3dgraphics.guru/publication/real-time-iridescenet-scratches/&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;model to simulate microscopic scratches on metal&lt;/li&gt;
&lt;li&gt;for spherical and polygonal light sources&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;http://www.gradientspace.com/tutorials/2018/2/20/implicit-surface-modeling&#34; target=&#34;_blank&#34;&gt;Implicit Surface Modeling&lt;/a&gt; &lt;a href=&#34;http://web.archive.org/web/20180227044152/http://www.gradientspace.com/tutorials/2018/2/20/implicit-surface-modeling&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;explanation of implicit surfaces using signed distance fields&lt;/li&gt;
&lt;li&gt;how to apply operators to combine multiple shapes&lt;/li&gt;
&lt;li&gt;how to use the techniques with the &lt;a href=&#34;https://github.com/gradientspace/geometry3Sharp&#34; target=&#34;_blank&#34;&gt;C# - geometry3Sharp&lt;/a&gt; library&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;http://catlikecoding.com/unity/tutorials/advanced-rendering/depth-of-field/&#34; target=&#34;_blank&#34;&gt;Depth of Field - Unity Tutorial&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20180304063232/http://catlikecoding.com/unity/tutorials/advanced-rendering/depth-of-field/&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;in-depth tutorial&lt;/li&gt;
&lt;li&gt;explanation of what depth of field is&lt;/li&gt;
&lt;li&gt;different bokeh effects&lt;/li&gt;
&lt;li&gt;simulating camera focus, separating background and foreground objects&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://www.raywenderlich.com/186872/unreal-engine-4-cel-shading-tutorial&#34; target=&#34;_blank&#34;&gt;Unreal Engine 4 Cel Shading Tutorial&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20180304063216/https://www.raywenderlich.com/186872/unreal-engine-4-cel-shading-tutorial&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;cel shading uses multiple bands of color instead of a continuous gradient&lt;/li&gt;
&lt;li&gt;effect based on the lighting information in a post processing shader&lt;/li&gt;
&lt;li&gt;using a lookup table to control the amount of bands&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://github.com/embree/embree/releases/tag/v3.0.0&#34; target=&#34;_blank&#34;&gt;Embreee 3.0&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;new and more flexible API, not backwards compatible&lt;/li&gt;
&lt;li&gt;reduced memory usage&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 28 — February 25, 2018</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-28/</link>
      <pubDate>Sun, 25 Feb 2018 12:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-28/</guid>
      <description>&lt;hr /&gt;

&lt;!--End mc_embed_signup--&gt;

&lt;p&gt;&lt;a href=&#34;https://www.youtube.com/watch?v=eOCQfxRQ2pY&amp;amp;feature=youtu.be&amp;amp;a=&#34; target=&#34;_blank&#34;&gt;Youtube - Wolfenstein 3D&amp;rsquo;s map renderer&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;in-depth breakdown of how the Wolfenstein 3D renderer works&lt;/li&gt;
&lt;li&gt;explanation of the ray-casting logic&lt;/li&gt;
&lt;li&gt;derivation of the mathematics found in the code&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://gist.github.com/sebbbi/a599d7896aa3ad36642145d54459f32b&#34; target=&#34;_blank&#34;&gt;Fast way to render lots of spheres&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20180225230423/https://gist.github.com/sebbbi/a599d7896aa3ad36642145d54459f32b&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;spheres drawn in pixel shader using ray-sphere intersection test&lt;/li&gt;
&lt;li&gt;vertex shader generates screen space bounding boxes from sphere center + radius&lt;/li&gt;
&lt;li&gt;allows debug spheres to be generated from other GPU kernels&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://twitter.com/maxliani/status/966354624595640321?s=09&#34; target=&#34;_blank&#34;&gt;Twitter - Ptex memory access pattern&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20180225230440/https://twitter.com/maxliani/status/966354624595640321?s=09&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;problems with Ptex in relation to access patterns and filtering&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://0fps.net/2018/02/21/voxel-lighting/&#34; target=&#34;_blank&#34;&gt;Voxel lighting&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20180225230458/https://0fps.net/2018/02/21/voxel-lighting/&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;flood fill lighting&lt;/li&gt;
&lt;li&gt;store light information for 5 directions and store propagation information for each&lt;/li&gt;
&lt;li&gt;how to use word level parallelism to speed up propagation&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://www.youtube.com/watch?time_continue=10&amp;amp;v=xq6bMeqG07Q&#34; target=&#34;_blank&#34;&gt;How-to: Debugging a non-visible model in Vulkan using RenderDoc&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;how to investigate constant buffer data&lt;/li&gt;
&lt;li&gt;look at vertex shader input / output&lt;/li&gt;
&lt;li&gt;detect invalid camera position from vertex output&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://www.lunarg.com/vulkan-assistant-layer-highlights-best-practices/&#34; target=&#34;_blank&#34;&gt;New Vulkan Assistant Layer Highlights Development Best Practices&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20180225230633/https://www.lunarg.com/vulkan-assistant-layer-highlights-best-practices/&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;intended to highlight potential performance issues, questionable usage patterns, common mistakes&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;http://astralcode.blogspot.ca/2018/02/reverse-engineering-rendering-of.html&#34; target=&#34;_blank&#34;&gt;Reverse engineering the rendering of The Witcher 3, part 4 - vignette&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20180225230703/http://astralcode.blogspot.ca/2018/02/reverse-engineering-rendering-of.html&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;description of controls&lt;/li&gt;
&lt;li&gt;additional mask texture allows variation across the screen&lt;/li&gt;
&lt;li&gt;reverse engineered HLSL code&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://www.allegorithmic.com/blog/substance-day-gdc-2018&#34; target=&#34;_blank&#34;&gt;Substance day at GDC 2018&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;on Tuesday, March 20th there will be a substance day at GDC&lt;/li&gt;
&lt;li&gt;open for expo pass and above&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://gpuopen.com/gdc-2018-presentations/&#34; target=&#34;_blank&#34;&gt;GDC 2018 Presentations&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;list of AMD sessions at GDC&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 27 — February 18, 2018</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-27/</link>
      <pubDate>Sun, 18 Feb 2018 12:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-27/</guid>
      <description>&lt;hr /&gt;

&lt;!--End mc_embed_signup--&gt;

&lt;p&gt;&lt;a href=&#34;https://timothylottes.github.io/20180215.html&#34; target=&#34;_blank&#34;&gt;Descriptor Pool Challenges in Vulkan&lt;/a&gt; &lt;a href=&#34;https://timothylottes.github.io/20180215.html&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;looking at the descriptor pool problem with multiple worker threads&lt;/li&gt;
&lt;li&gt;variable workload makes it difficult to correctly size the pools&lt;/li&gt;
&lt;li&gt;discussions of workarounds&lt;/li&gt;
&lt;li&gt;proposal of a flag for lock-free descriptor allocation

&lt;ul&gt;
&lt;li&gt;looking at the AMD driver code for viability&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;http://ourmachinery.com/post/the-machinery-shader-system-part-1/&#34; target=&#34;_blank&#34;&gt;The Machinery Shader System (part 1)&lt;/a&gt; &lt;a href=&#34;http://web.archive.org/web/20180213044543/http://ourmachinery.com/post/the-machinery-shader-system-part-1/&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;base shader system includes

&lt;ul&gt;
&lt;li&gt;authoring shaders and render states&lt;/li&gt;
&lt;li&gt;system for loading/reloading shaders&lt;/li&gt;
&lt;li&gt;passing constants and resources from game code to the shaders&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;common problems with shader systems&lt;/li&gt;
&lt;li&gt;design goals for the new system&lt;/li&gt;
&lt;li&gt;walkthrough of the shader compiler interface&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://www.resetera.com/threads/hdr-games-analysed.23587/&#34; target=&#34;_blank&#34;&gt;HDR games analysed&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20180216221023/https://www.resetera.com/threads/hdr-games-analysed.23587/&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;analyzed HDR screenshots from Xbox one&lt;/li&gt;
&lt;li&gt;luminance ranges of different games visualized as heat maps&lt;/li&gt;
&lt;li&gt;showcases HDR settings offered in different games&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;http://jcgt.org/published/0007/01/01/&#34; target=&#34;_blank&#34;&gt;Efficient Rendering of Linear Brush Strokes&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20180214191320/http://jcgt.org/published/0007/01/01/paper.pdf&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;represents the stroke as a circle continuously sliding along the stroke axis&lt;/li&gt;
&lt;li&gt;stamp function is being numerically integrated per pixel, allows rendering in a single pass&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;http://apoorvaj.io/efficient-rendering-of-linear-brush-strokes.html&#34; target=&#34;_blank&#34;&gt;Efficient Rendering of Linear Brush Strokes - my graphics research paper explained&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20180214191405/http://apoorvaj.io/efficient-rendering-of-linear-brush-strokes.html&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;additional information and simpler explanation of the paper&lt;/li&gt;
&lt;li&gt;more details about the problems of modeling the brush stroke discreetly&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://github.com/acdemiralp/fg&#34; target=&#34;_blank&#34;&gt;Framegraph - example implementation&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;implementation of rendering pipeline as graph of render tasks and resources&lt;/li&gt;
&lt;li&gt;based on the frostbite frame graph design shown at &lt;a href=&#34;https://www.gdcvault.com/play/1024612/FrameGraph-Extensible-Rendering-Architecture-in&#34; target=&#34;_blank&#34;&gt;GDC 2017&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;http://pcwalton.github.io/2018/02/14/determining-triangle-geometry-in-fragment-shaders.html&#34; target=&#34;_blank&#34;&gt;Determining Triangle Geometry in Fragment Shaders&lt;/a&gt; &lt;a href=&#34;http://web.archive.org/web/20180215194638/http://pcwalton.github.io/2018/02/14/determining-triangle-geometry-in-fragment-shaders.html&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;how to calculate the screen space vertex positions in a pixel shader&lt;/li&gt;
&lt;li&gt;using the standard derivative functions dFdx and dFdy&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://www.khronos.org/news/press/khronos-announces-gltf-geometry-compression-extension-google-draco&#34; target=&#34;_blank&#34;&gt;Khronos Announces glTF Geometry Compression Extension Using Google Draco Technology&lt;/a&gt; &lt;a href=&#34;http://web.archive.org/web/20180215150154/https://www.khronos.org/news/press/khronos-announces-gltf-geometry-compression-extension-google-draco&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;extension that allows storage of compressed geometry within gltf files&lt;/li&gt;
&lt;li&gt;up to 12x size reduction&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;http://acescentral.com/t/aces-retrospective-and-enhancements/884/3&#34; target=&#34;_blank&#34;&gt;ACES Leadership response to “ACES – Retrospectives and Enhancements”&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;responds of the ACEs leadership to the &lt;a href=&#34;https://github.com/colour-science/aces-retrospective-and-enhancements/blob/master/aces_rae_2017.pdf&#34; target=&#34;_blank&#34;&gt;ACES – Retrospectives and Enhancements&lt;/a&gt; document&lt;/li&gt;
&lt;li&gt;&amp;ldquo;The broadened scope of ACES beyond its original context will be accounted for with Video Games being a strong adoption driver to be reckoned with&amp;rdquo;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://developer.amd.com/amd-uprof/&#34; target=&#34;_blank&#34;&gt;AMD μProf&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;AMD CPU profiler&lt;/li&gt;
&lt;li&gt;new GUI&lt;/li&gt;
&lt;li&gt;support for Ryzen processors&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://github.com/ConfettiFX/The-Forge&#34; target=&#34;_blank&#34;&gt;The Forge Cross-Platform Rendering Framework - 1.03&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;added first iOS support&lt;/li&gt;
&lt;li&gt;many updates and fixes&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 26 — February 11, 2018</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-26/</link>
      <pubDate>Sun, 11 Feb 2018 12:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-26/</guid>
      <description>&lt;hr /&gt;

&lt;!--End mc_embed_signup--&gt;

&lt;p&gt;&lt;a href=&#34;https://devblogs.nvidia.com/the-peak-performance-analysis-method-for-optimizing-any-gpu-workload/&#34; target=&#34;_blank&#34;&gt;The Peak-Performance Analysis Method for Optimizing Any GPU Workload&lt;/a&gt; &lt;a href=&#34;http://web.archive.org/web/20180207042627/https://devblogs.nvidia.com/the-peak-performance-analysis-method-for-optimizing-any-gpu-workload/&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;how to use GPU counters to detect interactions between different hardware blocks&lt;/li&gt;
&lt;li&gt;discussion of case studies&lt;/li&gt;
&lt;li&gt;walkthrough of analysis, code examples to show optimizations and discussion of results&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://github.com/dtrebilco/PreMulAlpha&#34; target=&#34;_blank&#34;&gt;Pre-Multiplied Alpha&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20180211164530/https://github.com/dtrebilco/PreMulAlpha&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;reduces color bleeding in alpha blending&lt;/li&gt;
&lt;li&gt;can represent Additive, Alpha Blend, and Multiply blend modes&lt;/li&gt;
&lt;li&gt;can vary the blend mode per-pixel, can be used to pre-combine effects&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://twitter.com/rygorous/status/962473993109258240&#34; target=&#34;_blank&#34;&gt;SRV handling in D3D12 - twitter thread&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20180211164250/https://twitter.com/rygorous/status/962473993109258240&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;how to design for descriptor tables in D3D12&lt;/li&gt;
&lt;li&gt;goal is to only set a few root constants to point to the correct data&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://timothylottes.github.io/20180206.html&#34; target=&#34;_blank&#34;&gt;Vulkan ASKs : Swapchain&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20180211204309/https://timothylottes.github.io/20180206.html&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;proposed vulkan extensions to improve swapchain and present interactions&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://engineering.riotgames.com/news/profiling-measurement-and-analysis&#34; target=&#34;_blank&#34;&gt;Profiling: Measurement and analysis&lt;/a&gt; &lt;a href=&#34;http://web.archive.org/web/20180206220201/https://engineering.riotgames.com/news/profiling-measurement-and-analysis&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;overview of profiler types&lt;/li&gt;
&lt;li&gt;visualization of the memory layout and how it causes performance problems&lt;/li&gt;
&lt;li&gt;how to detect cache misses with CodeXL&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;http://astralcode.blogspot.ca/2018/02/hlslexplorer-is-out.html&#34; target=&#34;_blank&#34;&gt;HLSLexplorer&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20180211204234/http://astralcode.blogspot.ca/2018/02/hlslexplorer-is-out.html&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;small tool that takes HLSL code, passes it to the shader compiler and shows the d3d11 shader disassembler output&lt;/li&gt;
&lt;li&gt;allows to select compiler flags and see the effects on the assembly&lt;/li&gt;
&lt;li&gt;similar to &lt;a href=&#34;https://github.com/jbarczak/Pyramid&#34; target=&#34;_blank&#34;&gt;Pyramid&lt;/a&gt;, allows to see the native GPU disassembly as well&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://hal.archives-ouvertes.fr/hal-01702000&#34; target=&#34;_blank&#34;&gt;A new microflake model with microscopic self-shadowing for accurate volume downsampling&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20180211164123/https://hal.archives-ouvertes.fr/hal-01702000&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;technique to preserve anisotropic attenuation and self shadowing when downsampling volume representations&lt;/li&gt;
&lt;li&gt;allows silhouettes of LODs to be better preserved&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://www.youtube.com/watch?v=qlyzo9ll9Vw&amp;amp;feature=youtu.be&#34; target=&#34;_blank&#34;&gt;Exploring the limits of real time rendering&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;showcase of a photogrammetry nature scene render in UE4&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 25 — February 4, 2018</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-25/</link>
      <pubDate>Sun, 04 Feb 2018 12:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-25/</guid>
      <description>&lt;hr /&gt;

&lt;!--End mc_embed_signup--&gt;

&lt;p&gt;&lt;a href=&#34;https://timothylottes.github.io/20180202.html&#34; target=&#34;_blank&#34;&gt;Optimized Swapchain in Vulkan&lt;/a&gt; &lt;a href=&#34;http://web.archive.org/web/20180203060107/https://timothylottes.github.io/20180202.html&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;discussion of different approaches, overview of strengths and weaknesses&lt;/li&gt;
&lt;li&gt;recommends splitting command buffers into two groups

&lt;ul&gt;
&lt;li&gt;pre-acquire (everything that doesn&amp;rsquo;t write into the swapchain)&lt;/li&gt;
&lt;li&gt;post-acquire (everything that writes into the swapchain)&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;allows better GPU utilization, execution of pre-acquire workload doesn&amp;rsquo;t need to stall waiting for the present&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://timothylottes.github.io/20180203.html&#34; target=&#34;_blank&#34;&gt;Optimized Swapchain in Vulkan II&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20180205004221/https://timothylottes.github.io/20180203.html&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;how to reduce input -&amp;gt; present latency further&lt;/li&gt;
&lt;li&gt;theoretical model to find a better method for dynamically adaptive workloads while minimizing input latency&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;http://kylehalladay.com/blog/tutorial/vulkan/2018/02/05/Bind-Once-Uniform-Data-Vulkan.html&#34; target=&#34;_blank&#34;&gt;A &amp;ldquo;Bind Once&amp;rdquo; Approach to Uniform Data&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20180205000102/http://kylehalladay.com/blog/tutorial/vulkan/2018/02/05/Bind-Once-Uniform-Data-Vulkan.html&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;how to use a single descriptor set for all uniform data&lt;/li&gt;
&lt;li&gt;uses a single uniform buffer object&lt;/li&gt;
&lt;li&gt;with fixed size uniform blocks, indexed using a per object push constant&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://turanszkij.wordpress.com/2018/02/03/thoughts-on-skinning-and-lds/&#34; target=&#34;_blank&#34;&gt;Thoughts on Skinning and LDS&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20180205002142/https://turanszkij.wordpress.com/2018/02/03/thoughts-on-skinning-and-lds/&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;each thread loads one skinning matrix into LDS (local data share)&lt;/li&gt;
&lt;li&gt;all further loads of skinning matrices are done from LDS instead&lt;/li&gt;
&lt;li&gt;discussion of LDS limits for thread occupancy&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;http://cgicoffee.com/blog/2018/01/unity-real-time-rendering-vs-offline-cgi&#34; target=&#34;_blank&#34;&gt;Unity and Unreal Engine: Real-time Rendering VS Traditional 3DCG Rendering Approach&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20180202195729/http://cgicoffee.com/blog/2018/01/unity-real-time-rendering-vs-offline-cgi&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;show what rendering techniques are available in unity / unreal&lt;/li&gt;
&lt;li&gt;how engines can be integrated into the art pipeline&lt;/li&gt;
&lt;li&gt;and be used to render the final movie&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://godotengine.org/article/godot-3-0-released&#34; target=&#34;_blank&#34;&gt;Godot 3.0 is out and ready for the big leagues&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;full range of Disney&amp;rsquo;s principled BSDF for physically-based rendering&lt;/li&gt;
&lt;li&gt;Global illumination&lt;/li&gt;
&lt;li&gt;new postprocessing options&lt;/li&gt;
&lt;li&gt;gpu based particles&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://lindseyreidblog.wordpress.com/2018/01/31/2d-reflective-water-shader-in-unity/&#34; target=&#34;_blank&#34;&gt;2D Reflective Water Shader in Unity&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20180202195957/https://lindseyreidblog.wordpress.com/2018/01/31/2d-reflective-water-shader-in-unity/&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;how the water reflection effect was setup in The Endless River (2018 Global Game Jam)&lt;/li&gt;
&lt;li&gt;using a second camera to render the scene&lt;/li&gt;
&lt;li&gt;shader effect that uses noise to offset the vertex position to create the movement in the water&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://blogs.unity3d.com/2018/01/31/srp-overview/&#34; target=&#34;_blank&#34;&gt;Scriptable Render Pipeline Overview&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20180202205816/https://blogs.unity3d.com/2018/01/31/srp-overview/&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;short overview of the concepts and how to cull and render opaque objects using the scriptable render pipeline&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://blog.demofox.org/2018/01/30/what-the-heck-is-blue-noise/amp/&#34; target=&#34;_blank&#34;&gt;What the Heck is Blue Noise?&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20180205015353/https://blog.demofox.org/2018/01/30/what-the-heck-is-blue-noise/amp/&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;what are the characteristics of blue noise&lt;/li&gt;
&lt;li&gt;more evenly distributed samples then white noise&lt;/li&gt;
&lt;li&gt;allows fewer samples to cover more space&lt;/li&gt;
&lt;li&gt;helps to reduce aliasing when compared to grid samples&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://fosdem.org/2018/schedule/event/rust_vulkan_gfx_rs/&#34; target=&#34;_blank&#34;&gt;Portable Graphics Abstraction in Rust&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20180205005929/https://fosdem.org/2018/schedule/event/rust_vulkan_gfx_rs/&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;the slides are missing the .pdf extension (rename them)&lt;/li&gt;
&lt;li&gt;single RUST API with many backends (D3D12, vulkan, metal, &amp;hellip; )&lt;/li&gt;
&lt;li&gt;aim is to implement the vulkan portability layer on top of the hardware abstraction layer&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://fosdem.org/2018/schedule/event/amd_graphics/attachments/slides/2251/export/events/attachments/amd_graphics/slides/2251/fosdem2018_amdstack.pdf&#34; target=&#34;_blank&#34;&gt;THE AMD LINUX GRAPHICS STACK – 2018 EDITION&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20180205010016/https://fosdem.org/2018/schedule/event/amd_graphics/attachments/slides/2251/export/events/attachments/amd_graphics/slides/2251/fosdem2018_amdstack.pdf&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;overview of the AMD open source driver for linux&lt;/li&gt;
&lt;li&gt;architecture of the platform abstraction layer (PAL)&lt;/li&gt;
&lt;/ul&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 24 — January 28, 2018</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-24/</link>
      <pubDate>Sun, 28 Jan 2018 12:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-24/</guid>
      <description>&lt;hr /&gt;

&lt;!--End mc_embed_signup--&gt;

&lt;p&gt;&lt;a href=&#34;https://docs.google.com/presentation/d/1LQUMIld4SGoQVthnhT1scoA3k4Sg0as14G4NeSiSgFU/edit#slide=id.p&#34; target=&#34;_blank&#34;&gt;Tightening Up the Graphics: Tools and Techniques for Debugging and Optimization&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;aimed at beginners in graphics programming&lt;/li&gt;
&lt;li&gt;overview of common problems and causes&lt;/li&gt;
&lt;li&gt;renderdoc explanation

&lt;ul&gt;
&lt;li&gt;feature and interface overview&lt;/li&gt;
&lt;li&gt;how to use it to detect problems&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;GPU perf studio and how to profile your application&lt;/li&gt;
&lt;li&gt;common GPU performance problems&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://blogs.unity3d.com/2018/01/24/rendering-and-shading-in-adam-episode-3/&#34; target=&#34;_blank&#34;&gt;Rendering and shading in ADAM: Episode 3&lt;/a&gt; &lt;a href=&#34;http://web.archive.org/web/20180126094714/https://blogs.unity3d.com/2018/01/24/rendering-and-shading-in-adam-episode-3/&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;frame breakdown&lt;/li&gt;
&lt;li&gt;deferred shading pipeline&lt;/li&gt;
&lt;li&gt;extra g-buffer channels used to store subsurface scattering profiles&lt;/li&gt;
&lt;li&gt;spot lights used to light the main characters&lt;/li&gt;
&lt;li&gt;for subsurface scattering diffuse and specular are applied separately

&lt;ul&gt;
&lt;li&gt;diffuse component gets blurred to approximate scattering outside of a single pixel&lt;/li&gt;
&lt;li&gt;recombined with specular afterwards&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;running two g-buffer passes

&lt;ul&gt;
&lt;li&gt;once for the main scene and once for the visor (rendered as opaque)&lt;/li&gt;
&lt;li&gt;visor is recomposited using the visor alpha&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://github.com/OculusVR/Flicks&#34; target=&#34;_blank&#34;&gt;Flicks&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;proposal of a new unit of time ( 1 flick = &lt;sup&gt;1&lt;/sup&gt;&amp;frasl;&lt;sub&gt;705600000&lt;/sub&gt; second )&lt;/li&gt;
&lt;li&gt;can represent most common frame duration in integer quantitates&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;http://ourmachinery.com/post/explicit-multi-gpu-programming/&#34; target=&#34;_blank&#34;&gt;Explicit Multi-GPU Programming&lt;/a&gt; &lt;a href=&#34;http://web.archive.org/web/20180122204035/http://ourmachinery.com/post/explicit-multi-gpu-programming/&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;aimed not just at games but also other industries&lt;/li&gt;
&lt;li&gt;creating and updating of resources take a bitmask to specify on which device to operate on&lt;/li&gt;
&lt;li&gt;when binding a render pass or binding a queue the target device mask is specified&lt;/li&gt;
&lt;li&gt;new sync primitive to specify what fences to wait on and what fences to signal

&lt;ul&gt;
&lt;li&gt;signal uses the device mask&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;http://kylehalladay.com/blog/tutorial/vulkan/2018/01/28/Textue-Arrays-Vulkan.html&#34; target=&#34;_blank&#34;&gt;Using Arrays of Textures in Vulkan Shaders&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20180128174350/http://kylehalladay.com/blog/tutorial/vulkan/2018/01/28/Textue-Arrays-Vulkan.html&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;use a single descriptor set to store all textures&lt;/li&gt;
&lt;li&gt;push constant to index into the array&lt;/li&gt;
&lt;li&gt;how to create, fill and use the descriptor set&lt;/li&gt;
&lt;li&gt;deal with GlslangValidator warnings&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://erkaman.github.io/posts/fast_triangle_rasterization.html&#34; target=&#34;_blank&#34;&gt;A Simple, and Trivially Parallelizable Triangle Rasterization Approach&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20180128174406/https://erkaman.github.io/posts/fast_triangle_rasterization.html&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;description of how the cross product can be used to detect if a point is inside a triangle&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://www.gamasutra.com/view/news/313026/Art_Design_Deep_Dive_Using_a_3D_pipeline_for_2D_animation_in_Dead_Cells.php&#34; target=&#34;_blank&#34;&gt;Art Design Deep Dive: Using a 3D pipeline for 2D animation in Dead Cells&lt;/a&gt; &lt;a href=&#34;http://web.archive.org/web/20180125124237/https://www.gamasutra.com/view/news/313026/Art_Design_Deep_Dive_Using_a_3D_pipeline_for_2D_animation_in_Dead_Cells.php&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;simple 3D model used&lt;/li&gt;
&lt;li&gt;rendered into a small texture without anti aliasing to create the 2D sprite + normal map&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://medium.com/@afd_icl/google-and-qualcomm-pixel-perfect-e8ecefaf5968&#34; target=&#34;_blank&#34;&gt;Google and Qualcomm: Pixel-Perfect?&lt;/a&gt; &lt;a href=&#34;http://web.archive.org/web/20180125194945/https://medium.com/@afd_icl/google-and-qualcomm-pixel-perfect-e8ecefaf5968&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;look at driver quality between Google Pixel 2 and Samsung Galaxy S8&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://gpuzen.blogspot.ca/?m=1&#34; target=&#34;_blank&#34;&gt;GPU Zen 2 - Call for Authors&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20180128174555/https://gpuzen.blogspot.ca/?m=1&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;next edition of the book is looking for proposals, due March 30th&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://github.com/ConfettiFX/The-Forge&#34; target=&#34;_blank&#34;&gt;The Forge - Cross-Platform Rendering Framework&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;open source&lt;/li&gt;
&lt;li&gt;supports PC D2D12, vulkan, iOS, Android, PS4, Xbox One&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 23 — January 21, 2018</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-23/</link>
      <pubDate>Sun, 21 Jan 2018 12:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-23/</guid>
      <description>&lt;hr /&gt;

&lt;!--End mc_embed_signup--&gt;

&lt;p&gt;&lt;a href=&#34;https://interplayoflight.wordpress.com/2018/01/15/experiments-in-gpu-based-occlusion-culling-part-2-multidrawindirect-and-mesh-lodding/&#34; target=&#34;_blank&#34;&gt;Experiments in GPU-based occlusion culling part 2: MultidrawIndirect and mesh lodding&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20180116195435/https://interplayoflight.wordpress.com/2018/01/15/experiments-in-gpu-based-occlusion-culling-part-2-multidrawindirect-and-mesh-lodding/&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;using DrawIndexedInstancedIndirect (on AMD and Nvidia with API extensions)

&lt;ul&gt;
&lt;li&gt;all vertices in large buffers with manual vertex fetch in the vertex shader&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;how to integrate level of detail for meshes&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://devblogs.nvidia.com/parallelforall/using-cuda-warp-level-primitives/&#34; target=&#34;_blank&#34;&gt;Using CUDA Warp-Level Primitives&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20180116195523/https://devblogs.nvidia.com/parallelforall/using-cuda-warp-level-primitives/&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;explanation of SIMT (Single Instruction, Multiple Thread) of 32 threads = Wrap&lt;/li&gt;
&lt;li&gt;wrap-level primitives for

&lt;ul&gt;
&lt;li&gt;exchange of data between threads&lt;/li&gt;
&lt;li&gt;active thread mask query&lt;/li&gt;
&lt;li&gt;synchronize all threads in a wrap + memory fence&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://turanszkij.wordpress.com/2018/01/18/easy-transparent-shadow-maps/amp/&#34; target=&#34;_blank&#34;&gt;Easy Transparent Shadow Maps&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20180121165023/https://turanszkij.wordpress.com/2018/01/18/easy-transparent-shadow-maps/amp/&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;technqiue to allow transparent objects to cast colored shadows onto opaque objects

&lt;ul&gt;
&lt;li&gt;render transparents into a color but rejecting pixels that are occluded by opaques&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;extension of technique to allow transparent shadows on transparent objects&lt;/li&gt;
&lt;li&gt;showcase of some use-cases

&lt;ul&gt;
&lt;li&gt;projectors&lt;/li&gt;
&lt;li&gt;underwater caustics&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;http://blog.magnum.graphics/guest-posts/area-lights-with-ltcs/&#34; target=&#34;_blank&#34;&gt;Area Lights with LTCs&lt;/a&gt; &lt;a href=&#34;http://web.archive.org/web/20180115180135/http://blog.magnum.graphics/guest-posts/area-lights-with-ltcs/&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;high level overview of the &amp;ldquo;Real-Time Polygonal-Light Shading with Linearly Transformed Cosines&amp;rdquo; technique&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://www.gamasutra.com/view/news/312977/Adding_depth_to_2D_with_handdrawn_normal_maps_in_The_Siege_and_the_Sandfox.php&#34; target=&#34;_blank&#34;&gt;Adding depth to 2D with hand-drawn normal maps in The Siege and the Sandfox&lt;/a&gt; &lt;a href=&#34;http://web.archive.org/web/20180116113505/https://www.gamasutra.com/view/news/312977/Adding_depth_to_2D_with_handdrawn_normal_maps_in_The_Siege_and_the_Sandfox.php&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;normal map used to strengthen the silhouettes instead of adding small surface detail&lt;/li&gt;
&lt;li&gt;how they create the normals maps&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://blogs.unity3d.com/2018/01/18/2018-and-graphics/&#34; target=&#34;_blank&#34;&gt;Unity - 2018 and Graphics&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20180121165007/https://blogs.unity3d.com/2018/01/18/2018-and-graphics/&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;what graphics features will be coming to unity in 2018&lt;/li&gt;
&lt;li&gt;Scriptable Render Pipelines, will allow C# script to control the render pipeline logic&lt;/li&gt;
&lt;li&gt;Lightweight Rendering Pipeline aimed at low end hardware will be added&lt;/li&gt;
&lt;li&gt;improvements to post processing, HDR rendering and a built-in shader graph&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://twitter.com/g_truc/status/954899823710306305/photo/1&#34; target=&#34;_blank&#34;&gt;GPU atomic operations performance&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20180121164934/https://twitter.com/g_truc/status/954899823710306305/photo/1&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;comparison of atomic instructions on different GPUs&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 22 — January 14, 2018</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-22/</link>
      <pubDate>Sun, 14 Jan 2018 12:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-22/</guid>
      <description>&lt;hr /&gt;

&lt;!--End mc_embed_signup--&gt;

&lt;p&gt;&lt;a href=&#34;http://www.elopezr.com/the-rendering-of-middle-earth-shadow-of-mordor/&#34; target=&#34;_blank&#34;&gt;The Rendering of Middle Earth: Shadow of Mordor&lt;/a&gt; &lt;a href=&#34;http://web.archive.org/web/20180103010340/http://www.elopezr.com/the-rendering-of-middle-earth-shadow-of-mordor/&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;gbuffer breakdown&lt;/li&gt;
&lt;li&gt;blood rendering as gbuffer modifier&lt;/li&gt;
&lt;li&gt;tessellation

&lt;ul&gt;
&lt;li&gt;uses a point cloud as input and a tessellation shader calculates the polygons&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;SSAO has two distinct channels that get applied to specular and diffuse separately&lt;/li&gt;
&lt;li&gt;top-down projection texture used to add extra information to sun lighting&lt;/li&gt;
&lt;li&gt;static lighting uses a light volume texture&lt;/li&gt;
&lt;li&gt;Rayleigh + Mie scattering system for atmospheric fog&lt;/li&gt;
&lt;li&gt;alpha blended objects are rendered directly to the Low Dynamic Range (after tone mapping)&lt;/li&gt;
&lt;li&gt;gpu based rain system&lt;/li&gt;
&lt;li&gt;two bloom systems, one applied to everything and a radian blur that is only applied to the sky&lt;/li&gt;
&lt;li&gt;UI is rendered into a separate render target and blended with the 3D scene&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;http://www.intrinsic-engine.com/reverse-z-cheat-sheet/&#34; target=&#34;_blank&#34;&gt;Reverse Z Cheat Sheet&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20180109193258/http://www.intrinsic-engine.com/reverse-z-cheat-sheet/&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;reverse depth buffer from [near=0 to far=1] to use [near=1 to far=0]&lt;/li&gt;
&lt;li&gt;how to adjust the projection matrix&lt;/li&gt;
&lt;li&gt;what changes are required in addition to this&lt;/li&gt;
&lt;li&gt;how to linearize depth buffer values without a matrix multiplication&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://turanszkij.wordpress.com/2018/01/10/optimizing-tile-based-light-culling/&#34; target=&#34;_blank&#34;&gt;Optimizing tile-based light culling&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20180112222626/https://turanszkij.wordpress.com/2018/01/10/optimizing-tile-based-light-culling/&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;problems of frustum-sphere culling

&lt;ul&gt;
&lt;li&gt;refine with AABB culling&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;improve depth discontinuity with bitmasks to detect lights not hitting any geometry&lt;/li&gt;
&lt;li&gt;spot light culling&lt;/li&gt;
&lt;li&gt;decal probe box&lt;/li&gt;
&lt;li&gt;other performance considerations&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://docs.google.com/presentation/d/13sUkDMHFNpwFHSdVe8kimnLAc6cAGddc-Mv2wK3HVvk/edit#slide=id.gc6f9e470d_0_0&#34; target=&#34;_blank&#34;&gt;Optimization with Radeon GPU Profiler - A Vulkan Case Study&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;overview of different views&lt;/li&gt;
&lt;li&gt;high level view of GCN hardware

&lt;ul&gt;
&lt;li&gt;wavefronts, latency hiding, occupancy&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;detect pipeline stalls&lt;/li&gt;
&lt;li&gt;read the pipeline state view to get details about pipeline statistics&lt;/li&gt;
&lt;li&gt;detect opportunities for async compute&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;http://hacksoflife.blogspot.ca/2018/01/fixing-camera-shake-on-single-precision.html&#34; target=&#34;_blank&#34;&gt;Fixing Camera Shake on Single Precision GPUs&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20180114133847/http://hacksoflife.blogspot.ca/2018/01/fixing-camera-shake-on-single-precision.html&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;100x100 km chunks with 1 cm precision in 32 bits&lt;/li&gt;
&lt;li&gt;problem once 1 cm of world space &amp;gt; 1 pixel on screen&lt;/li&gt;
&lt;li&gt;using doubles on the CPU for transforms&lt;/li&gt;
&lt;li&gt;change order of operation to apply an offset (single subtract) to bring the mesh close to the camera
before rotation is applied

&lt;ul&gt;
&lt;li&gt;this offset updated infrequently&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://drive.google.com/file/d/1SyagcEVplIm2KkRD3WQYSO9O0Iyi1hfy/view?pli=1&#34; target=&#34;_blank&#34;&gt;Study Notes: Improved Ambient Occlusion&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;computes error introduced by approximations vs results from path tracer&lt;/li&gt;
&lt;li&gt;fits a curve to this error, and uses this curve to compensate for the error in the original approximation&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://www.osapublishing.org/oe/fulltext.cfm?uri=oe-25-13-15131&amp;amp;id=368272&#34; target=&#34;_blank&#34;&gt;Perceptually uniform color space for image signals including high dynamic range and wide gamut&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20180109165820/https://www.osapublishing.org/captcha/?guid=969782CD-D2CF-AAB4-5E63-86F5FB1672F2&amp;amp;AspxAutoDetectCookieSupport=1&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;overview of existing color spaces&lt;/li&gt;
&lt;li&gt;comparison against new proposed color space&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;http://renderdiagrams.org/2018/01/05/indirect-illumination-using-cubemaps/&#34; target=&#34;_blank&#34;&gt;Indirect illumination using cubemaps&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20180109170012/http://renderdiagrams.org/2018/01/05/indirect-illumination-using-cubemaps/&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;explanation of how indirect illumination is stored in cube maps&lt;/li&gt;
&lt;li&gt;including interactive diagrams to explain the principles&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://turanszkij.wordpress.com/2018/01/05/next-power-of-two-in-hlsl/amp/&#34; target=&#34;_blank&#34;&gt;Next power of two in HLSL&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20180109170108/https://turanszkij.wordpress.com/2018/01/05/next-power-of-two-in-hlsl/amp/&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;how to calculate the next larger power of two with bit level instructions&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://knarkowicz.wordpress.com/2018/01/04/cloth-shading/amp/&#34; target=&#34;_blank&#34;&gt;Cloth Shading&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20180109193033/https://knarkowicz.wordpress.com/2018/01/04/cloth-shading/amp/?__twitter_impression=true&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;comparison of the Ashikhmin sheen and Imageworks Charlie sheen&lt;/li&gt;
&lt;li&gt;including shader toy implementation&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;http://tuxedolabs.blogspot.ca/2018/01/screen-space-path-tracing-diffuse.html?m=1&#34; target=&#34;_blank&#34;&gt;Screen Space Path Tracing – Diffuse&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20180109193220/http://tuxedolabs.blogspot.ca/2018/01/screen-space-path-tracing-diffuse.html?m=1&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;ray marching against depth buffer&lt;/li&gt;
&lt;li&gt;on hit fetch light re-projected from previous frame&lt;/li&gt;
&lt;li&gt;denoising with temporal re-projected filter + smoothing groups + temporal AA&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://grahamhazel.com/blog/2017/12/18/alternative-definition-of-spherical-harmonics-for-lighting/&#34; target=&#34;_blank&#34;&gt;Alternative definition of Spherical Harmonics for Lighting&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/save/https://grahamhazel.com/blog/2017/12/18/alternative-definition-of-spherical-harmonics-for-lighting/&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;explanation of the math for Spherical Harmonics&lt;/li&gt;
&lt;li&gt;simplified definition by specializing for the use case required for lighting (but not limited to it)&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://grahamhazel.com/blog/2017/12/22/converting-sh-radiance-to-irradiance/&#34; target=&#34;_blank&#34;&gt;Converting SH Radiance to Irradiance&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20180112222529/https://grahamhazel.com/blog/2017/12/22/converting-sh-radiance-to-irradiance/&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;use definition from part 1 to convert radiance (incoming light) to irradiance (outgoing bounced light)&lt;/li&gt;
&lt;li&gt;improving the conversion with a non-linear reconstruction&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;http://hss.ulb.uni-bonn.de/2017/4918/4918.htm&#34; target=&#34;_blank&#34;&gt;Moment-Based Methods for Real-Time Shadows and Fast Transient Imaging&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20180112222551/http://hss.ulb.uni-bonn.de/2017/4918/4918.htm&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;summary of the theory of moments from mathematics&lt;/li&gt;
&lt;li&gt;replacement for inverse Fourier transforms of positive functions with many benefits&lt;/li&gt;
&lt;li&gt;techniques for opaque and translucent occludes, soft shadows and single scattering&lt;/li&gt;
&lt;li&gt;filterable shadow maps using 64 bits per texel compared to other filterable techniques&lt;/li&gt;
&lt;li&gt;more efficient at high resolutions compared to classical shadow maps&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://github.com/zeux/meshoptimizer/releases/tag/v0.7&#34; target=&#34;_blank&#34;&gt;meshoptimizer v0.7 released&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;index buffer compression added&lt;/li&gt;
&lt;li&gt;index buffer to a triangle strip conversion added&lt;/li&gt;
&lt;li&gt;quantize float option added&lt;/li&gt;
&lt;li&gt;improvements to exisiting analyzers&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;http://www.ctrl-alt-test.fr/?p=535&#34; target=&#34;_blank&#34;&gt;Making floating point numbers smaller&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20180112222650/http://www.ctrl-alt-test.fr/?p=535&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;how to reduce the precisions of floats (so that they can be compressed better)&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 21 — December 17, 2017</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-21/</link>
      <pubDate>Sun, 17 Dec 2017 12:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-21/</guid>
      <description>&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://medium.com/@lordned/unreal-engine-4-rendering-overview-part-1-c47f2da65346&#34; target=&#34;_blank&#34;&gt;Unreal Engine 4 Rendering Part 1: Introduction&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20171212191025/https://medium.com/@lordned/unreal-engine-4-rendering-overview-part-1-c47f2da65346&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;focus on the deferred shading pipeline&lt;/li&gt;
&lt;li&gt;settings required for good development experience&lt;/li&gt;
&lt;li&gt;how data is passed from updated thread -&amp;gt; engine thread -&amp;gt; gpu&lt;/li&gt;
&lt;li&gt;how shader system is structured&lt;/li&gt;
&lt;li&gt;binding between HLSLS and C++&lt;/li&gt;
&lt;li&gt;how the correct shader variation is picked&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://interplayoflight.wordpress.com/2017/12/12/deferred-signed-distance-field-rendering/&#34; target=&#34;_blank&#34;&gt;Deferred Signed Distance Field rendering&lt;/a&gt; &lt;a href=&#34;http://web.archive.org/web/20171212191132/https://interplayoflight.wordpress.com/2017/12/12/deferred-signed-distance-field-rendering/&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;using a fullscreen pass, render the SDF into the g-buffer&lt;/li&gt;
&lt;li&gt;outputting custom depth for correct depth sorting&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://gist.github.com/zeux/f09ec9d0effae8f6904e7dead226fb58&#34; target=&#34;_blank&#34;&gt;State of Roblox graphics API across all platforms - December 2017&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20171212191219/https://gist.github.com/zeux/f09ec9d0effae8f6904e7dead226fb58&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;on windows 77% can use D3D 11+, still 3% on D3D39&lt;/li&gt;
&lt;li&gt;windows store, 10% for D3D10&lt;/li&gt;
&lt;li&gt;52% can run metal on mac and 86 on iOS&lt;/li&gt;
&lt;li&gt;android very fragmented across ES 3.X and 2.0, vulkan&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;http://ourmachinery.com/post/vulkan-pipelines-and-render-states/&#34; target=&#34;_blank&#34;&gt;Vulkan: Pipelines and Render States&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20171217234837/http://ourmachinery.com/post/vulkan-pipelines-and-render-states/&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;support on-demand, VkPipeline creation at runtime only as fallback option

&lt;ul&gt;
&lt;li&gt;most should be created offline&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;how to handle this with multithreaded rendering&lt;/li&gt;
&lt;li&gt;Render State Override Blocks

&lt;ul&gt;
&lt;li&gt;allow changes to some dynamic states at runtime&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;http://kylehalladay.com/blog/tutorial/2017/12/13/Custom-Allocators-Vulkan.html&#34; target=&#34;_blank&#34;&gt;A Simple Device Memory Allocator For Vulkan&lt;/a&gt; &lt;a href=&#34;http://web.archive.org/web/20171213153149/http://kylehalladay.com/blog/tutorial/2017/12/13/Custom-Allocators-Vulkan.html&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;memory heaps and types

&lt;ul&gt;
&lt;li&gt;can&amp;rsquo;t mix different types into one heap&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;vkAllocateMemory overview

&lt;ul&gt;
&lt;li&gt;guaranteed to return memory aligned to the largest required alignment for any resource&lt;/li&gt;
&lt;li&gt;allocation sizes differ depending on hardware&lt;/li&gt;
&lt;li&gt;driver specifies  maximum number of allocations that can be done&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;when sub-allocating&lt;br /&gt;

&lt;ul&gt;
&lt;li&gt;need to respect Buffer-Image Granularity to avoid aliasing&lt;/li&gt;
&lt;li&gt;need separate pool for each allocation type&lt;/li&gt;
&lt;li&gt;only allowed to map allocation once, even when sub-allocating different objects within&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://gpuopen.com/deferred-path-tracing-enscape/&#34; target=&#34;_blank&#34;&gt;Deferred Path Tracing By Enscape&lt;/a&gt; &lt;a href=&#34;http://web.archive.org/web/20171217094718/https://gpuopen.com/deferred-path-tracing-enscape/&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;path traced real time global illumination that can converge to offline quality&lt;/li&gt;
&lt;li&gt;using Radeon Rays for BVH construction and traversal&lt;/li&gt;
&lt;li&gt;using g-buffer as replacement for primary rays&lt;/li&gt;
&lt;li&gt;try to cast the diffuse rays in screen space, only if no hit is found trace using the BVH&lt;/li&gt;
&lt;li&gt;ray bundling based on direction&lt;/li&gt;
&lt;li&gt;BVH is streamed based on estimated visual importance weighted against their BVH cost&lt;/li&gt;
&lt;li&gt;bake lighting into BVH per-vertex

&lt;ul&gt;
&lt;li&gt;sun is evaluated during traversal&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;filtering with temporal accumulation buffers&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;presentation here: &lt;a href=&#34;https://enscape3d.com/wp-content/uploads/2017/12/23026-real-time-path-tracing-using-a-hybrid-deferred.pdf&#34; target=&#34;_blank&#34;&gt;Real-time path tracing using a hybrid deferred approach&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20171214171616/https://enscape3d.com/wp-content/uploads/2017/12/23026-real-time-path-tracing-using-a-hybrid-deferred.pdf&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://www.3dgep.com/learning-directx12-1/&#34; target=&#34;_blank&#34;&gt;Learning DirectX 12 – Lesson 1&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20171215184631/https://www.3dgep.com/learning-directx12-1/&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;very in-depth tutorial about D3D12

&lt;ul&gt;
&lt;li&gt;win32 window creation&lt;/li&gt;
&lt;li&gt;Query the GPU adapters&lt;/li&gt;
&lt;li&gt;Create in d3d12 device, command queue, swap chain, command allocator and command lists&lt;/li&gt;
&lt;li&gt;Handle GPU synchronization&lt;/li&gt;
&lt;li&gt;Handle resizing&lt;/li&gt;
&lt;li&gt;Handle full-screen toggling&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://blogs.unity3d.com/2017/12/15/crunch-compression-of-etc-textures/&#34; target=&#34;_blank&#34;&gt;Crunch compression of ETC textures&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20171215202838/https://blogs.unity3d.com/2017/12/15/crunch-compression-of-etc-textures/&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;explanation of DXT1 compression&lt;/li&gt;
&lt;li&gt;detailed explanation how crunch compression works&lt;/li&gt;
&lt;li&gt;and what improvements have been done&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;http://www.adriancourreges.com/blog/2017/12/15/mgs-v-graphics-study/&#34; target=&#34;_blank&#34;&gt;Metal Gear Solid V - Graphics Study&lt;/a&gt; &lt;a href=&#34;http://web.archive.org/web/20171215175959/http://www.adriancourreges.com/blog/2017/12/15/mgs-v-graphics-study/&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;SSAO is done with two passes

&lt;ul&gt;
&lt;li&gt;Line Integral SSAO + Scalable Ambient Obscurance&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;uses local irradiance spherical maps for global illumination&lt;br /&gt;

&lt;ul&gt;
&lt;li&gt;one bounding-box-shaped mesh representing the volume of influence of the zone&lt;/li&gt;
&lt;li&gt;additively blends the irradiance from all zones&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;does tone-mapping early, right after g buffer lighting&lt;/li&gt;
&lt;li&gt;depth of field

&lt;ul&gt;
&lt;li&gt;done using a sprite scattering approach&lt;/li&gt;
&lt;li&gt;on near-field and far field separately&lt;/li&gt;
&lt;li&gt;results blended together&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://www.youtube.com/watch?v=N7b65kPI5AQ&#34; target=&#34;_blank&#34;&gt;Decima Visibility in Horizon Zero Dawn - Video&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;this was discussed in &lt;a href=&#34;https://jendrikillner.bitbucket.io/post/graphics-programming-weekly-issue-18/&#34; target=&#34;_blank&#34;&gt;Issue 18&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;now the video has been released&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://github.com/assimp/assimp/releases/tag/v4.1.0&#34; target=&#34;_blank&#34;&gt;Assimp: The 4.1.0-Release: gITF2 and more&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;import / export GLTF 2.0&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://github.com/greje656/SHLighting&#34; target=&#34;_blank&#34;&gt;SHLighting&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;open source showing the implementation of the Spherical Harmonic Lighting: The Gritty Details paper&lt;/li&gt;
&lt;li&gt;shader toy &lt;a href=&#34;https://www.shadertoy.com/view/XtlBzs&#34; target=&#34;_blank&#34;&gt;https://www.shadertoy.com/view/XtlBzs&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://github.com/GPUOpen-Tools/Radeon-GPUProfiler/releases&#34; target=&#34;_blank&#34;&gt;Radeon GPU Profiler (RGP) v1.10&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;now supports pix markers&lt;/li&gt;
&lt;li&gt;barriers and transitions now show reason why they are executed&lt;/li&gt;
&lt;/ul&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 20 — December 10, 2017</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-20/</link>
      <pubDate>Sun, 10 Dec 2017 12:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-20/</guid>
      <description>&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://community.arm.com/graphics/b/blog/posts/white-paper-foveated-rendering&#34; target=&#34;_blank&#34;&gt;White Paper: Foveated Rendering&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20171205192618/https://community.arm.com/graphics/b/blog/posts/white-paper-foveated-rendering&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;overview of typical VR rendering pipeline&lt;/li&gt;
&lt;li&gt;lens distortion causes pixels towards the edges to be distorted more&lt;/li&gt;
&lt;li&gt;Foveated takes advantage of this and uses a variable quality across the screen&lt;/li&gt;
&lt;li&gt;how to implement it using the opengl multiview extension&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://research.googleblog.com/2017/12/introducing-new-foveation-pipeline-for.html?m=1&#34; target=&#34;_blank&#34;&gt;Introducing a New Foveation Pipeline for Virtual/Mixed Reality&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20171209055646/https://research.googleblog.com/2017/12/introducing-new-foveation-pipeline-for.html?m=1&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Foveated rendering

&lt;ul&gt;
&lt;li&gt;rendering the scene with more resolution in the center then in the peripheral vision&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;Conformal Rendering

&lt;ul&gt;
&lt;li&gt;using vertex distortion based on fixation point to better match desired resolution&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;Foveated Image Processing

&lt;ul&gt;
&lt;li&gt;applying the same ideas to post processing&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://blogs.unity3d.com/2017/12/04/adam-the-evolution-of-alembic-support-in-unity/&#34; target=&#34;_blank&#34;&gt;ADAM: The evolution of Alembic support in Unity&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20171205192714/https://blogs.unity3d.com/2017/12/04/adam-the-evolution-of-alembic-support-in-unity/&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;added timeline support&lt;/li&gt;
&lt;li&gt;vertex sharing for constant topology&lt;/li&gt;
&lt;li&gt;vertex interpolation&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://blogs.unity3d.com/2017/12/05/they-are-what-they-wear-clothing-simulation-in-adam/&#34; target=&#34;_blank&#34;&gt;They are what they wear: Clothing simulation in ADAM&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20171209062649/https://blogs.unity3d.com/2017/12/05/they-are-what-they-wear-clothing-simulation-in-adam/&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;costumes are built in real-life&lt;/li&gt;
&lt;li&gt;scanned using photogrammetry&lt;/li&gt;
&lt;li&gt;using alembic to import cloth simulations into unity&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://devblogs.nvidia.com/parallelforall/cutlass-linear-algebra-cuda/&#34; target=&#34;_blank&#34;&gt;CUTLASS: Fast Linear Algebra in CUDA C++&lt;/a&gt; &lt;a href=&#34;http://web.archive.org/web/20171208035012/https://devblogs.nvidia.com/parallelforall/cutlass-linear-algebra-cuda/&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;use accumulating matrix products&lt;/li&gt;
&lt;li&gt;overview of how the computation is decomposed into a hierarchy of thread block tiles, warp tiles, and thread tiles&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://www.sebastiansylvan.com/post/light_culling/&#34; target=&#34;_blank&#34;&gt;Thoughts on light culling for clustered shading&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20171209053652/https://www.sebastiansylvan.com/post/light_culling/&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;list a few ideas for different culling changes&lt;/li&gt;
&lt;li&gt;Split X and Y visibility as well&lt;/li&gt;
&lt;li&gt;Go beyond 1D visibility for Z&lt;/li&gt;
&lt;li&gt;Use a more flexible primary “sort axis”

&lt;ul&gt;
&lt;li&gt;use visible lights to find principal axis dynamically and use that for sorting&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;Remove the view dependence entirely&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://psgraphics.blogspot.ca/2017/12/lazy-spectral-rendering.html?m=1&#34; target=&#34;_blank&#34;&gt;Lazy spectral rendering&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20171209055042/https://psgraphics.blogspot.ca/2017/12/lazy-spectral-rendering.html?m=1&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;a simplification of spectral rendering&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://blogs.unity3d.com/2017/12/07/lighting-tips-tricks-in-the-adam-films/&#34; target=&#34;_blank&#34;&gt;Lighting tips &amp;amp; tricks in the ADAM films&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20171211032851/https://blogs.unity3d.com/2017/12/07/lighting-tips-tricks-in-the-adam-films/&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;light setup (linear, deferred, ACES tone mapping)&lt;/li&gt;
&lt;li&gt;shadows&lt;/li&gt;
&lt;li&gt;cascades are tweaked per shot&lt;/li&gt;
&lt;li&gt;smoke and fire particles

&lt;ul&gt;
&lt;li&gt;baked from Houdini into texture atlas + flow maps&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://nfrechette.github.io/2017/12/05/acl_paragon/&#34; target=&#34;_blank&#34;&gt;Animation Compression Library: Paragon Results&lt;/a&gt; &lt;a href=&#34;http://web.archive.org/web/20171205173128/https://nfrechette.github.io/2017/12/05/acl_paragon/&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;how does it perform on the animation data from the game Paragon&lt;/li&gt;
&lt;/ul&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 19 — December 3, 2017</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-19/</link>
      <pubDate>Sun, 03 Dec 2017 12:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-19/</guid>
      <description>&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://blogs.msdn.microsoft.com/pix/2017/11/30/pix-1711-28/&#34; target=&#34;_blank&#34;&gt;PIX 1711.28 – GPU memory usage, TDR debugging, DXIL shader debugging, and child process GPU capture&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20171130154929/https://blogs.msdn.microsoft.com/pix/2017/11/30/pix-1711-28/&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;can track d3d12 heap usage during timing captures&lt;/li&gt;
&lt;li&gt;experimental TDR (Timeout Detection and Recovery) debugging support&lt;/li&gt;
&lt;li&gt;shader debugging for DXIL (new intermediate shader language)&lt;/li&gt;
&lt;li&gt;GPU captures of child processes are supported&lt;/li&gt;
&lt;li&gt;file IO can now handle archive files to identify individual files within&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;http://www.eastshade.com/foliage-optimization-in-unity/&#34; target=&#34;_blank&#34;&gt;Foliage Optimization in Unity&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20171202035939/http://www.eastshade.com/foliage-optimization-in-unity/&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;requires your forest to be built from the ground up with your optimization strategy in mind&lt;/li&gt;

&lt;li&gt;&lt;p&gt;all assets share a single 2048x2048 texture&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;hex grid for grouping&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;LOD and culling on the hex groups&lt;/li&gt;
&lt;li&gt;occlusion query against the hex groups to see if visisble (only check against terrain)&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;super hex grid encompassing multiple smaller hex groups,&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;switch to combined model for all meshes when at the lowest LOD&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;http://reedbeta.com/blog/conformal-texture-mapping/&#34; target=&#34;_blank&#34;&gt;Conformal Texture Mapping&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20171128145211/http://reedbeta.com/blog/conformal-texture-mapping/&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;how to characterize the amount of distortion in UV mapping&lt;br /&gt;&lt;/li&gt;
&lt;li&gt;conformal maps are texture mapping without distortion&lt;/li&gt;
&lt;li&gt;explanation of Möbius tranformations&lt;/li&gt;
&lt;li&gt;Holomorphic Functions: functions that are complex differentiable&lt;/li&gt;
&lt;li&gt;Invertibility of functions&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://gpuopen.com/compressonator-v2-7-release-adds-cross-platform-support-3d-model-compression-gltf-v2-0/&#34; target=&#34;_blank&#34;&gt;Compressonator V2.7 - adds cross platform support and 3D Model compression with glTF v2.0&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20171128145458/https://gpuopen.com/compressonator-v2-7-release-adds-cross-platform-support-3d-model-compression-gltf-v2-0/&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;now supports loading gltf 2.0 models&lt;/li&gt;
&lt;li&gt;D3D12 renderer&lt;/li&gt;
&lt;li&gt;Realtime 3D Model diff views&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://perso.telecom-paristech.fr/~boubek/papers/UVC/&#34; target=&#34;_blank&#34;&gt;Fast Lossy Compression of 3D Unit Vector Sets&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20171128145646/https://perso.telecom-paristech.fr/~boubek/papers/UVC/UVC.pdf&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;a new compression scheme for unorganized ray directions&lt;/li&gt;
&lt;li&gt;take advantage of spatially coherent vector groups for better compressibility&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;http://kylehalladay.com/blog/tutorial/2017/11/27/Vulkan-Material-System.html&#34; target=&#34;_blank&#34;&gt;Lessons Learned While Building a Vulkan Material System&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20171128145718/http://kylehalladay.com/blog/tutorial/2017/11/27/Vulkan-Material-System.html&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;descriptor sets&lt;/li&gt;
&lt;li&gt;group descriptor by frequency of update&lt;/li&gt;
&lt;li&gt;SPIR-V shader reflection&lt;/li&gt;
&lt;li&gt;constant data requires 16 byte alignment for members&lt;/li&gt;
&lt;li&gt;description of the material system&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://users.aalto.fi/~silvena4/Projects/RTGI/index.html&#34; target=&#34;_blank&#34;&gt;Real-time Global Illumination by Precomputed Local Reconstruction from Sparse Radiance Probes&lt;/a&gt; &lt;a href=&#34;http://web.archive.org/web/20170918150216/https://users.aalto.fi/~silvena4/Publications/Real-time_Global_Illumination_by_Precomputed_Local_Reconstruction_from_Sparse_Radiance_Probes.pdf&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;aimed at mostly static scenes with fully dynamic lights and cameras&lt;/li&gt;
&lt;li&gt;reconstructing the incident radiance field from a sparse set of local samples&lt;/li&gt;
&lt;li&gt;minimize light leaking through visibility-aware interpolation&lt;/li&gt;
&lt;li&gt;receiver depends only on a small constant number of nearby radiance probes&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://www.gamasutra.com/blogs/FarhanNoor/20171128/310492/Telltales_move_to_PBS__shifting_technologies_and_practices_part_1.php&#34; target=&#34;_blank&#34;&gt;Telltale&amp;rsquo;s move to PBS : shifting technologies and practices (part 1)&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20171128225518/https://www.gamasutra.com/blogs/FarhanNoor/20171128/310492/Telltales_move_to_PBS__shifting_technologies_and_practices_part_1.php&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;heavily relied on hand-painted texture maps, including lighting&lt;/li&gt;
&lt;li&gt;new material system can generate maya shader for preview&lt;/li&gt;
&lt;li&gt;some artists had a hard time adopting the PBR model&lt;/li&gt;
&lt;li&gt;use of scripts to auto convert from diffuse texture to the required PBR textures&lt;/li&gt;
&lt;li&gt;use of simplygon to simplify models and materials to fit into memory budget&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;http://etodd.io/2017/11/28/poor-mans-3d-camera/&#34; target=&#34;_blank&#34;&gt;The Poor Man&amp;rsquo;s 3D Camera&lt;/a&gt; &lt;a href=&#34;http://web.archive.org/web/20171129083104/http://etodd.io/2017/11/28/poor-mans-3d-camera/&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;description of the many iterations the camera design went through until finally settling on the final design&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://perso.telecom-paristech.fr/~boubek/papers/SeamCut/&#34; target=&#34;_blank&#34;&gt;SeamCut: Interactive Mesh Segmentation for Parameterization&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20171129200517/https://perso.telecom-paristech.fr/~boubek/papers/SeamCut/SeamCut.pdf&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;interactive approach to UV unwrapping&lt;/li&gt;
&lt;li&gt;using mesh surface properties instead of actual connectivity on the mesh

&lt;ul&gt;
&lt;li&gt;to place cuts and seams for good UV distribution&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;http://airship-images.com/division-hair-breakdown/&#34; target=&#34;_blank&#34;&gt;Breakdown : Making the Hair on The Division&lt;/a&gt; &lt;a href=&#34;http://web.archive.org/web/20161120025816/http://airship-images.com:80/division-hair-breakdown/&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;combination of meshes, flowmaps and hair planes&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;http://www.snaregames.com/2017/12/01/quick-peek-ambient-occlusion/&#34; target=&#34;_blank&#34;&gt;Quick Peek: Ambient Occlusion&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20171201205146/http://www.snaregames.com/2017/12/01/quick-peek-ambient-occlusion/&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;AO calculations for low poly look using surfel representation of the mesh&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://cs.nyu.edu/~panozzo/#publications&#34; target=&#34;_blank&#34;&gt;Simplicial Complex Augmentation Framework for Bijective Maps&lt;/a&gt; &lt;a href=&#34;http://web.archive.org/web/20171201030900/https://cs.nyu.edu/~panozzo/&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;aims to reduce the problem from a global to a local optimization problem&lt;/li&gt;
&lt;li&gt;iterative algorithm until quality reaches the expected threshold&lt;/li&gt;
&lt;li&gt;application shown in UV mapping and mesh deformation&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;http://simonstechblog.blogspot.ca/2017/11/light-map-in-seal-guardian.html?m=1&#34; target=&#34;_blank&#34;&gt;Light Map in &amp;ldquo;Seal Guardian&amp;rdquo;&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20171201205437/http://simonstechblog.blogspot.ca/2017/11/light-map-in-seal-guardian.html?m=1&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;build UV atlas, render positions into texture&lt;/li&gt;
&lt;li&gt;bake cube map per pixel of the light map&lt;/li&gt;
&lt;li&gt;stored as SH luma and average chroma in two RGBA8 textures&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://github.com/warrenm/Shadertweak&#34; target=&#34;_blank&#34;&gt;Shadertweak&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Shadertweak is an iPad app that allows you to rapidly prototype fragment shaders in the Metal shading language.&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 18 — November 26, 2017</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-18/</link>
      <pubDate>Sun, 26 Nov 2017 12:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-18/</guid>
      <description>&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://www.guerrilla-games.com/read/decima-engine-visibility-in-horizon-zero-dawn&#34; target=&#34;_blank&#34;&gt;Decima engine: visibility in horizon zero dawn&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/https://d1z4o56rleaq4j.cloudfront.net/downloads/assets/GCAP2017_DecimaVisibility.pdf?mtime=20171120133325&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;seperate system for statics and dynamics&lt;/li&gt;
&lt;li&gt;world broken into tiles&lt;/li&gt;
&lt;li&gt;sort key is used to define clusters

&lt;ul&gt;
&lt;li&gt;lod ranges, filter masks&lt;/li&gt;
&lt;li&gt;morton numbers for spatial partioning&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;tile/cluster culling on the CPU

&lt;ul&gt;
&lt;li&gt;launch one GPU culling job for each visible tile/cluster&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;gpu tasks use &lt;a href=&#34;https://devblogs.nvidia.com/parallelforall/cuda-pro-tip-optimized-filtering-warp-aggregated-atomics&#34; target=&#34;_blank&#34;&gt;aggregated atomics&lt;/a&gt; to write wavefront results

&lt;ul&gt;
&lt;li&gt;one atomic operation per wavefront instead of per thread&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;description of batching strategies
&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;http://ourmachinery.com/post/vulkan-command-buffer-management/&#34; target=&#34;_blank&#34;&gt;Vulkan: Command Buffer Management&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20171121153639/http://ourmachinery.com/post/vulkan-command-buffer-management/&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;CommandBuffer used to record GPU work&lt;/li&gt;
&lt;li&gt;each worker thread has one CommandPool which owns the CommandBuffer allocations&lt;/li&gt;
&lt;li&gt;engine CommandBuffer

&lt;ul&gt;
&lt;li&gt;packs completed fence, target queue&lt;/li&gt;
&lt;li&gt;Primary + secondary command buffers&lt;/li&gt;
&lt;li&gt;resource descriptors&lt;/li&gt;
&lt;li&gt;deleteted resources&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;once the fence is reached

&lt;ul&gt;
&lt;li&gt;resources are deleted&lt;/li&gt;
&lt;li&gt;descriptors and command buffers are marked for reuse&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://devblogs.nvidia.com/parallelforall/maximizing-unified-memory-performance-cuda/&#34; target=&#34;_blank&#34;&gt;Maximizing Unified Memory Performance in CUDA&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20171121153825/https://devblogs.nvidia.com/parallelforall/maximizing-unified-memory-performance-cuda/&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;on-demand page migration from CPU to GPU memory&lt;/li&gt;
&lt;li&gt;linear arrays nearly 2x slower then manual pre-fetching of gpu data&lt;/li&gt;
&lt;li&gt;number of page faults influences performance significantly

&lt;ul&gt;
&lt;li&gt;less page faults, better performance&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;how to structure code to achieve better asynchronous memory copy overlap&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://forums.tigsource.com/index.php?topic=40832.msg1363742#msg1363742&#34; target=&#34;_blank&#34;&gt;Stabel 1 pixel dithering&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20171123222517/https://forums.tigsource.com/index.php?topic=40832.msg1363742&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;image rendered in greyscale&lt;/li&gt;
&lt;li&gt;fullscreen pass applied to convert to 1-bit dithered image&lt;/li&gt;
&lt;li&gt;discussion of different experiments&lt;/li&gt;
&lt;li&gt;ended up using a dithering pattern mapped with 2x oversampling onto a sphere&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://blog.demofox.org/2017/11/21/floating-point-precision/&#34; target=&#34;_blank&#34;&gt;Demystifying Floating Point Precision&lt;/a&gt; &lt;a href=&#34;http://web.archive.org/web/20171125072738/https://blog.demofox.org/2017/11/21/floating-point-precision/&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;how to calculate precision of floats&lt;/li&gt;
&lt;li&gt;table listing the precision for half/float/double in different ranges&lt;/li&gt;
&lt;li&gt;show precision loss problem with storing time as float&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://arxiv.org/pdf/1711.07566.pdf&#34; target=&#34;_blank&#34;&gt;Neural 3D Mesh Renderer&lt;/a&gt; &lt;a href=&#34;http://web.archive.org/web/20171124190539/https://arxiv.org/pdf/1711.07566.pdf&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;3D mesh reconstruction from a single image&lt;/li&gt;
&lt;li&gt;applying 2D stylization from image to the 3D Mesh&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;http://richg42.blogspot.ca/2017/11/universal-gpu-texture-format-dxt5.html?m=1&#34; target=&#34;_blank&#34;&gt;Universal GPU texture format: DXT5 support&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20171127025754/http://richg42.blogspot.ca/2017/11/universal-gpu-texture-format-dxt5.html?m=1&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;ETC1 to DXT5A conversion using a lookup table&lt;/li&gt;
&lt;li&gt;discussion of results&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://github.com/s-macke/VoxelSpace&#34; target=&#34;_blank&#34;&gt;Voxel Space&lt;/a&gt; &lt;a href=&#34;http://web.archive.org/web/20171126201548/https://github.com/s-macke/VoxelSpace&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;description and WebGL demo of the terrain system used in the game Comanche released in 1992&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;http://tuxedolabs.blogspot.ca/2017/11/a-better-depth-buffer-for-raymarching.html?m=1&#34; target=&#34;_blank&#34;&gt;A better depth buffer for raymarching&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20171127025722/http://tuxedolabs.blogspot.ca/2017/11/a-better-depth-buffer-for-raymarching.html?m=1&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;single depth buffer value is not enough&lt;/li&gt;
&lt;li&gt;need to know the depth of objects for correct effects&lt;/li&gt;
&lt;li&gt;stores front and backface depth of objects in R and G channel and uses that to determine the thickness&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://www.youtube.com/watch?v=CggHZkFdTNM&#34; target=&#34;_blank&#34;&gt;Horizon: The Frozen Wilds PS4 Pro - Tech Breakdown and Engine Analysis&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;snow deformation, snow particles, animation adjustment&lt;/li&gt;
&lt;li&gt;in-engine visualtions for AI&lt;/li&gt;
&lt;li&gt;wireframe of character models&lt;/li&gt;
&lt;li&gt;breakdown of light passes&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://blog.demofox.org/2017/11/26/dissecting-tiny-clouds/&#34; target=&#34;_blank&#34;&gt;Dissecting “Tiny Clouds”&lt;/a&gt; &lt;a href=&#34;http://web.archive.org/web/20171127010155/https://blog.demofox.org/2017/11/26/dissecting-tiny-clouds/&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;breakdown and explanation of the &lt;a href=&#34;https://www.shadertoy.com/view/lsBfDz&#34; target=&#34;_blank&#34;&gt;Tiny Cloud&lt;/a&gt; shadertoy&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://erkaman.github.io/posts/gauss_newton.html&#34; target=&#34;_blank&#34;&gt;Simple Curve Fitting with the Gauss-Newton Algorithm&lt;/a&gt; &lt;a href=&#34;http://web.archive.org/web/20171126224646/https://erkaman.github.io/posts/gauss_newton.html&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;explanation of how to use the Gauss-Newton Algorithm to derive an approximation to the Schlick fresnel formula&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://fungos.github.io/blog/2017/11/20/cr.h-a-simple-c-hot-reload-header-only-library/&#34; target=&#34;_blank&#34;&gt;cr.h: A Simple C Hot Reload Header-only Library&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20171121153503/https://fungos.github.io/blog/2017/11/20/cr.h-a-simple-c-hot-reload-header-only-library/&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;open source system for hot reloading c code (written in C++)&lt;/li&gt;
&lt;li&gt;supports rollback to old version if an error is detected&lt;/li&gt;
&lt;li&gt;rewrites the .exe to point to the copied .pdb&lt;/li&gt;
&lt;li&gt;uses a custom data segment to mark statics for copying&lt;/li&gt;
&lt;li&gt;code is on &lt;a href=&#34;https://github.com/fungos/cr&#34; target=&#34;_blank&#34;&gt;github&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 17 — November 19, 2017</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-17/</link>
      <pubDate>Sun, 19 Nov 2017 12:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-17/</guid>
      <description>&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://blogs.msdn.microsoft.com/marcelolr/2017/11/14/last-week-on-directx-shader-compiler-2017-11-14/&#34; target=&#34;_blank&#34;&gt;Last Week on DirectX Shader Compiler (2017-11-14)&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20171114212438/https://blogs.msdn.microsoft.com/marcelolr/2017/11/14/last-week-on-directx-shader-compiler-2017-11-14/&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;support for explicitly sized types 16 to 64 bits&lt;/li&gt;
&lt;li&gt;spir-v improvements&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://github.com/embree/embree/releases/tag/v2.17.1&#34; target=&#34;_blank&#34;&gt;Embree v2.17.1&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Improved performance of occlusion ray packets by up to 50%&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://interplayoflight.wordpress.com/2017/11/15/experiments-in-gpu-based-occlusion-culling/&#34; target=&#34;_blank&#34;&gt;Experiments in GPU-based occlusion culling&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20171118150728/https://interplayoflight.wordpress.com/2017/11/15/experiments-in-gpu-based-occlusion-culling/&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;An GPU occlusion system that does not require mayor changes to existing D3D11 based engines&lt;/li&gt;
&lt;li&gt;render occluders to depth buffer&lt;/li&gt;
&lt;li&gt;mip chain generation&lt;/li&gt;
&lt;li&gt;world transform + aabb (axis aligned bounding box) in structured buffer&lt;/li&gt;
&lt;li&gt;if visible write the transform to an AppendBuffer&lt;/li&gt;
&lt;li&gt;DrawIndexedInstancedIndirect for drawing the models

&lt;ul&gt;
&lt;li&gt;index count is pre-filled by the CPU when creating the buffer&lt;/li&gt;
&lt;li&gt;only the number of instances needs to be atomically incremented on the GPU&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;expand to support multiple mesh types culling in one pass

&lt;ul&gt;
&lt;li&gt;remove use of AppendBuffer&lt;/li&gt;
&lt;li&gt;removing invisible instances with parallel prefix scan for stream compaction&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://blogs.unity3d.com/2017/11/15/updated-crunch-texture-compression-library/&#34; target=&#34;_blank&#34;&gt;Updated Crunch texture compression library&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20171120023303/https://blogs.unity3d.com/2017/11/15/updated-crunch-texture-compression-library/&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;compress DXT textures up to 2.5 times faster

&lt;ul&gt;
&lt;li&gt;latest github version up to 5x faster&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;10% better compression ratio&lt;/li&gt;
&lt;li&gt;added support for ETC_RGB4 and ETC2_RGBA8&lt;/li&gt;
&lt;li&gt;commits have very detailed commit messages to follow the progress along &lt;a href=&#34;https://github.com/Unity-Technologies/crunch/commits/unity?after=c1d8e8da7145c90198d3035344dadc474fd176b3+34&#34; target=&#34;_blank&#34;&gt;github&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://www.gamasutra.com/blogs/PavelZagrebelnyy/20171116/309626/Mud_and_Water_of_SpintiresMudRunner.php&#34; target=&#34;_blank&#34;&gt;Mud and Water of Spintires: MudRunner&lt;/a&gt; &lt;a href=&#34;http://web.archive.org/web/20171116120223/https://www.gamasutra.com/blogs/PavelZagrebelnyy/20171116/309626/Mud_and_Water_of_SpintiresMudRunner.php&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;visual aspects driven via textures

&lt;ul&gt;
&lt;li&gt;dynamically updated through rendering of particles into textures&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;projection of meshes&lt;/li&gt;
&lt;li&gt;heavy use of decals&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;mud system

&lt;ul&gt;
&lt;li&gt;mud displacement&lt;/li&gt;
&lt;li&gt;wheel tracks&lt;/li&gt;
&lt;li&gt;mud particles&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;water system

&lt;ul&gt;
&lt;li&gt;water simulation&lt;/li&gt;
&lt;li&gt;geometric water waves&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://www.gamasutra.com/blogs/KrzysztofNarkowicz/20171116/309724/&#34; target=&#34;_blank&#34;&gt;Biome Painter: Populating Massive Worlds&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20171117004625/https://www.gamasutra.com/blogs/KrzysztofNarkowicz/20171116/309724/&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;generate terrain textures and entity placement from the same system&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;biome type and lushness in color maps&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;spawns entities on pre-calculated spawn points&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;entities spawned at runtime&lt;/li&gt;
&lt;li&gt;following rules based on terrain information&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;Biome LOD&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;based on distance spawn only larger objects&lt;/li&gt;
&lt;li&gt;small object just close to the player&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;splines are used for roads/rivers&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;automatically adjusts the maps to adjust for it&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;biome blockers&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;simple shapes that reduce or remove biomes where placed&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://www.unrealengine.com/en-US/blog/technology-sneak-peek-python-in-unreal-engine&#34; target=&#34;_blank&#34;&gt;Technology Sneak Peek: Python in Unreal Engine&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20171120023559/https://www.unrealengine.com/en-US/blog/technology-sneak-peek-python-in-unreal-engine&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;automated non destructive workflow processing&lt;/li&gt;
&lt;li&gt;replace materials/combine models/ remove detailts etc&amp;hellip;&lt;/li&gt;
&lt;li&gt;can be python or visual scripting (blueprint)&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://www.nature.com/articles/s41598-017-15313-9&#34; target=&#34;_blank&#34;&gt;Gpufit: An open-source toolkit for GPU-accelerated curve fitting&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20171120023718/https://www.nature.com/articles/s41598-017-15313-9&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;GPU-accelerated , open-source library for curve fitting&lt;/li&gt;
&lt;li&gt;using the Levenberg-Marquardt algorithm&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 16 — November 12, 2017</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-16/</link>
      <pubDate>Sun, 12 Nov 2017 12:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-16/</guid>
      <description>&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://blogs.msdn.microsoft.com/directx/2017/11/07/announcing-new-directx-12-features/&#34; target=&#34;_blank&#34;&gt;Announcing new DirectX 12 features&lt;/a&gt; &lt;a href=&#34;http://web.archive.org/web/20171109190010/https://blogs.msdn.microsoft.com/directx/2017/11/07/announcing-new-directx-12-features/&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;support for GPU heaps that persist a device removal &lt;a href=&#34;https://msdn.microsoft.com/en-us/library/windows/desktop/mt813612(v=vs.85).aspx&#34; target=&#34;_blank&#34;&gt;MSDN&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;allow writing of U32 values directly from withing command lists  &lt;a href=&#34;https://msdn.microsoft.com/en-us/library/windows/desktop/mt844818(v=vs.85).aspx&#34; target=&#34;_blank&#34;&gt;MSDN&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;Depth Bounds Testing support &lt;a href=&#34;https://msdn.microsoft.com/en-us/library/windows/desktop/mt492658(v=vs.85).aspx&#34; target=&#34;_blank&#34;&gt;MSDN&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;Programmable MSAA &lt;a href=&#34;https://msdn.microsoft.com/en-us/library/windows/desktop/mt492660(v=vs.85).aspx&#34; target=&#34;_blank&#34;&gt;MSDN&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://80.lv/articles/world-of-tanks-graphical-update-technical-overview/&#34; target=&#34;_blank&#34;&gt;World of Tanks: Graphical Update Technical Overview&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20171112195718/https://80.lv/articles/world-of-tanks-graphical-update-technical-overview/&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Stochastic Flakes for rough materials (snow, dust, sand)&lt;/li&gt;
&lt;li&gt;spherical harmonics grid for Global Illumination

&lt;ul&gt;
&lt;li&gt;height deviation on terrain/objects to optimize probe placement&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;breakdown of water system&lt;/li&gt;
&lt;li&gt;deformation particles

&lt;ul&gt;
&lt;li&gt;allow geometry to be deformed&lt;/li&gt;
&lt;li&gt;bent grass, water deformation, shockwaves&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;terrain system&lt;/li&gt;
&lt;li&gt;vegetation system&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://ebruneton.github.io/precomputed_atmospheric_scattering/&#34; target=&#34;_blank&#34;&gt;Precomputed Atmospheric Scattering:a New Implementation&lt;/a&gt; &lt;a href=&#34;http://web.archive.org/web/20171025101157/https://ebruneton.github.io/precomputed_atmospheric_scattering/&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;new OpenGL implementation of bruneton scattering model&lt;/li&gt;
&lt;li&gt;a lot more documentation and implementation descriptions&lt;/li&gt;
&lt;li&gt;new features

&lt;ul&gt;
&lt;li&gt;ozone layer&lt;/li&gt;
&lt;li&gt;support for extra-terrestrial solar spectrum&lt;/li&gt;
&lt;li&gt;density profiles for air molecules and aerosols&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;http://www.ppsloan.org/publications/shdering.pdf&#34; target=&#34;_blank&#34;&gt;Deringing Spherical Harmonics&lt;/a&gt; &lt;a href=&#34;http://web.archive.org/web/20171110080604/http://www.ppsloan.org/publications/shdering.pdf&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;removing ringing artifacts using &lt;a href=&#34;https://en.wikipedia.org/wiki/Window_function&#34; target=&#34;_blank&#34;&gt;windowing functions&lt;/a&gt; (function that is zero-valued outside of some chosen interval)&lt;/li&gt;
&lt;li&gt;how to determine how much windowing to apply&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://turanszkij.wordpress.com/2017/11/07/gpu-based-particle-simulation/amp/&#34; target=&#34;_blank&#34;&gt;GPU-based particle simulation&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20171107181048/https://turanszkij.wordpress.com/2017/11/07/gpu-based-particle-simulation/amp/&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;D3D11 based&lt;/li&gt;
&lt;li&gt;implementation overview

&lt;ul&gt;
&lt;li&gt;code is accessible on github&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://tuxedolabs.blogspot.ca/2017/11/upscaling-half-resolution-screen-space.html?m=1&#34; target=&#34;_blank&#34;&gt;Upscaling half resolution screen space effects&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20171112195833/https://tuxedolabs.blogspot.ca/2017/11/upscaling-half-resolution-screen-space.html?m=1&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;render diffuse at half-resolution&lt;/li&gt;
&lt;li&gt;generate &amp;ldquo;retouching&amp;rdquo; vector field

&lt;ul&gt;
&lt;li&gt;used during upscaling&lt;/li&gt;
&lt;li&gt;information where to fetch samples&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;http://wiki.amplify.pt/index.php?title=Unity_Products:Amplify_Shader_Editor/Tutorials/Rendering_Shaders_Overview&#34; target=&#34;_blank&#34;&gt;Amplify Shader Editor - Rendering Shaders Overview&lt;/a&gt; &lt;a href=&#34;http://web.archive.org/web/20171111012416/http://wiki.amplify.pt/index.php?title=Unity_Products:Amplify_Shader_Editor/Tutorials/Rendering_Shaders_Overview&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;series of short beginner level videos about

&lt;ul&gt;
&lt;li&gt;shaders&lt;/li&gt;
&lt;li&gt;physically based rendering&lt;/li&gt;
&lt;li&gt;3d models&lt;/li&gt;
&lt;li&gt;materials&lt;/li&gt;
&lt;li&gt;textures&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;http://www.swedishcoding.com/2017/11/10/multi-core-programming-and-cache-coherency/&#34; target=&#34;_blank&#34;&gt;Multi-core programming and cache coherency&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;talks about how caches are working on a hardware level

&lt;ul&gt;
&lt;li&gt;cache protocol&lt;/li&gt;
&lt;li&gt;memory barriers&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://erkaman.github.io/posts/gauss_seidel_graph_coloring.html&#34; target=&#34;_blank&#34;&gt;Parallelizing the Gauss-Seidel Method using Graph Coloring&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20171112200139/https://erkaman.github.io/posts/gauss_seidel_graph_coloring.html&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;detect partition of variables that can be solved indepedently

&lt;ul&gt;
&lt;li&gt;variables within one parition can be solved in parrallel&lt;/li&gt;
&lt;li&gt;detect partitions with graph coloring&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;sparse matrices result in low number of partitions

&lt;ul&gt;
&lt;li&gt;common in game use cases&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://github.com/Josh015/Alloy&#34; target=&#34;_blank&#34;&gt;Alloy - Open source&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Physical Shader Framework for unity, now open source&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://www.youtube.com/watch?v=3OGKh_9Rj_8&#34; target=&#34;_blank&#34;&gt;SIGGRAPH Asia 2017 – Technical Papers Trailer&lt;/a&gt;&lt;/p&gt;

&lt;hr /&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 15 — November 5, 2017</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-15/</link>
      <pubDate>Sun, 05 Nov 2017 12:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-15/</guid>
      <description>&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://www.youtube.com/watch?v=VFHYaH5Vr4I&#34; target=&#34;_blank&#34;&gt;2017 LLVM Developers’ Meeting: “Apple LLVM GPU Compiler: Embedded Dragons&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;explanation of GPUs&lt;/li&gt;
&lt;li&gt;overview of GPU execution model

&lt;ul&gt;
&lt;li&gt;latency hiding&lt;/li&gt;
&lt;li&gt;register usage&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;many compiler internals

&lt;ul&gt;
&lt;li&gt;optimizations and trade-offs that need to be considered&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;uniformity hoisting&lt;br /&gt;

&lt;ul&gt;
&lt;li&gt;compiler is able to extract constants and run as part of low frequency kernels&lt;/li&gt;
&lt;li&gt;saves power and performance&lt;/li&gt;
&lt;li&gt;even hoisting a single add is a win on apple hardware&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://80.lv/articles/ssrtgi-toughest-challenge-in-real-time-3d/&#34; target=&#34;_blank&#34;&gt;Screen Space Ray-Traced Global Illumination: Toughest Challenge in Real-Time 3D&lt;/a&gt; &lt;a href=&#34;http://web.archive.org/web/20171101123158/https://80.lv/articles/ssrtgi-toughest-challenge-in-real-time-3d/&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;use technqiues from Screen Space Reflections for

&lt;ul&gt;
&lt;li&gt;ambient occlusion&lt;/li&gt;
&lt;li&gt;secondary diffuse light bounces&lt;/li&gt;
&lt;li&gt;self-illumination of emission objects&lt;/li&gt;
&lt;li&gt;bent normal calculation

&lt;ul&gt;
&lt;li&gt;average direction of ambient light that is not occluded&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;high level overview of the implementation and results&lt;/li&gt;
&lt;li&gt;demo at: &lt;a href=&#34;https://youtu.be/hpuEdXn_M0Q?t=1497&#34; target=&#34;_blank&#34;&gt;SIGGRAPH 2017 Real Time Live&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;http://www.tomlooman.com/lighting-with-unreal-engine-jerome/&#34; target=&#34;_blank&#34;&gt;Lighting with Unreal Engine Masterclass (Summary)&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20171030154339/http://www.tomlooman.com/lighting-with-unreal-engine-jerome/&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;writeup of the static lighting information provided as part of the &lt;a href=&#34;https://www.youtube.com/watch?v=ihg4uirMcec&#34; target=&#34;_blank&#34;&gt;Lighting with Unreal Engine Masterclass | Unreal Dev Day Montreal 2017&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://www.youtube.com/watch?time_continue=1&amp;amp;v=_-OoMySD66E&#34; target=&#34;_blank&#34;&gt;STAR CITIZEN: CitizenCon 2947 - Graphics and Tech Development for Star Engine&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;full frame breakdown

&lt;ul&gt;
&lt;li&gt;dynamic environment probes, distributed across frames&lt;/li&gt;
&lt;li&gt;occlusion direction + angle in GBuffer

&lt;ul&gt;
&lt;li&gt;vector in direction of least occlusion (&amp;ldquo;bent-normals&amp;rdquo;)&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;optics

&lt;ul&gt;
&lt;li&gt;anamorphic flare&lt;/li&gt;
&lt;li&gt;physically based lens flare&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;4 frame temporal AA&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;physically based glass shader&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;http://ourmachinery.com/post/vulkan-descriptor-sets-management/&#34; target=&#34;_blank&#34;&gt;Vulkan: Descriptor Sets Management&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20171106124823/http://ourmachinery.com/post/vulkan-descriptor-sets-management/&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;resource binders of the engine mapped to resource descriptor

&lt;ul&gt;
&lt;li&gt;these are blueprints&lt;/li&gt;
&lt;li&gt;copied into descriptor pools during rendering&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;these pools will be released when the GPU is done rendering the frame&lt;/li&gt;
&lt;li&gt;reduce fragmentation and lower tracking overhead&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://blog.demofox.org/2017/10/31/animating-noise-for-integration-over-time/amp/&#34; target=&#34;_blank&#34;&gt;Animating Noise For Integration Over Time&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20171106124856/https://blog.demofox.org/2017/10/31/animating-noise-for-integration-over-time/amp/&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;analysis of white noise, blue noise and Interleaved Gradient Noise for reconstruction of image&lt;/li&gt;
&lt;li&gt;experimenting with golden ratio addition to create changing noise without having to regenerate it

&lt;ul&gt;
&lt;li&gt;which seems to be an ok approximation&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://arxiv.org/pdf/1710.09834.pdf&#34; target=&#34;_blank&#34;&gt;Deep Illumination: Approximating Dynamic Global Illumination with Generative Adversarial Network&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20171106125135/https://arxiv.org/pdf/1710.09834.pdf&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;machine learning technique&lt;/li&gt;
&lt;li&gt;trained with mapping from GBuffer + direct illumination to -&amp;gt; indirect illumination&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://assets.bitbashing.io/papers/lockless.pdf&#34; target=&#34;_blank&#34;&gt;What every systems programmer should know about lockless concurrency&lt;/a&gt; &lt;a href=&#34;http://web.archive.org/web/20171105181042/https://assets.bitbashing.io/papers/lockless.pdf&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;great overview of concurrency building blocks&lt;/li&gt;
&lt;li&gt;hardware level overview&lt;/li&gt;
&lt;li&gt;how to use C++11 to ensure correctness&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://medium.com/vertices-and-faces/practical-applications-of-the-dot-product-c5503c2e454e&#34; target=&#34;_blank&#34;&gt;Practical applications of the dot product&lt;/a&gt; &lt;a href=&#34;http://web.archive.org/web/20171106035545/https://medium.com/vertices-and-faces/practical-applications-of-the-dot-product-c5503c2e454e&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Projecting a vector onto a vector&lt;/li&gt;
&lt;li&gt;Finding the orthogonal component of a vector to another vector&lt;/li&gt;
&lt;li&gt;Finding the shortest distance from a point to a segment&lt;/li&gt;
&lt;li&gt;With interactive demos&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://www.youtube.com/watch?v=Q6tC7IVUuEc&amp;amp;feature=youtu.be&#34; target=&#34;_blank&#34;&gt;CppCon 2017: Rich Geldreich &amp;amp; Stephanie Hurlburt “The Future of Texture Compression”&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;discussion of problem space&lt;/li&gt;
&lt;li&gt;overview of GPU formats

&lt;ul&gt;
&lt;li&gt;ETCS1&lt;/li&gt;
&lt;li&gt;DXT1&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;.basis will be an khronos standard&lt;/li&gt;
&lt;li&gt;encoder takes non-uniform texture arrays and compresses these

&lt;ul&gt;
&lt;li&gt;mips / cubemaps / video frames / &amp;hellip; all handled the same way&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://erkaman.github.io/posts/quaternion_rotation.html&#34; target=&#34;_blank&#34;&gt;Showing the Correctness of Quaternion Rotation&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20171106125318/https://erkaman.github.io/posts/quaternion_rotation.html&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;algebraic proof for quaternion rotation&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://cs.dartmouth.edu/~wjarosz/publications/bitterli17reversible.html&#34; target=&#34;_blank&#34;&gt;Reversible Jump Metropolis Light Transport Using Inverse Mappings&lt;/a&gt;&lt;/p&gt;

&lt;hr /&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 14 — October 29, 2017</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-14/</link>
      <pubDate>Sun, 29 Oct 2017 12:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-14/</guid>
      <description>&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;http://www.duskborn.com/wp-content/uploads/2015/03/OpenCL-to-Vulkan-A-Porting-Guide.pdf&#34; target=&#34;_blank&#34;&gt;OpenCl -&amp;gt; Vulkan: A Porting Guide&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20171030125257/http://www.duskborn.com/wp-content/uploads/2015/03/OpenCL-to-Vulkan-A-Porting-Guide.pdf&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;why?

&lt;ul&gt;
&lt;li&gt;better cross-platforms support&lt;/li&gt;
&lt;li&gt;more frequent driver updates&lt;/li&gt;
&lt;li&gt;more tools&lt;/li&gt;
&lt;li&gt;less driver overhead, up to 3x less&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;shows differences between the APIs&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/google/clspv&#34; target=&#34;_blank&#34;&gt;clspv&lt;/a&gt; a tool to compile openCL shaders to SPIRV&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://www.gamasutra.com/blogs/JohannesKuhlmann/20171023/308101/Bringing_Galaxy_on_Fire_3_to_Vulkan_Stats__Summary.php&#34; target=&#34;_blank&#34;&gt;Bringing Galaxy on Fire 3 to Vulkan: Stats &amp;amp; Summary&lt;/a&gt; &lt;a href=&#34;http://web.archive.org/web/20171024235621/https://www.gamasutra.com/blogs/JohannesKuhlmann/20171023/308101/Bringing_Galaxy_on_Fire_3_to_Vulkan_Stats__Summary.php&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;vulkan, 40% more code&lt;/li&gt;
&lt;li&gt;between 2.7x to 4x faster then OpenGL ES across devices (CPU performance)&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://m.makemepulse.com/nanogl-a-crafted-webgl-2-microframework-39837889f6a4&#34; target=&#34;_blank&#34;&gt;NanoGL : a crafted WebGL(2) microframework&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20171026183150/https://m.makemepulse.com/nanogl-a-crafted-webgl-2-microframework-39837889f6a4?gi=2adb2e42d0c0&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;light-weight helpers wrapping the WebGL2 API&lt;/li&gt;
&lt;li&gt;separate modules

&lt;ul&gt;
&lt;li&gt;Draco compressed models&lt;/li&gt;
&lt;li&gt;GPU textures + high MIP streaming&lt;/li&gt;
&lt;li&gt;LOD system&lt;/li&gt;
&lt;li&gt;PBR&lt;/li&gt;
&lt;li&gt;Post effects&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;nice videos showing the features&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://interplayoflight.wordpress.com/2017/10/25/how-unreal-renders-a-frame/amp/&#34; target=&#34;_blank&#34;&gt;How Unreal Renders a Frame&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20171026183459/https://interplayoflight.wordpress.com/2017/10/25/how-unreal-renders-a-frame/amp/&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;breakdown and high-level look at how UE4 rendering works&lt;/li&gt;
&lt;li&gt;small explanations about how each stages works and some implementation details&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://devblogs.nvidia.com/parallelforall/gpu-computing-julia-programming-language/&#34; target=&#34;_blank&#34;&gt;High-Performance GPU Computing in the Julia Programming Language&lt;/a&gt; &lt;a href=&#34;http://web.archive.org/web/20171027160029/https://devblogs.nvidia.com/parallelforall/gpu-computing-julia-programming-language/&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;work-in-progress support&lt;/li&gt;
&lt;li&gt;same high-level language on CPU and GPU (some limitation)&lt;/li&gt;
&lt;li&gt;written inline with CPU code&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://blog.demofox.org/2017/10/25/transmuting-white-noise-to-blue-red-green-purple/amp/&#34; target=&#34;_blank&#34;&gt;Transmuting White Noise To Blue, Red, Green, Purple&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20171026182513/https://blog.demofox.org/2017/10/25/transmuting-white-noise-to-blue-red-green-purple/amp/&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;how to turn white noise into different kinds of noise&lt;/li&gt;
&lt;li&gt;done by filtering white noise to only include the desired frequencies&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://erkaman.github.io/posts/jacobi_and_gauss_seidel.html&#34; target=&#34;_blank&#34;&gt;The Gauss-Seidel and Jacobi Methods for Solving Linear Systems&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20171030124639/https://erkaman.github.io/posts/jacobi_and_gauss_seidel.html&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;explanation of the Jacobi Method and Gauss-Seidel method, both are very similar&lt;/li&gt;
&lt;li&gt;but Gauss-Seidel converges a lot quicker&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://gopro.github.io/cineform-sdk/&#34; target=&#34;_blank&#34;&gt;The GoPro® CineForm video codec SDK - open source&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;12-bit, full-frame wavelet compression video codec&lt;/li&gt;
&lt;li&gt;constant quality, bit-rates will vary as needed&lt;/li&gt;
&lt;li&gt;decoder, encoder, test applicatiom open source&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://www.youtube.com/watch?v=gV42w573jGA&#34; target=&#34;_blank&#34;&gt;Optimizing Graphic Performance: Temporal Foveated Rendering for VR&lt;/a&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;http://thelittleengineerthatcould.blogspot.ca/2017/10/srgb-versus-linear-colour-space.html?m=1&#34; target=&#34;_blank&#34;&gt;sRGB versus Linear Colour Space&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20171027170258/http://thelittleengineerthatcould.blogspot.ca/2017/10/srgb-versus-linear-colour-space.html?m=1&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;sRGB backbuffer handling in SDL / OpenGl&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;http://thelittleengineerthatcould.blogspot.ca/2017/10/srgb-colour-space-part-deux.html?m=1&#34; target=&#34;_blank&#34;&gt;sRGB Colour Space - Part Deux&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20171027170743/http://thelittleengineerthatcould.blogspot.ca/2017/10/srgb-colour-space-part-deux.html?m=1&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;how to use hardware sRGB -&amp;gt; linear conversion with OpenGL for textures&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 13 — October 22, 2017</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-13/</link>
      <pubDate>Sun, 22 Oct 2017 12:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-13/</guid>
      <description>&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;http://asawicki.info/articles/VK_KHR_dedicated_allocation.php5&#34; target=&#34;_blank&#34;&gt;VK_KHR_dedicated_allocation unofficial manual&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20171023035149/http://asawicki.info/articles/VK_KHR_dedicated_allocation.php5&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;extension allows the driver to inform application that separate allocations are preferred&lt;/li&gt;
&lt;li&gt;nvidia and intel need this extension to allow extra optimizations&lt;/li&gt;
&lt;li&gt;how to use the extension&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://dakrunch.blogspot.ca/2017/10/material-layering.html?m=1&#34; target=&#34;_blank&#34;&gt;Material layering&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20171023035231/https://dakrunch.blogspot.ca/2017/10/material-layering.html?m=1&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;overview of different techniques&lt;/li&gt;
&lt;li&gt;Color Layering

&lt;ul&gt;
&lt;li&gt;shade each layer and blend the results&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;Pattern Layering

&lt;ul&gt;
&lt;li&gt;blending the inputs and shading once with that&lt;/li&gt;
&lt;li&gt;discussion of problems&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://programmingdesignsystems.com/color/perceptually-uniform-color-spaces/&#34; target=&#34;_blank&#34;&gt;Perceptually uniform color spaces&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20211215204701/https://programmingdesignsystems.com/color/perceptually-uniform-color-spaces/&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Why is sRGB not linear?&lt;/li&gt;
&lt;li&gt;and what problems this causes when working with sRGB colors&lt;/li&gt;
&lt;li&gt;HSLuv color space

&lt;ul&gt;
&lt;li&gt;human-friendly HSL&lt;/li&gt;
&lt;li&gt;identical lightness = equally bright&lt;/li&gt;
&lt;li&gt;same saturation = same perceived color purity&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://github.com/LukasBanana/XShaderCompiler/releases/tag/master-thesis&#34; target=&#34;_blank&#34;&gt;Master Thesis: Cross-Compiling Shading Languages&lt;/a&gt; &lt;a href=&#34;http://web.archive.org/web/20171020141723/https://github.com/LukasBanana/XShaderCompiler/releases/tag/master-thesis&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;using source-to-source compiler (HLSL to GLSL)&lt;/li&gt;
&lt;li&gt;overview of different models&lt;/li&gt;
&lt;li&gt;&amp;ldquo;translation&amp;rdquo; of concept differences between shading languages&lt;/li&gt;
&lt;li&gt;implementation overview&lt;/li&gt;
&lt;li&gt;source code&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;http://www.diva-portal.org/smash/get/diva2:843104/FULLTEXT02&#34; target=&#34;_blank&#34;&gt;A Temporal stable Distance to Edge Anti-Aliasing Technique for GCN architecture&lt;/a&gt; &lt;a href=&#34;http://web.archive.org/web/20171016152004/http://www.diva-portal.org/smash/get/diva2:843104/FULLTEXT02&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;master thesis produced at EA DICE&lt;/li&gt;
&lt;li&gt;idea, store the distance from the nearest edge in all pixels + extra post-pass blurs neighbors with each other if an edge is shared by the pixel pair&lt;/li&gt;
&lt;li&gt;how to take advantage of GCN hardware for this&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://docs.google.com/presentation/d/18yvym_tmSDnVC-mXRO9ykgP0RnBPoS5xgkzPt9EZNUk/edit#slide=id.p3&#34; target=&#34;_blank&#34;&gt;Forward+ and Clustered Shading&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;what are deferred shading limitations&lt;/li&gt;
&lt;li&gt;how does tiled deferred improve and solve some of the limitations&lt;/li&gt;
&lt;li&gt;Forward+

&lt;ul&gt;
&lt;li&gt;how does it work&lt;/li&gt;
&lt;li&gt;comparison to deferred and classical forward shading&lt;/li&gt;
&lt;li&gt;how to extend to Clustered&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://www.3dgep.com/volume-tiled-forward-shading/&#34; target=&#34;_blank&#34;&gt;Volume Tiled Forward Shading&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20171023035332/https://www.3dgep.com/volume-tiled-forward-shading/&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;master thesis&lt;/li&gt;
&lt;li&gt;aims to improve upon Clustered forward shading

&lt;ul&gt;
&lt;li&gt;optimizes mainly the light assignment phase&lt;/li&gt;
&lt;li&gt;done by using a BVH( Bounding Volume Hierarchy) for the lights&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;http://developer.samsung.com/game&#34; target=&#34;_blank&#34;&gt;Galaxy GameDev&lt;/a&gt; &lt;a href=&#34;http://web.archive.org/web/20160116231623/http://developer.samsung.com:80/game&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;collection of resource to achieve best results on the mali GPUs in Galaxy phones&lt;/li&gt;
&lt;li&gt;especially interesting: &lt;a href=&#34;http://developer.samsung.com/game/usage&#34; target=&#34;_blank&#34;&gt;Vulkan Usage Recommendations&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20171023035452/http://developer.samsung.com/game/usage&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://github.com/ARM-software/perfdoc&#34; target=&#34;_blank&#34;&gt;PerfDoc&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20171023035536/https://github.com/ARM-software/perfdoc&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Vulkan layer to validate against the Mali Application Developer Best Practices&lt;/li&gt;
&lt;li&gt;example of the output: &lt;a href=&#34;https://twitter.com/SaschaWillems2/status/921101878364196864?s=09&#34; target=&#34;_blank&#34;&gt;https://twitter.com/SaschaWillems2/status/921101878364196864?s=09&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;can be run on any vulkan device&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://blog.demofox.org/2017/10/20/generating-blue-noise-sample-points-with-mitchells-best-candidate-algorithm/amp/&#34; target=&#34;_blank&#34;&gt;Generating Blue Noise Sample Points With Mitchell’s Best Candidate Algorithm&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20171023035600/https://blog.demofox.org/2017/10/20/generating-blue-noise-sample-points-with-mitchells-best-candidate-algorithm/amp/&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;explanation of regular, white and blue noise sampling&lt;/li&gt;
&lt;li&gt;and algorithm overview to generate blue noise (with source code)&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;http://johnwhite3d.blogspot.ca/2017/10/signed-octahedron-normal-encoding.html&#34; target=&#34;_blank&#34;&gt;Signed Octahedron Normal Encoding&lt;/a&gt; &lt;a href=&#34;http://web.archive.org/web/20171021042003/http://johnwhite3d.blogspot.ca/2017/10/signed-octahedron-normal-encoding.html&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;extending Octahedron encoding for normals with an extra sign bit&lt;/li&gt;
&lt;li&gt;better precision&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://ventspace.wordpress.com/2017/10/20/games-look-bad-part-1-hdr-and-tone-mapping/amp/&#34; target=&#34;_blank&#34;&gt;Games Look Bad, Part 1: HDR and Tone Mapping&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20171023035657/https://ventspace.wordpress.com/2017/10/20/games-look-bad-part-1-hdr-and-tone-mapping/amp/&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;subjective discussion of the visual/art direction aspects of HDR and color mapping in games&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://github.com/facebookincubator/FBX2glTF&#34; target=&#34;_blank&#34;&gt;FBX2glTF&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;command line tool for converting 3D model assets from FBX to glTF 2.0&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://blogs.msdn.microsoft.com/marcelolr/2017/10/13/compilation-pipeline-in-the-directx-compiler/&#34; target=&#34;_blank&#34;&gt;Compilation Pipeline in the DirectX Compiler&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20171023035756/https://blogs.msdn.microsoft.com/marcelolr/2017/10/13/compilation-pipeline-in-the-directx-compiler/&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;high level overview how the compiler flow is implemented&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://erkaman.github.io/posts/area_convex_polygon.html&#34; target=&#34;_blank&#34;&gt;Computing the Area of a Convex Polygon&lt;/a&gt; &lt;a href=&#34;http://web.archive.org/web/20171015235638/https://erkaman.github.io/posts/area_convex_polygon.html&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;clear and good to follow derivation&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 12 — October 15, 2017</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-12/</link>
      <pubDate>Sun, 15 Oct 2017 12:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-12/</guid>
      <description>&lt;hr /&gt;

&lt;!--End mc_embed_signup--&gt;

&lt;p&gt;&lt;a href=&#34;https://turanszkij.wordpress.com/2017/10/12/forward-decal-rendering/amp/&#34; target=&#34;_blank&#34;&gt;Forward+ decal rendering&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20171016024515/https://turanszkij.wordpress.com/2017/10/12/forward-decal-rendering/amp/&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;goals: avoid additional geometry, and don&amp;rsquo;t increase draw call count&lt;/li&gt;
&lt;li&gt;extend the light structure to also support decals&lt;/li&gt;
&lt;li&gt;cull the decals, sort them and apply them in the object shader just as lights&lt;/li&gt;
&lt;li&gt;still has a few open problems, for example mip selection

&lt;ul&gt;
&lt;li&gt;possible solution: calculate the UV gradients manually as in &lt;a href=&#34;https://github.com/TheRealMJP/DeferredTexturing/blob/master/BindlessDeferred/Shading.hlsl#L193&#34; target=&#34;_blank&#34;&gt;this example&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://eidosmontreal.com/en/news/depth-proxy-transparency-rendering&#34; target=&#34;_blank&#34;&gt;Depth proxy transparency rendering&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20171016024418/https://eidosmontreal.com/en/news/depth-proxy-transparency-rendering&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Depth proxy: 2 channel textures that contains min and max of transparent entity&lt;/li&gt;
&lt;li&gt;using this structure for various applications

&lt;ul&gt;
&lt;li&gt;Particles Self-Shadowing&lt;/li&gt;
&lt;li&gt;Volumetric Effects-Particles Sorting&lt;/li&gt;
&lt;li&gt;Particles-Transparent Meshes Sorting&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;http://www.codersnotes.com/notes/lightmap-tricks/&#34; target=&#34;_blank&#34;&gt;Little Lightmap Tricks&lt;/a&gt; &lt;a href=&#34;http://web.archive.org/web/20171011044941/http://www.codersnotes.com/notes/lightmap-tricks/&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

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

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;http://ourmachinery.com/post/its-all-about-the-data/&#34; target=&#34;_blank&#34;&gt;It’s All About The Data&lt;/a&gt; &lt;a href=&#34;http://web.archive.org/web/20171010022458/http://ourmachinery.com/post/its-all-about-the-data/&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;how to optimize data transformation from API agnostic command buffers to API specific calls&lt;/li&gt;
&lt;li&gt;think about data layout&lt;/li&gt;
&lt;li&gt;combine state settings into few and bigger commands&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://www.unrealengine.com/en-US/blog/unreal-dev-day-montreal-presentations-released&#34; target=&#34;_blank&#34;&gt;Unreal Dev Day Montreal Presentations Released&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20171016025424/https://www.unrealengine.com/en-US/blog/unreal-dev-day-montreal-presentations-released&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://www.youtube.com/watch?v=hcxetY8g_fs&#34; target=&#34;_blank&#34;&gt;UE4 Performance and Profiling&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.youtube.com/watch?v=nVes6OUyzdw&#34; target=&#34;_blank&#34;&gt;Paragon Character Texturing Pipeline&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.youtube.com/watch?v=Vhsllsv53K0&#34; target=&#34;_blank&#34;&gt;Creating Complex In-Game Effects&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.youtube.com/watch?v=ihg4uirMcec&#34; target=&#34;_blank&#34;&gt;Lighting with Unreal Engine Masterclass&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.youtube.com/watch?v=LS0VsMMTaQA&#34; target=&#34;_blank&#34;&gt;Fortnite Trailer Pipeline&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://developer.nvidia.com/aftermath-update&#34; target=&#34;_blank&#34;&gt;Aftermath 1.3 Update&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20171016025409/https://developer.nvidia.com/aftermath-update&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;no need to rename the .exe anymore&lt;/li&gt;
&lt;li&gt;can return resource information&lt;/li&gt;
&lt;li&gt;reduced overhead (memory and CPU performance)&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://github.com/Microsoft/Xbox-ATG-Samples&#34; target=&#34;_blank&#34;&gt;Xbox-ATG-Samples&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;samples released by the Xbox Advanced Technology Group&lt;/li&gt;
&lt;li&gt;this includes source code for Xbox One samples&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://docs.google.com/presentation/d/1Z_3-3V6FRsF8OJNeH7yc6UKtgXy90Ggff07V9Z6uo6U/edit&#34; target=&#34;_blank&#34;&gt;Designing a Next-Gen GPU API for the Web&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;API to supersede WebGL&lt;/li&gt;
&lt;li&gt;abstraction on Vulkan, Metal, D3D12 but embracing web constraints&lt;/li&gt;
&lt;li&gt;comparison of similar concepts in all 3 APIs&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://www.youtube.com/watch?v=mdPeXJ0eiGc&#34; target=&#34;_blank&#34;&gt;Design Patterns for Low-Level Real-Time Rendering - Video&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;was discussed in &lt;a href=&#34;https://jendrikillner.bitbucket.io/post/graphics-programming-weekly-issue-10/&#34; target=&#34;_blank&#34;&gt;Issue 10&lt;/a&gt;. Now the video is released&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://devblogs.nvidia.com/parallelforall/register-cache-warp-cuda&#34; target=&#34;_blank&#34;&gt;Register Cache: Caching for Warp-Centric CUDA Programs&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20171016024240/https://devblogs.nvidia.com/parallelforall/register-cache-warp-cuda/&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;software abstraction that uses inter-thread shuffling to replace shared memory with thread register usage&lt;/li&gt;
&lt;li&gt;use case: replace shared memory with registers to cache kernel inputs&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://sopyer.github.io/b/post/static-dynamic-geometry-vulkan/&#34; target=&#34;_blank&#34;&gt;Dealing with geometry in Vulkan&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20171016025341/https://sopyer.github.io/b/post/static-dynamic-geometry-vulkan/&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;how to upload data into buffers for dynamic and static cases&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 11 — October 8, 2017</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-11/</link>
      <pubDate>Sun, 08 Oct 2017 12:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-11/</guid>
      <description>&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;http://www.ludicon.com/castano/blog/2017/10/lightmap-optimizations-ios/&#34; target=&#34;_blank&#34;&gt;Lightmap optimizations for iOS&lt;/a&gt; &lt;a href=&#34;http://web.archive.org/web/20171007053252/http://www.ludicon.com/castano/blog/2017/10/lightmap-optimizations-ios/&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;lightmpas too big for the memory budget on iOS&lt;/li&gt;
&lt;li&gt;using ETC2 as a replacement for DXT5 (same size, slightly less quality)&lt;/li&gt;
&lt;li&gt;switched to per-vertex lightmaps

&lt;ul&gt;
&lt;li&gt;needed some art fixes&lt;/li&gt;
&lt;li&gt;but reduced disk size to 17 % and most expensive runtime location to 25 %&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://nbertoa.wordpress.com/2017/10/03/road-to-anti-aliasing-in-bre-aliasing-and-anti-aliasing/amp/&#34; target=&#34;_blank&#34;&gt;Road to Anti-Aliasing in BRE: Aliasing and Anti-Aliasing&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20171009141454/https://nbertoa.wordpress.com/2017/10/03/road-to-anti-aliasing-in-bre-aliasing-and-anti-aliasing/amp/&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;what is the cause of aliasing&lt;/li&gt;
&lt;li&gt;overview of different techniques to reduce it

&lt;ul&gt;
&lt;li&gt;Supersampling Antialiasing (SSAA)&lt;/li&gt;
&lt;li&gt;Multisampling AntiAliasing (MSAA)&lt;/li&gt;
&lt;li&gt;Coverage Sample AntiAliasing (CSAA)&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;http://blog.hypersect.com/the-complexity-of-simplicity-rendering-inversus-deluxe/&#34; target=&#34;_blank&#34;&gt;The Complexity of Simplicity: Rendering INVERSUS Deluxe&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20171009141653/http://blog.hypersect.com/the-complexity-of-simplicity-rendering-inversus-deluxe/&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Seamless wrapped worlds, on the screen multiple times&lt;/li&gt;
&lt;li&gt;breakdown of rendering&lt;/li&gt;
&lt;li&gt;rendering to off-screen buffer that is drawn to screen multiple times&lt;/li&gt;
&lt;li&gt;extra pixels for correct sub-pixel accuracy when panning the camera&lt;/li&gt;
&lt;li&gt;color pallets, pattern map, inversion buffer create the look&lt;/li&gt;
&lt;li&gt;fullscreen effects for wrapping space&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://blog.demofox.org/2017/10/01/calculating-the-distance-between-points-in-wrap-around-toroidal-space/&#34; target=&#34;_blank&#34;&gt;Calculating the Distance Between Points in “Wrap Around” (Toroidal) Space&lt;/a&gt; &lt;a href=&#34;http://web.archive.org/web/20171006233233/https://blog.demofox.org/2017/10/01/calculating-the-distance-between-points-in-wrap-around-toroidal-space/&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;useful for use in tiling worlds, tileable textures, &amp;hellip;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://developer.oculus.com/blog/medium-under-the-hood-part-2-move-tool-implementation/&#34; target=&#34;_blank&#34;&gt;Medium Under the Hood: Part 2 - Move Tool Implementation&lt;/a&gt; &lt;a href=&#34;http://web.archive.org/web/20171007090131/https://developer.oculus.com/blog/medium-under-the-hood-part-2-move-tool-implementation/&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;uses SDF and triangle mesh representation&lt;/li&gt;
&lt;li&gt;using both representations for different techniques&lt;/li&gt;
&lt;li&gt;how to convert triangle mesh to SDF&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://www.youtube.com/watch?v=86seb-iZCnI&#34; target=&#34;_blank&#34;&gt;CppCon 2017: Olivier Giroux &amp;ldquo;Designing (New) C++ Hardware”&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;hardware constraints dictate decisions&lt;/li&gt;
&lt;li&gt;C++ hardware abstractions&lt;/li&gt;
&lt;li&gt;memory model

&lt;ul&gt;
&lt;li&gt;coherency model&lt;/li&gt;
&lt;li&gt;consistency model&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;new execution model designed for C++&lt;/li&gt;
&lt;li&gt;more details in next link&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://devblogs.nvidia.com/parallelforall/cooperative-groups/&#34; target=&#34;_blank&#34;&gt;Cooperative Groups: Flexible CUDA Thread Programming&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20171009142059/https://devblogs.nvidia.com/parallelforall/cooperative-groups/&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Cooperative Groups describes synchronization within and across CUDA thread blocks&lt;/li&gt;
&lt;li&gt;abstraction level above explicit wrap level operations&lt;/li&gt;
&lt;li&gt;allow algorithms that can be more portable between different hardware&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://www.gamasutra.com/blogs/JohannesKuhlmann/20171002/306839/Bringing_Galaxy_on_Fire_3_to_Vulkan_Handling_Resources_and_Assets.php&#34; target=&#34;_blank&#34;&gt;Bringing Galaxy on Fire 3 to Vulkan: Handling Resources and Assets&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20171009142136/https://www.gamasutra.com/blogs/JohannesKuhlmann/20171002/306839/Bringing_Galaxy_on_Fire_3_to_Vulkan_Handling_Resources_and_Assets.php&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;overview of vulkan implementation for android

&lt;ul&gt;
&lt;li&gt;texture layout handling&lt;/li&gt;
&lt;li&gt;shader pipeline&lt;/li&gt;
&lt;li&gt;pipeline (PSO in D3D12)&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;http://nfrechette.github.io/2017/10/05/acl_in_ue4/&#34; target=&#34;_blank&#34;&gt;Animation Compression Library: Unreal 4 Integration&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20171009142211/http://nfrechette.github.io/2017/10/05/acl_in_ue4/&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;first results of the ACL in UE4 Matinee scene

&lt;ul&gt;
&lt;li&gt;59.5% smaller in total&lt;/li&gt;
&lt;li&gt;big wins on moving character, more costly atm for mostly idle bones&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://twitter.com/mmalex/status/916313043767906304?s=09&#34; target=&#34;_blank&#34;&gt;Data visualization in shader - twitter&lt;/a&gt; &lt;a href=&#34;http://web.archive.org/web/20171009142233/https://twitter.com/mmalex/status/916313043767906304?s=09&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;thread containing a number of small snippets to visualize data in shaders&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://github.com/RandyGaul/tinyheaders/blob/master/tinyspheremesh.h&#34; target=&#34;_blank&#34;&gt;tinyspheremesh.h - generate geodesic sphere&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20171009142443/https://github.com/RandyGaul/tinyheaders/blob/master/tinyspheremesh.h&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://www.shadertoy.com/view/XtGGRt&#34; target=&#34;_blank&#34;&gt;northern lights effect - shadertoy&lt;/a&gt;&lt;/p&gt;

&lt;hr /&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 10 — October 1, 2017</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-10/</link>
      <pubDate>Sun, 01 Oct 2017 12:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-10/</guid>
      <description>&lt;hr /&gt;

&lt;!--End mc_embed_signup--&gt;

&lt;p&gt;&lt;a href=&#34;https://jesshiderue4.wordpress.com/real-time-rendering-an-overview-for-artists/&#34; target=&#34;_blank&#34;&gt;real-time-rendering: an overview for artists&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20170930104713/https://jesshiderue4.wordpress.com/real-time-rendering-an-overview-for-artists/&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;overview of

&lt;ul&gt;
&lt;li&gt;pbr&lt;/li&gt;
&lt;li&gt;render pipeline&lt;/li&gt;
&lt;li&gt;draw calls&lt;/li&gt;
&lt;li&gt;culling&lt;/li&gt;
&lt;li&gt;optimizations&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href=&#34;http://schd.ws/hosted_files/cppcon2017/e5/DesignPatternsForLowLevelRealTimeRendering.pptx&#34; target=&#34;_blank&#34;&gt;Design Patterns for Low-Level Real-Time Rendering&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20171002002353/http://schd.ws/hosted_files/cppcon2017/e5/DesignPatternsForLowLevelRealTimeRendering.pptx&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;overview

&lt;ul&gt;
&lt;li&gt;GPU/CPU memory systems&lt;/li&gt;
&lt;li&gt;command lists&lt;/li&gt;
&lt;li&gt;GCN resource descriptors&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;ring buffer

&lt;ul&gt;
&lt;li&gt;both GPU and CPU&lt;/li&gt;
&lt;li&gt;returning CPU pointer for upload&lt;/li&gt;
&lt;li&gt;GPU for binding memory&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;gpu work scheduling&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href=&#34;http://bitsquid.blogspot.ca/2017/09/physical-cameras-in-stingray.html?m=1&#34; target=&#34;_blank&#34;&gt;Physical Cameras in Stingray&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20171002002439/http://bitsquid.blogspot.ca/2017/09/physical-cameras-in-stingray.html?m=1&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;controlled by the same parameters a real world camera&lt;/li&gt;
&lt;li&gt;camera body

&lt;ul&gt;
&lt;li&gt;sensor size&lt;/li&gt;
&lt;li&gt;iso sensitivity&lt;/li&gt;
&lt;li&gt;shutter speed&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;lens

&lt;ul&gt;
&lt;li&gt;focal length&lt;/li&gt;
&lt;li&gt;focus range&lt;/li&gt;
&lt;li&gt;aperture diameters&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;allows override with artistic choices&lt;/li&gt;
&lt;li&gt;real world validation setup&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href=&#34;https://yave.handmade.network/blogs/p/2629-compact_cube_meshes,_and_compact_cube_meshes_in_unity#13159&#34; target=&#34;_blank&#34;&gt;Compact Cube Meshes, and Compact Cube Meshes in Unity&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20171002001832/https://yave.handmade.network/blogs/p/2629-compact_cube_meshes,_and_compact_cube_meshes_in_unity#13159&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;storing data in per-face data structures instead of vertices&lt;/li&gt;
&lt;li&gt;calculate face index in vertex shader and reconstruct vertex data&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href=&#34;http://allenchou.net/2017/09/debug-draw-with-cached-meshes-vertex-shaders-in-unity/&#34; target=&#34;_blank&#34;&gt;Debug Draw with Cached Meshes &amp;amp; Vertex Shaders in Unity&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20171002001957/http://allenchou.net/2017/09/debug-draw-with-cached-meshes-vertex-shaders-in-unity/&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;how to implement debug drawing using only Debug.DrawLine&lt;/li&gt;
&lt;li&gt;using cached meshes, with vertex shader modifications if possible&lt;/li&gt;
&lt;li&gt;dynamic batching breaks object space vertex shaders&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href=&#34;https://jo.dreggn.org/home/2017_normalmap.pdf&#34; target=&#34;_blank&#34;&gt;Microfacet-based Normal Mapping for Robust Monte Carlo Path Tracing&lt;/a&gt; &lt;a href=&#34;http://web.archive.org/web/20170930021904/https://jo.dreggn.org/home/2017_normalmap.pdf&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;solution for energy loss, backfacing normals&lt;/li&gt;
&lt;li&gt;model is symmetric, while classical normal maps are not&lt;/li&gt;
&lt;li&gt;adds some extra computational complexity compared  to &amp;ldquo;classical&amp;rdquo; normal mapping&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href=&#34;http://www.jcgt.org/published/0006/03/03/&#34; target=&#34;_blank&#34;&gt;Triangle Reordering for Efficient Rendering in Complex Scenes&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20171002002553/http://www.jcgt.org/published/0006/03/03/paper.pdf&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;reduce overdraw and optimize vertex cache reuse&lt;/li&gt;
&lt;li&gt;uses keyframe animated model, breaking down into clusters and multiple index buffers&lt;/li&gt;
&lt;li&gt;optimize for different view directions&lt;/li&gt;
&lt;li&gt;select &amp;ldquo;best-fit&amp;rdquo; index buffer based on the view at runtime&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href=&#34;https://blog.demofox.org/2017/09/30/half-tile-offset-streaming-world-grids/amp/&#34; target=&#34;_blank&#34;&gt;Half Tile Offset Streaming World Grids&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20171001000156/https://blog.demofox.org/2017/09/30/half-tile-offset-streaming-world-grids/&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;proposes offsetting grid tiles by half a tile to reduce memory required in a streaming world&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href=&#34;https://sandervanrossen.blogspot.ca/2017/09/half-edge-data-structure-considered.html?m=1&#34; target=&#34;_blank&#34;&gt;Half-edge data structure considered harmful&lt;/a&gt; &lt;a href=&#34;http://web.archive.org/web/20171002002943/https://sandervanrossen.blogspot.ca/2017/09/half-edge-data-structure-considered.html?m=1&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;list possible problems with a half-edge data structure&lt;/li&gt;
&lt;li&gt;and a possible alternative (&amp;lsquo;connected triangle&amp;rsquo;)&lt;/li&gt;
&lt;/ul&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 9 — September 24, 2017</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-9/</link>
      <pubDate>Sun, 24 Sep 2017 12:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-9/</guid>
      <description>&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://users.aalto.fi/~silvena4/Projects/RTGI/index.html&#34; target=&#34;_blank&#34;&gt;Real-time Global Illumination by Precomputed Local Reconstruction
from Sparse Radiance Probes&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20170918150303/https://users.aalto.fi/~silvena4/Publications/Real-time_Global_Illumination_by_Precomputed_Local_Reconstruction_from_Sparse_Radiance_Probes.pdf&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;realtime global illumination technique&lt;/li&gt;
&lt;li&gt;using  local precomputed data so that no long-range interactions is required between probes and receivers&lt;/li&gt;
&lt;li&gt;receiver depends only on a constant number of nearby probes&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;http://ourmachinery.com/post/simple-parallel-rendering/&#34; target=&#34;_blank&#34;&gt;Simple Parallel Rendering&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/http://ourmachinery.com/post/simple-parallel-rendering/&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;high level overview of how to structure object traversal for parrallel rendering&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://github.com/msqrt/shader-printf&#34; target=&#34;_blank&#34;&gt;Simple printf functionality for GLSL&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20170925060552/https://github.com/msqrt/shader-printf&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;easy to use implementation of printf style debugging in GLSL&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://sopyer.github.io/b/post/vulkan-shader-sample/&#34; target=&#34;_blank&#34;&gt;Vulkan Shader Sample&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20170925060714/https://sopyer.github.io/b/post/vulkan-shader-sample/&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;tutorial about getting vulkan shaders working and implementation of raytracing shadertoy in vulkan&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://blogs.msdn.microsoft.com/pix/2017/09/19/pix-1709-18-004/&#34; target=&#34;_blank&#34;&gt;PIX 1709.18.004&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20170925060919/https://blogs.msdn.microsoft.com/pix/2017/09/19/pix-1709-18-004/&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Dr. PIX  “Bandwidth” page is now enabled on AMD and Intel&lt;/li&gt;
&lt;li&gt;Access tracking for bindless resources

&lt;ul&gt;
&lt;li&gt;PIX knows what data was read or written via dynamic indexing now&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;more performance warnings&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://tom94.net/data/publications/kallweit17deep/kallweit17deep.pdf&#34; target=&#34;_blank&#34;&gt;Deep Scattering: Rendering Atmospheric Clouds with Radiance-Predicting Neural Networks&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20170925060959/https://tom94.net/data/publications/kallweit17deep/kallweit17deep.pdf&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;use Neural Networks to render clouds in 9 minutes instead of 36 hours&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;sample visible points of the cloud and, extract a hierarchical 3D descriptor of the cloud geometry with respect to the shading location and the light source. The descriptor is input to a deep neural network that predicts the radiance function for each shading configuration&lt;/p&gt;
&lt;/blockquote&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://github.com/sonicether/SEGI&#34; target=&#34;_blank&#34;&gt;SEGI - A fully-dynamic voxel-based global illumination system for Unity&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;now open source&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://github.com/mellinoe/ShaderGen&#34; target=&#34;_blank&#34;&gt;ShaderGen - GitHub&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;proof-of-concept library which generates shader code from C#&lt;/li&gt;
&lt;li&gt;can generate HLSL, GLSL&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;http://nhaehnle.blogspot.ca/2017/09/radeonsi-out-of-order-rasterization-on.html?m=1&#34; target=&#34;_blank&#34;&gt;radeonsi: out-of-order rasterization on VI+&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20170925061049/http://nhaehnle.blogspot.ca/2017/09/radeonsi-out-of-order-rasterization-on.html?m=1&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;explanation of out-of-order rasterization&lt;/li&gt;
&lt;li&gt;examples of cases where it can be used to gain a performance win&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://www.shadertoy.com/view/llfcRl&#34; target=&#34;_blank&#34;&gt;Normals Compression&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20170925061123/https://www.shadertoy.com/view/llfcRl&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Shadertoy that shows multiple ways to encode surface normals&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://www.youtube.com/watch?time_continue=29436&amp;amp;v=g5T5wSCXkH4&#34; target=&#34;_blank&#34;&gt;GPUVis&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Linux GPU profiler similar to GPUView on Windows&lt;/li&gt;
&lt;li&gt;system level profiler that shows hardware execution&lt;/li&gt;
&lt;li&gt;can integrate custom markers and plots&lt;/li&gt;
&lt;li&gt;code: &lt;a href=&#34;https://github.com/mikesart/gpuvis&#34; target=&#34;_blank&#34;&gt;https://github.com/mikesart/gpuvis&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://godotengine.org/article/godot-3-renderer-design-explained&#34; target=&#34;_blank&#34;&gt;godot 3 renderer design explained&lt;/a&gt; &lt;a href=&#34;http://web.archive.org/web/20170925013219/https://godotengine.org/article/godot-3-renderer-design-explained&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;aim is to have a really simple 3D renderer that is powerfull to common user needs&lt;/li&gt;
&lt;li&gt;rendering is seperated from the rest, running in seperate thread&lt;/li&gt;
&lt;li&gt;using a high level abstraction model&lt;/li&gt;
&lt;li&gt;to allow the backends to customize how techniques are implemented&lt;/li&gt;
&lt;li&gt;using a custom shader language&lt;/li&gt;
&lt;li&gt;short description of all passes&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;http://docs.cryengine.com/display/SDKDOC1/CRYENGINE+5.4.0&#34; target=&#34;_blank&#34;&gt;CRYENGINE 5.4.0&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20170925061247/http://docs.cryengine.com/display/SDKDOC1/CRYENGINE+5.4.0&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;terrain system upgrades&lt;/li&gt;
&lt;li&gt;vulkan support&lt;/li&gt;
&lt;li&gt;subtance integration&lt;/li&gt;
&lt;li&gt;and much more&lt;/li&gt;
&lt;/ul&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 8 — September 17, 2017</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-8/</link>
      <pubDate>Sun, 17 Sep 2017 12:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-8/</guid>
      <description>&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://developer.apple.com/documentation/metal/about_gpu_family_4&#34; target=&#34;_blank&#34;&gt;About GPU Family 4 - Metal 2.0&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20170912203740/https://developer.apple.com/documentation/metal/about_gpu_family_4&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;tile-based deferred rendering (TBDR)&lt;/li&gt;
&lt;li&gt;imageblocks

&lt;ul&gt;
&lt;li&gt;tile memory that can be acessed from the shader to create custom, tile local storage&lt;/li&gt;
&lt;li&gt;can be shared between compute, and rasterization&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;tile shading

&lt;ul&gt;
&lt;li&gt;new programmable stage, allow access to all data stored in tile memory&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;raster order groups&lt;/li&gt;
&lt;li&gt;threadgroup sharing&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;more details can be found in the videos: &lt;a href=&#34;https://developer.apple.com/videos/metal/&#34; target=&#34;_blank&#34;&gt;https://developer.apple.com/videos/metal/&lt;/a&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://www.saschawillems.de/?p=2719&#34; target=&#34;_blank&#34;&gt;Headless Vulkan examples&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20170918032213/https://www.saschawillems.de/?p=2719&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;how to run compute and graphics work without creating a window&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;http://www.elopezr.com/photoshop-blend-modes-in-unity/&#34; target=&#34;_blank&#34;&gt;Photoshop Blend Modes Without Backbuffer Copy&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20170918032931/http://www.elopezr.com/photoshop-blend-modes-in-unity/&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;how to use shader logic and blend modes to replicate photoshop blend modes&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://nbertoa.wordpress.com/2017/09/11/road-to-anti-aliasing-in-bre-rasterization/amp/&#34; target=&#34;_blank&#34;&gt;Road to Anti-Aliasing in BRE: Rasterization&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20170912192550/https://nbertoa.wordpress.com/2017/09/11/road-to-anti-aliasing-in-bre-rasterization/amp/&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;explanation of rasterization algorithmn&lt;/li&gt;
&lt;li&gt;basic overview of display technology&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator&#34; target=&#34;_blank&#34;&gt;VulkanMemoryAllocator - 2.0&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Support for persistently mapped allocations, custom memory pools, defragmentation, better support for GPU memory oversubscription&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;http://www.patapom.com/topics/WebGL/passmwalbedo/&#34; target=&#34;_blank&#34;&gt;Diffuse albedo database&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20170913185607/https://gist.github.com/donmccurdy/de7ff6c44ecd76fddf1ecad170a114a8&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;provides rough albedo value references for many materials&lt;/li&gt;
&lt;li&gt;author description on twitter: &lt;a href=&#34;https://twitter.com/Patapom2/status/907952278228914177&#34; target=&#34;_blank&#34;&gt;https://twitter.com/Patapom2/status/907952278228914177&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;http://on-demand.gputechconf.com/gtc/2017/video/s7482-david-yu-advances-in-real-time-graphics-at-pixar_POLJEREMIASVILA_1.mp4&#34; target=&#34;_blank&#34;&gt;Advances in Real-Time Graphics at Pixar&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;USD&lt;/li&gt;
&lt;li&gt;OpenSubdiv&lt;/li&gt;
&lt;li&gt;Hydra

&lt;ul&gt;
&lt;li&gt;also supports VR&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;RTP (real-time previewer)&lt;/li&gt;
&lt;li&gt;presto animation system&lt;/li&gt;
&lt;li&gt;Pele (hair and fur simulation)&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://bekwnn.github.io/2017/09/14/the-artful-shape-of-functions.html&#34; target=&#34;_blank&#34;&gt;The Artful Shape of Functions&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20170918013334/https://bekwnn.github.io/2017/09/14/the-artful-shape-of-functions.html&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;examples of basic math concepts that can be used to animate&lt;/li&gt;
&lt;li&gt;Ocean Waves: (using sin layering)&lt;/li&gt;
&lt;li&gt;Bezier Curve&lt;/li&gt;
&lt;li&gt;Gradients&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;http://cragl.cs.gmu.edu/seamless/&#34; target=&#34;_blank&#34;&gt;Seamless: Seam erasure and seam-aware decoupling of shape from mesh resolution&lt;/a&gt;&lt;a href=&#34;https://web.archive.org/web/20170918032019/http://cragl.cs.gmu.edu/seamless/&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;techinuque to remove seams from existing textures without requiring changes to the mesh&lt;/li&gt;
&lt;li&gt;mesh decimation technique that is seam aware to reduce artifacts&lt;/li&gt;
&lt;li&gt;Seam straightening mesh processing to increase number of edges that can be collapsed&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;source code:
- &lt;a href=&#34;https://github.com/zfergus/seam-erasure&#34; target=&#34;_blank&#34;&gt;Texture Seam Erasure&lt;/a&gt;
- &lt;a href=&#34;https://github.com/songrun/SeamAwareDecimater&#34; target=&#34;_blank&#34;&gt;Seam-aware mesh decimater&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;paper: &lt;a href=&#34;http://cragl.cs.gmu.edu/seamless/Seamless-%20Seam%20erasure%20and%20seam-aware%20decoupling%20of%20shape%20from%20mesh%20resolution%20(Songrun%20Liu,%20Zachary%20Ferguson,%20Alec%20Jacobson,%20Yotam%20Gingold).pdf&#34; target=&#34;_blank&#34;&gt;paper&lt;/a&gt;
&lt;a href=&#34;https://web.archive.org/web/20170918031635/http://cragl.cs.gmu.edu/seamless/Seamless-%20Seam%20erasure%20and%20seam-aware%20decoupling%20of%20shape%20from%20mesh%20resolution%20(Songrun%20Liu,%20Zachary%20Ferguson,%20Alec%20Jacobson,%20Yotam%20Gingold).pdf&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://medium.com/@bgolus/normal-mapping-for-a-triplanar-shader-10bf39dca05a&#34; target=&#34;_blank&#34;&gt;Normal Mapping for a Triplanar Shader&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20170918031708/https://medium.com/@bgolus/normal-mapping-for-a-triplanar-shader-10bf39dca05a&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;quick overview of what is triplanar mapping and tangent space normals maps&lt;/li&gt;
&lt;li&gt;explanation of different normal mapping techniques with unity shader code&lt;/li&gt;
&lt;li&gt;different texture blending techniques&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://blogs.windows.com/buildingapps/2017/09/15/resources-universal-windows-platform-games-fall-xbox-one-update/amp/&#34; target=&#34;_blank&#34;&gt;More Resources for Universal Windows Platform Games with Fall Xbox One Update&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20170918031855/https://blogs.windows.com/buildingapps/2017/09/15/resources-universal-windows-platform-games-fall-xbox-one-update/amp/&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Category&lt;/th&gt;
&lt;th&gt;Before&lt;/th&gt;
&lt;th&gt;Now&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;

&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;CPU&lt;/td&gt;
&lt;td&gt;4 shared cores&lt;/td&gt;
&lt;td&gt;6 exclusive cores&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;GPU&lt;/td&gt;
&lt;td&gt;50% D3D11&lt;/td&gt;
&lt;td&gt;100 % with D3D12&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;RAM&lt;/td&gt;
&lt;td&gt;1 GB&lt;/td&gt;
&lt;td&gt;5GB&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://arxiv.org/pdf/1709.02520.pdf&#34; target=&#34;_blank&#34;&gt;Sorting with GPUs: A Survey&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20170912183651/https://arxiv.org/pdf/1709.02520.pdf&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;lists a large number of GPU sort algorithms with sources and compares them&lt;/li&gt;
&lt;li&gt;using a nvidia hardware model&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href=&#34;https://gist.github.com/donmccurdy/de7ff6c44ecd76fddf1ecad170a114a8&#34; target=&#34;_blank&#34;&gt;State of glTF 2.0 for WebVR Devs&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20170913185607/https://gist.github.com/donmccurdy/de7ff6c44ecd76fddf1ecad170a114a8&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 7 — September 10, 2017</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-7/</link>
      <pubDate>Sun, 10 Sep 2017 12:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-7/</guid>
      <description>&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://dickyjim.wordpress.com/2017/09/05/which-compute-id-for-me/amp/&#34; target=&#34;_blank&#34;&gt;Which Compute ID for me?&lt;/a&gt;   &lt;a href=&#34;https://web.archive.org/web/20170911051237/https://dickyjim.wordpress.com/2017/09/05/which-compute-id-for-me/amp/&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;easy to read overview of how compute shader ids are calculated for 1D and 2D processing&lt;/li&gt;
&lt;li&gt;provides examples&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://turanszkij.wordpress.com/2017/09/07/area-lights/&#34; target=&#34;_blank&#34;&gt;Area Lights&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20170911052645/https://turanszkij.wordpress.com/2017/09/07/area-lights/&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;explanation of specular light calculations for area lights (Sphere, disk, rectangle, tube light)&lt;/li&gt;
&lt;li&gt;uses the Representative point method&lt;/li&gt;
&lt;li&gt;light vector points to the closest point on the light mesh, relative to the reflection vector&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://mehdins.wordpress.com/2017/09/04/introduction-to-the-jacobian-and-its-use-in-graphics/&#34; target=&#34;_blank&#34;&gt;Introduction to the Jacobian and its use in graphics&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20170911052112/https://mehdins.wordpress.com/2017/09/04/introduction-to-the-jacobian-and-its-use-in-graphics/&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The Jacobian is the key showing us how a region changes under a transformation.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ul&gt;
&lt;li&gt;Gives 4 examples with derivations:

&lt;ul&gt;
&lt;li&gt;In 1D, the substitution&lt;/li&gt;
&lt;li&gt;Cartesian to Polar&lt;/li&gt;
&lt;li&gt;Specular microfacet BRDF&lt;/li&gt;
&lt;li&gt;Volume preserving ball/cube mapping&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;http://momentsingraphics.de/?p=175&#34; target=&#34;_blank&#34;&gt;Demo with non-linearly quantized moment shadow maps and more&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20170911052336/http://momentsingraphics.de/?p=175&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;demo for the non-linearly quantized moment shadow maps paper released earlier this year&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;http://trevorius.com/scrapbook/uncategorized/improving-a-renderer/&#34; target=&#34;_blank&#34;&gt;Improving a renderer&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20170911052443/http://trevorius.com/scrapbook/uncategorized/improving-a-renderer/&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;overview of the effects that went into a 64k demo&lt;/li&gt;
&lt;li&gt;provides links to papers and code samples for some of them&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://gist.github.com/romainguy/a2e9208f14cae37c579448be99f78f25&#34; target=&#34;_blank&#34;&gt;D_GGX in mediump/half float&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20170911052514/https://gist.github.com/romainguy/a2e9208f14cae37c579448be99f78f25&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;restructure GGX calculations so that they can be performed in half precision (16 bit float instead of 32)&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;http://graphicscodex.com/projects/projects/&#34; target=&#34;_blank&#34;&gt;Graphics Programming Projects&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;a number of projects aimed to help the learning process for computer graphics&lt;/li&gt;
&lt;li&gt;to be used in combination with &lt;a href=&#34;http://graphicscodex.com&#34; target=&#34;_blank&#34;&gt;Graphics Codex&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://turanszkij.wordpress.com/2017/09/09/skinning-in-compute-shader/amp/&#34; target=&#34;_blank&#34;&gt;Skinning in a Compute Shader&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20170911052726/https://turanszkij.wordpress.com/2017/09/09/skinning-in-compute-shader/amp/&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;code example about how he does skinning in a compute shader&lt;/li&gt;
&lt;li&gt;interesting discussion about mobile gpus on twitter: &lt;a href=&#34;https://twitter.com/turanszkij/status/906603939239473153&#34; target=&#34;_blank&#34;&gt;https://twitter.com/turanszkij/status/906603939239473153&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://blogs.msdn.microsoft.com/marcelolr/2017/09/10/last-week-on-directx-shader-compiler-2017-09-09/&#34; target=&#34;_blank&#34;&gt;Last Week on DirectX Shader Compiler (2017-09-09)&lt;/a&gt; &lt;a href=&#34;https://web.archive.org/web/20170911052801/https://blogs.msdn.microsoft.com/marcelolr/2017/09/10/last-week-on-directx-shader-compiler-2017-09-09/&#34; target=&#34;_blank&#34;&gt;[wayback-archive]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;overview of what a few of the optimizer passes do and how to use the tools to see the effects&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 6 — September 3, 2017</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-6/</link>
      <pubDate>Sun, 03 Sep 2017 12:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-6/</guid>
      <description>&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://www.doc.ic.ac.uk/~afd/homepages/papers/pdfs/2017/OOPSLA.pdf&#34; target=&#34;_blank&#34;&gt;Automated Testing of Graphics Shader Compilers&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;targeting GLSL&lt;/li&gt;
&lt;li&gt;uisng metamorphic testing (generating families of programs that should yield identical results)&lt;/li&gt;
&lt;li&gt;sucesfully used to find driver bugs and security issues&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://arxiv.org/pdf/1708.07559.pdf&#34; target=&#34;_blank&#34;&gt;Efficient barycentric point sampling on meshes&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;unbiased random sampling of points in a triangle using weights and barycentric coordinates&lt;/li&gt;
&lt;li&gt;focusing on sampling within a single triangle&lt;/li&gt;
&lt;li&gt;mentions sources for triangle selection algorithms&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;http://www.jcgt.org/published/0006/03/02/&#34; target=&#34;_blank&#34;&gt;Double Hierarchies for Directional Importance Sampling in Monte Carlo Rendering - jcgt.org&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Describe a novel representation of the light field tailored to improve importance sampling for Monte Carlo rendering.
  We provide a reference open source implementation.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;http://ourmachinery.com/post/high-level-rendering-using-render-graphs/&#34; target=&#34;_blank&#34;&gt;High-Level Rendering Using Render Graphs · Our Machinery&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;similar ideas to FrameGraph in frostbite&lt;/li&gt;
&lt;li&gt;can execute multipe per frame, frostbite can do the same&lt;/li&gt;
&lt;li&gt;each pass can create, read, write to GPU resource&lt;/li&gt;
&lt;li&gt;additionally also allows inclusing of CPU resources&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;http://www.redblobgames.com/maps/mapgen2/noisy-edges.html&#34; target=&#34;_blank&#34;&gt;Noisy edges&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;how to hide polygon structure in map generations with noisy edges&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;http://gpuopen.com/stable-barycentric-coordinates/&#34; target=&#34;_blank&#34;&gt;Stable barycentric coordinates - gpuopen&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;how to achieve stable barycentric coordinate ordering independent of vertex locations&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://turanszkij.wordpress.com/2017/08/30/voxel-based-global-illumination/amp/&#34; target=&#34;_blank&#34;&gt;Voxel-based Global Illumination&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;GPU based&lt;/li&gt;
&lt;li&gt;Voxelization on the GPU&lt;/li&gt;
&lt;li&gt;Cone tracing&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://deplinenoise.files.wordpress.com/2017/09/fredriksson_cedec_2017_final.pdf&#34; target=&#34;_blank&#34;&gt;More performance, more gameplay - Insomniac Games&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Quick overview of:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Understand the problem&lt;/li&gt;
&lt;li&gt;Understand the data&lt;/li&gt;
&lt;li&gt;Understand the algorithm&lt;/li&gt;
&lt;li&gt;Understand the latency requirements&lt;/li&gt;
&lt;li&gt;Remove waste&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Main focus:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Use the hardware to full effect&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;http://on-demand.gputechconf.com/siggraph/2017/video/sig1710-anjul-patney-perceptul-insight-into-forveated-vr.html&#34; target=&#34;_blank&#34;&gt;Perceptual Insights into Foveated Virtual Reality&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;ul&gt;
&lt;li&gt;Efficient peripheral rendering is fundamental for VR rendering&lt;/li&gt;
&lt;li&gt;Perceptual evaluations can expose opportunities for significant speedups&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://mehdins.wordpress.com/2017/08/29/notes-on-anti-aliasing-texture-filtering-part-3/amp/&#34; target=&#34;_blank&#34;&gt;Notes on Anti-Aliasing : Texture filtering (part 3)&lt;/a&gt;&lt;/p&gt;

&lt;hr /&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 5 — August 27, 2017</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-5/</link>
      <pubDate>Sun, 27 Aug 2017 12:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-5/</guid>
      <description>&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://www.saschawillems.de/?p=2485&#34; target=&#34;_blank&#34;&gt;The vulkan device simulation layer&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;useful to simulate less capable GPUs by returning lower device limits via queries&lt;/li&gt;
&lt;li&gt;pre-build device simulation layer&lt;/li&gt;
&lt;li&gt;how to set it up and use it&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://www.lunarg.com/wp-content/uploads/2017/08/SPIR-V-Shader-Size-Reduction-Using-spirv-opt_v1.0.pdf&#34; target=&#34;_blank&#34;&gt;Vulkan SPIR-V shader size reduction using spirv-opt&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;disusses which and how to order spirv-opt passes to reduce spir-v size up to 60 % (still 40 % bigger then dx byte code)&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://www.khronos.org/blog/beginners-guide-to-vulkan&#34; target=&#34;_blank&#34;&gt;Beginners Guide to Vulkan&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;list of vulkan tutorials aimed at beginners&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;http://kylehalladay.com/blog/tutorial/vulkan/2017/08/30/Vulkan-Uniform-Buffers-pt2.html&#34; target=&#34;_blank&#34;&gt;Improving Vulkan Breakout - Comparing Uniform Data Transfer Methods In Vulkan&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;compares different methods of updating constants and their associated gpu cost&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://images.nvidia.com/content/volta-architecture/pdf/Volta-Architecture-Whitepaper-v1.0.pdf&#34; target=&#34;_blank&#34;&gt;NVIDIA TESLA V100 GPU ARCHITECTURE- whitepaper&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;new tensor cores designed for machine learning

&lt;ul&gt;
&lt;li&gt;mixed precision 4x4 matrix multiplies and add&lt;/li&gt;
&lt;li&gt;exposed in cuda&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;unified L1 data cache and shared memory

&lt;ul&gt;
&lt;li&gt;128 KB, configurable split between cache and shared memory&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;can excute float and int instruction simultaneously&lt;/li&gt;
&lt;li&gt;better link between CPU and GPU memory system&lt;/li&gt;
&lt;li&gt;copy engine can now handle page faults without causing fatal faults&lt;/li&gt;
&lt;li&gt;independent thread scheduling, diverge at sub-wrap granuality&lt;/li&gt;
&lt;li&gt;better support for multiple applications using the same GPU&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://github.com/GPUOpen-Tools/Radeon-GPUProfiler/releases&#34; target=&#34;_blank&#34;&gt;Radeon GPU Profiler (RGP) v1.0.2&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;new version released, adding support for vega&lt;/li&gt;
&lt;li&gt;navigation improvements&lt;/li&gt;
&lt;li&gt;UI and stability improvements&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://github.com/milostosic/MTuner&#34; target=&#34;_blank&#34;&gt;MTuner - Now open source&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;MTuner is a C/C++ memory profiler and memory leak finder for Windows, PS4, PS3, etc.&lt;/li&gt;
&lt;li&gt;previously a paid product, now open source&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;http://opengex.org/comparison.html&#34; target=&#34;_blank&#34;&gt;Comparison of OpenGEX, Collada, and glTF&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;good overview of all aspects of OpenGEX, collada and glTF&lt;/li&gt;
&lt;li&gt;list weakness of glTF from his perspective, make sure to read the next link for an alternative view&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://godotengine.org/article/small-defense-gltf&#34; target=&#34;_blank&#34;&gt;A small defense of glTF 2.0 on its comparison against OpenGEX&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;provides an alternative few to the previously mentioned link&lt;/li&gt;
&lt;li&gt;the author sees many design decisions as strengths instead of weaknesses&lt;/li&gt;
&lt;li&gt;also mentions missing transforms tracks in glTF&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://belcour.github.io/blog/slides/2017-covariance-filtering/slides.html#/&#34; target=&#34;_blank&#34;&gt;Antialiasing Complex Global Illumination Effects in Path-space&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;idea: limit materials frequency to reduce noise&lt;/li&gt;
&lt;li&gt;reformulation of anti-aliasing in freyuency domain&lt;/li&gt;
&lt;li&gt;overview of antiliasing method and implementation details&lt;/li&gt;
&lt;li&gt;and results&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://blogs.msdn.microsoft.com/marcelolr/2017/08/25/last-month-on-directx-shader-compiler-2017-08-24/&#34; target=&#34;_blank&#34;&gt;Last Month on DirectX Shader Compiler (2017-08-24)&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;starting support for true 16 bit floats&lt;/li&gt;
&lt;li&gt;spir-v improvements&lt;/li&gt;
&lt;li&gt;better pix support&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://research.activision.com/t5/Publications/Emotion-Challenge-Building-a-New-Photoreal-Facial-Performance/ba-p/10360541&#34; target=&#34;_blank&#34;&gt;Emotion Challenge: Building a New Photoreal Facial Performance Pipeline for Games - activision&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;pipeline overview&lt;/li&gt;
&lt;li&gt;how to aquire material, challenges&lt;/li&gt;
&lt;li&gt;transform into game ready rig&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://disney-animation.s3.amazonaws.com/uploads/production/publication_asset/146/asset/splash_v12.pdf&#34; target=&#34;_blank&#34;&gt;Fluxed Animated Boundary Method&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;method to control particles based simulations (water) to create art directed results&lt;/li&gt;
&lt;/ul&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 4 — August 20, 2017</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-4/</link>
      <pubDate>Sun, 20 Aug 2017 12:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-4/</guid>
      <description>&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://t.co/rlTc0EcSwi&#34; target=&#34;_blank&#34;&gt;Vega architecture whitepaper&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;support d3d12 feature level 12_1&lt;/li&gt;
&lt;li&gt;HBCC supports 49-bit addressing&lt;/li&gt;
&lt;li&gt;on-demand paging of local memory across the PCIe bus&lt;/li&gt;
&lt;li&gt;all of the graphics blocks have been made clients of the L2 cache (no seperate color block caches)&lt;/li&gt;
&lt;li&gt;next-generation geometry (NGG) path&lt;/li&gt;
&lt;li&gt;Primitive shaders

&lt;ul&gt;
&lt;li&gt;can discard primitives early, only position processing instead of whole vertex processing&lt;/li&gt;
&lt;li&gt;increasing maximum throughput from 4 primitives per clock to 17&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;better work workload distributor

&lt;ul&gt;
&lt;li&gt;can pack multiple small draws into a single wavefront&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;support for 16 bit math&lt;/li&gt;
&lt;li&gt;Draw-Stream Binning Rasterizer (DSBR), a mix of tiling achitecture with intermediate-mode rendering
&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://github.com/Themaister/Granite&#34; target=&#34;_blank&#34;&gt;Granite - vulkan renderer - github&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The most interesting part of this project compared to the other open-source Vulkan renderers so far is probably the render graph implementation.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Similar to the ideas presented in &lt;a href=&#34;https://www.slideshare.net/DICEStudio/framegraph-extensible-rendering-architecture-in-frostbite&#34; target=&#34;_blank&#34;&gt;https://www.slideshare.net/DICEStudio/framegraph-extensible-rendering-architecture-in-frostbite&lt;/a&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;http://themaister.net/blog/2017/08/15/render-graphs-and-vulkan-a-deep-dive/&#34; target=&#34;_blank&#34;&gt;Render graphs and Vulkan — a deep dive&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;discusses the Render graph implementation of Granite&lt;/li&gt;
&lt;li&gt;global render graph, all render components need to register with it&lt;/li&gt;
&lt;li&gt;gather global knowledge, optimize with that information&lt;/li&gt;
&lt;li&gt;render graph allocates resources and uses callbacks to execute the correct code&lt;/li&gt;
&lt;li&gt;can promote any texture as backbuffer source, the source texture will be presented on screen&lt;/li&gt;
&lt;li&gt;currently only aliases on perfect match with dimesions/formats/&amp;hellip;&lt;/li&gt;
&lt;li&gt;gpu work generation

&lt;ol&gt;
&lt;li&gt;validate, make sure everything makes sense&lt;/li&gt;
&lt;li&gt;traverse the graph and lay out the passes in gpu submission, starting at backbuffer and resolve dependencies starting from there&lt;/li&gt;
&lt;li&gt;render pass reordering: reorder so that unrelated work is between producer and consumer&lt;/li&gt;
&lt;li&gt;assigning physical resources to logical: aliasing resources&lt;/li&gt;
&lt;li&gt;merge render passes, using vulkan render pass concept&lt;/li&gt;
&lt;li&gt;build render pass barriers&lt;/li&gt;
&lt;/ol&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;http://bitsquid.blogspot.ca/2017/08/notes-on-screen-space-hiz-tracing.html&#34; target=&#34;_blank&#34;&gt;Notes On Screen Space HIZ Tracing - stingray&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;based on the solution discussed in &lt;a href=&#34;https://www.crcpress.com/GPU-Pro-5-Advanced-Rendering-Techniques/Engel/p/book/9781482208634&#34; target=&#34;_blank&#34;&gt;GPU Pro 5&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;discussed how to solve problems with the intersection code&lt;/li&gt;
&lt;li&gt;how to trace towards the camera&lt;/li&gt;
&lt;li&gt;how to trace behind surfaces&lt;/li&gt;
&lt;li&gt;contains source code&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://github.com/huwb/jitternator&#34; target=&#34;_blank&#34;&gt;Lessons learnt from hunting jitter issues&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;use an unsteady delta frame time, set frame dt to a random value each frame&lt;/li&gt;
&lt;li&gt;sanity check: plot data over time. eg. log data + timestamp and plot in excel&lt;/li&gt;
&lt;li&gt;update anlysis, get a picture of the update order and dependencies&lt;/li&gt;
&lt;li&gt;4 experiments to validate the update flow&lt;/li&gt;
&lt;li&gt;using timestamps to validate data dependencies&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;http://www.curious-creature.com/rendering/color_temperature.html&#34; target=&#34;_blank&#34;&gt;Color Temperatures&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Derivation of how to convert a color temperature to RGB values&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://community.arm.com/graphics/b/blog/posts/gpu-processing-budget-approach-to-game-development?utm_source=Social&amp;amp;utm_medium=organic&amp;amp;utm_campaign=mpg&#34; target=&#34;_blank&#34;&gt;GPU Processing Budget Approach to Game Development&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The key to developing well performing real-time graphics applications is to know the limitations of your system, and work within those limits.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ul&gt;
&lt;li&gt;aimed at indie developers on mobile&lt;/li&gt;
&lt;li&gt;simple guidelines how to calculate the budgets given a fixed GPU hardware&lt;/li&gt;
&lt;li&gt;how to use the MALI tools to detect how the game performs and compare it to the budget&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://github.com/Tobski/simple_vulkan_synchronization&#34; target=&#34;_blank&#34;&gt;Simplified Vulkan Synchronization - github&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;stb-inspired single-header library to simplify the core synchronization mechanisms in Vulkan&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;http://openproblems.realtimerendering.com/s2017/05-msalvi-dl-future-of-rendering.pptx&#34; target=&#34;_blank&#34;&gt;Deep Learning: The Future of Real-Time Rendering?&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;deep learning overview&lt;/li&gt;
&lt;li&gt;how it was used to get a trained TAA&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;http://advances.realtimerendering.com/s2017/Destiny_Particle_Architecture_Siggraph_Advances_2017.pptx&#34; target=&#34;_blank&#34;&gt;The Destiny Particle Architecture&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Trying to achieve: Expressive power and flexibility, Subsecond iteration, performance&lt;/li&gt;
&lt;li&gt;“particle system”: collection of particles with same properties&lt;/li&gt;
&lt;li&gt;expressed as node-graph&lt;/li&gt;
&lt;li&gt;small overview of the shader system, look at &lt;a href=&#34;http://advances.realtimerendering.com/destiny/gdc_2017/Destiny_shader_system_GDC_2017_v.4.0.pdf&#34; target=&#34;_blank&#34;&gt;GDC presentation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;exression evulations

&lt;ul&gt;
&lt;li&gt;very flexible with all kinds of local and global inputs, react to collisions and more&lt;/li&gt;
&lt;li&gt;bytecode interpreter for expressions (CPU or GPU)&lt;/li&gt;
&lt;li&gt;for release, bake to shader code&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;http://www.highperformancegraphics.org/wp-content/uploads/2017/Special-Session/HPG2017_EvolutionProgrammableModels.pdf&#34; target=&#34;_blank&#34;&gt;Evolution of Programmable Models for Graphics Engines&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;how we innovate on graphics techniques, usability, and performance&lt;/li&gt;
&lt;li&gt;what helps innovation:

&lt;ul&gt;
&lt;li&gt;Easy sharing of reproducible behavior&lt;/li&gt;
&lt;li&gt;needsframrowkrs needs to support infrastructe but stay flexible&lt;/li&gt;
&lt;li&gt;heavy-weight complex engine architecture layers can be quite inhibiting to innovation&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;evolution of graphics pipelines&lt;/li&gt;
&lt;li&gt;most innovation happens on the render pass level, not the lower levels (once the engine stabalized)&lt;/li&gt;
&lt;li&gt;unity&amp;rsquo;s scriptable render loop&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;http://on-demand.gputechconf.com/siggraph/2017/video/sig1707-nir-benty-falcor-framework-for-prototyping-sharing.html&#34; target=&#34;_blank&#34;&gt;Falcor: A Framework for Prototyping and Sharing Rendering Techniques, presentation&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;real time framework&lt;/li&gt;
&lt;li&gt;meany to help, easy to modify&lt;/li&gt;
&lt;li&gt;small overview of an example application&lt;/li&gt;
&lt;/ul&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 3 — August 13, 2017</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-3/</link>
      <pubDate>Sun, 13 Aug 2017 12:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-3/</guid>
      <description>&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;http://dl.acm.org/citation.cfm?id=3085022&#34; target=&#34;_blank&#34;&gt;Circular Separable Convolution Depth of Field - acm.org&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A basic Gaussian convolution can achieve linear time complexity by performing a horizontal and vertical pass. This is not possible when the target shape of the convolution is a circle. When performing a blur in the frequency domain it is possible to achieve separability&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://bartwronski.com/2017/08/06/separable-bokeh/amp/&#34; target=&#34;_blank&#34;&gt;Separable disk-like depth of field - bartwronski.com&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A shadertoy implementation of circular depth of field with inspiration by the paper above&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;http://ourmachinery.com/post/dpi-aware-imgui/&#34; target=&#34;_blank&#34;&gt;DPI-aware IMGUI&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Handling multi-monitor setups with various DPI-scaling per monitor cleanly does not have to be tricky.
A good overview of the windows DPI related APIs&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://www.youtube.com/watch?v=Ny9ZXt_2v2Y&#34; target=&#34;_blank&#34;&gt;Photogrammetry workflow and the tech behind the de-lighting tool - unity&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Photogrammetry workflow, the technology behind the de-lighting tool and how to get started with photogrammetry in Unity.&lt;/p&gt;

&lt;p&gt;workflow e-book: &lt;a href=&#34;https://unity3d.com/files/solutions/photogrammetry/Unity-Photogrammetry-Workflow_2017-07_v2.pdf&#34; target=&#34;_blank&#34;&gt;download&lt;/a&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;http://perso.telecom-paristech.fr/~boubek/papers/BoundingProxies/&#34; target=&#34;_blank&#34;&gt;Bounding Proxies for Shape Approximation&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A new bounding shape approximation algorithm which takes as input an arbitrary surface mesh and generates a bounding shape proxy&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;http://remi-genin.fr/blog/screen-space-plane-indexed-reflection-in-ghost-recon-wildlands/&#34; target=&#34;_blank&#34;&gt;Screen Space Planar Reflections in Ghost Recon Wildlands&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;SSR are expected to be less expensive than actual reflection rendering and more accurate than cubemap-based reflections, as long as the reflection source is present on the screen.&lt;/p&gt;

&lt;p&gt;In controlled situations flaws can be alleviated and SSR can deliver astonishing results.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;clearly written article with code examples&lt;/li&gt;
&lt;li&gt;how to resolve common problems&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;http://advances.realtimerendering.com/s2017/PixelProjectedReflectionsAC_v_1.92.pptx&#34; target=&#34;_blank&#34;&gt;Optimized pixel-projected reflections for planar reflectors&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;constrained form of SSR&lt;/li&gt;
&lt;li&gt;reverse the reflection tracing&lt;/li&gt;
&lt;li&gt;calculate which pixel is hit in the reflection, resolve later without searching&lt;/li&gt;
&lt;li&gt;can be selectively used where applicable&lt;/li&gt;
&lt;li&gt;normal maps can be approximated, but more costly&lt;/li&gt;
&lt;li&gt;shader code example&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;http://advances.realtimerendering.com/s2017/Ocean_SIGGRAPH17_Final.pptx&#34; target=&#34;_blank&#34;&gt;Crest: Novel Ocean Rendering Techniques in an Open Source Framework&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;meshing

&lt;ul&gt;
&lt;li&gt;handling elevation changes and smooth LOD transitions&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;overview of wave interactions

&lt;ul&gt;
&lt;li&gt;using a shape texture to displace the mesh surface&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;foam rendering and depth peeling

&lt;ul&gt;
&lt;li&gt;two layer foams, for under and above water based on displacement texture&lt;/li&gt;
&lt;li&gt;using multiple layers of surface information to better approximate under water scattering
&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;http://on-demand.gputechconf.com/siggraph/2017/video/sig1757-tristan-lorach-vkFX-effective-approach-for-vulkan-api.html&#34; target=&#34;_blank&#34;&gt;vkFX: Effect’ive Approach for Vulkan API – nvidia&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Effect parser for Vulkan&lt;/li&gt;
&lt;li&gt;Offline(Generates C++) or runtime integration&lt;/li&gt;
&lt;li&gt;Assembling PSO in file

&lt;ul&gt;
&lt;li&gt;Assembling shader fragments for the final shader&lt;/li&gt;
&lt;li&gt;Connecting depending data&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;Resource Definitions and connections&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;http://gpuopen.com/understanding-vulkan-objects/&#34; target=&#34;_blank&#34;&gt;Understanding Vulkan objects&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A diagram that shows all of the Vulkan objects and some of their relationships, especially the order in which you create one from another and a brief description of all the objects&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://www.activision.com/cdn/research/Precomputed_Lighting_in_CoD_IW.pptx&#34; target=&#34;_blank&#34;&gt;Precomputed lighting in Call Of Duty: Infinite Warfare&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Lightmaps &amp;amp; Light probes&lt;/li&gt;
&lt;li&gt;Light probes

&lt;ul&gt;
&lt;li&gt;Decoubled visibility and incoming radiance&lt;/li&gt;
&lt;li&gt;Visibility baking&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;Light Grid

&lt;ul&gt;
&lt;li&gt;volumetric structure that holds the indirect lighting for the level&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;Light Baking&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;http://c0de517e.blogspot.ca/2017/08/tiled-hardware-speculations.html&#34; target=&#34;_blank&#34;&gt;Tiled hardware (speculations) - c0de517e.blogspot.ca&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Over at Siggraph I had a discussion with some mobile GPU engineers about the pros and cons of tiled deferred rasterization. I prompted some discussion over Twitter (and privately) as well, and this is how I understand the matter of tiled versus immediate/&amp;ldquo;forward&amp;rdquo; hardware rasterization so far&amp;hellip;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;http://www.iryoku.com/downloads/Research-Impact-Retrospective-MLAA-from-2009-to-2017-v3.pptx&#34; target=&#34;_blank&#34;&gt;Research impact retrospective: MLAA from 2009 to 2017&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;History of anti-aliasing techniques with description of new developments in each generation&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://medium.com/@bgolus/anti-aliased-alpha-test-the-esoteric-alpha-to-coverage-8b177335ae4f&#34; target=&#34;_blank&#34;&gt;Anti-aliased Alpha Test: The Esoteric Alpha To Coverage&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Explanation of what Alpha to Coverage is and how to use it to reduce aliasing on alpha tested geometry with MSAA&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://docs.google.com/viewer?a=v&amp;amp;pid=sites&amp;amp;srcid=ZGVmYXVsdGRvbWFpbnxja3VsbGF8Z3g6NWM0NmU2YWVlNjE3ODk1Yw&#34; target=&#34;_blank&#34;&gt;Importance Sampling of Many Lights With Adaptive Tree Splitting&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;In daylight dim lights behave local (only relevant to the nearby geometry), but in a dark room small contributions add up to significant light for the whole scene. So their behavior is global. And the latter is the real problem we’re solving here.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ul&gt;
&lt;li&gt;build a BVH of the emitter geometry&lt;/li&gt;
&lt;li&gt;importance measure to be able to traverse the cluster tree&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;http://www.joshbarczak.com/blog/?p=1317&#34; target=&#34;_blank&#34;&gt;Comments on Future Directions for Compute in Graphics - joshbarczak.com&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Forward may be a losing proposition on current hardware, but if this talk is about things we want to make the hardware guys do for us, then getting them to fix forward rendering is certainly on the table.&lt;/p&gt;

&lt;p&gt;I think we might be taking for granted just how much the inline everything model has been protecting us from ourselves&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ul&gt;
&lt;li&gt;dynamic register usage adjustments&lt;/li&gt;
&lt;li&gt;taking C++ code and executing it directly on the GPU&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;http://blog.selfshadow.com/publications/s2017-shading-course/heitz/s2017_pbs_ltc_lines_disks.pdf&#34; target=&#34;_blank&#34;&gt;Real-Time Line- and Disk-Light Shading&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;extended area-lighting framework with lines, disks and spheres&lt;/li&gt;
&lt;li&gt;recap of LTC&lt;/li&gt;
&lt;li&gt;Line lights&lt;/li&gt;
&lt;li&gt;Sphere / Disk Lights&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://michaeldaltrey.wordpress.com/portfolio/honours-project/&#34; target=&#34;_blank&#34;&gt;An investigation of real-time deep G-Buffer applications in screen-space rendering&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Implementing real-time partial occlusion depth of field using deep G-Buffers.
Partial occlusion depth of field is where sharp background objects bleed through the edges of blurry foreground objects&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://belcour.github.io/blog/slides/2017-brdf-thin-film/slides.html#/&#34; target=&#34;_blank&#34;&gt;A practical extension to microfacet theory for the modeling of varying iridescence&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Introduce an extension to microfacet models that enables to add thin-film interference appearance, a thin-film model that is spectrally antialiased.
&lt;br /&gt;
&lt;div class=&#34;alert alert-note&#34;&gt;
  &lt;p&gt;There are small arrows in the bottom right corner, need to click them otherwise slides wouldn&amp;rsquo;t change for me&lt;/p&gt;

&lt;/div&gt;
&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;http://on-demand.gputechconf.com/siggraph/2017/video/sig1718-morgan-mcguire-virtual-frontier-computer-graphics.html&#34; target=&#34;_blank&#34;&gt;The Virtual Frontier: Computer Graphics Challenges in Virtual Reality &amp;amp; Augmented Reality&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Virtual reality will be the new interface to computing for everyone&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ul&gt;
&lt;li&gt;future of VR/AR technology&lt;/li&gt;
&lt;li&gt;rendering pipeline and adjustements for latency reduction&lt;/li&gt;
&lt;li&gt;future techniques to get the required fidelity&lt;/li&gt;
&lt;li&gt;light fields, future displays&lt;/li&gt;
&lt;li&gt;haptic feedback systems&lt;/li&gt;
&lt;li&gt;display based reprojection&lt;/li&gt;
&lt;li&gt;path tracing&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;https://www.youtube.com/watch?v=eE9Oomlm8V0&#34; target=&#34;_blank&#34;&gt;How-To Use Radeon™ GPU Profiler - youtube&lt;/a&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;http://developer.amd.com/wordpress/media/2013/12/Vega_Shader_ISA_28July2017.pdf&#34; target=&#34;_blank&#34;&gt;AMD Vega Instruction Set Architecture documentation&lt;/a&gt;&lt;/p&gt;

&lt;hr /&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 2 — August 6, 2017</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-2/</link>
      <pubDate>Sun, 06 Aug 2017 12:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-2/</guid>
      <description>&lt;hr /&gt;

&lt;p&gt;&lt;a href=&#34;http://www.cemyuksel.com/courses/conferences/siggraph2017-rethinking_texture_mapping/rethinking_texture_mapping_course_notes.pdf&#34; target=&#34;_blank&#34;&gt;Rethinking Texture Mapping course notes&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;this course we will discuss various radically different ways to rethink texture mapping that have been proposed over decades, each offering different advantages and trade-offs&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href=&#34;https://dolphin-emu.org/blog/2017/07/30/ubershaders/&#34; target=&#34;_blank&#34;&gt;Ubershaders: A Ridiculous Solution to an Impossible Problem - dolphin-emu.org&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Dolphin will use the already compiled Ubershaders to immediately render the effect without stuttering while still compiling the specialized shader in the background&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href=&#34;http://zeuxcg.org/2017/07/31/optimal-grid-rendering-is-not-optimal/&#34; target=&#34;_blank&#34;&gt;Optimal grid rendering is not optimal - zeuxcg.org&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;interesting exercise of measuring the actual behavior of given index sequences on real hardware, and trying to model several possible approaches hardware could take to understand the behavior better&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href=&#34;http://floooh.github.io/2017/07/29/sokol-gfx-tour.html&#34; target=&#34;_blank&#34;&gt;A Tour of sokol_gfx.h - floooh.github.io&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;takes ideas from Metal and D3D11, plus a few ideas from D3D12/Vulkan, and wraps them into a simple C API&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href=&#34;http://graphics.pixar.com/library/ProductionVolumeRendering/paper.pdf&#34; target=&#34;_blank&#34;&gt;Production Volume Rendering SIGGRAPH 2017 Course&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;This course picks up where the last ones left off, explaining not only the basic theory underpinning
these recent advances, but also presenting a detailed and concrete look at their implementations.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href=&#34;http://www.cemyuksel.com/research/meshcolors/mesh_color_textures-high.pdf&#34; target=&#34;_blank&#34;&gt;Mesh Color Textures&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Mesh color textures convert the mesh color data to a format that
can be efficiently used by the texture filtering hardware on current
GPUs. Utilizing a novel 4D texture coordinate formulation, mesh
color textures can provide correct filtering for all mipmap levels and
eliminate artifacts due to seams.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href=&#34;https://khronos.org/registry/OpenGL/index_gl.php&#34; target=&#34;_blank&#34;&gt;OpenGL 4.6 released&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;ul&gt;
&lt;li&gt;Allows a SPIR-V usage instead of GLSL&lt;/li&gt;
&lt;li&gt;KHR_parallel_shader_compile extension is about allowing multiple shader compile threads&lt;/li&gt;
&lt;li&gt;and many more things&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href=&#34;https://www.khronos.org/blog/khronos-announces-the-vulkan-portability-initiative&#34; target=&#34;_blank&#34;&gt;Vulkan Portability Initiative&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;This subgroup is tasked with developing specifications, open-source library code and tools, together with conformance tests to define and support the set of Vulkan capabilities that can be made universally available across all major platforms, including those not currently served by Vulkan&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href=&#34;https://research.activision.com/t5/Research-Papers/Practical-Multilayered-Materials-in-Call-of-Duty-Infinite/ba-p/10337316&#34; target=&#34;_blank&#34;&gt;Practical Multilayered Materials in Call of Duty: Infinite Warfare&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;will present a practical implementation of the multilayered PBR material rendering system developed at Infinity Ward&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href=&#34;https://research.activision.com/t5/Research-Papers/Improved-Culling-for-Tiled-and-Clustered-Rendering-in-Call-of/ba-p/10338514&#34; target=&#34;_blank&#34;&gt;Improved Culling for Tiled and Clustered Rendering in Call of Duty: Infinite Warfare&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;ul&gt;
&lt;li&gt;clustering data structures&lt;/li&gt;
&lt;li&gt;scalarization&lt;/li&gt;
&lt;li&gt;clusterng algorithmn&lt;/li&gt;
&lt;li&gt;rasterization based culling&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href=&#34;http://blog.selfshadow.com/publications/s2017-shading-course/imageworks/s2017_pbs_imageworks_slides.pdf&#34; target=&#34;_blank&#34;&gt;Revisiting Physically Based Shading at Imageworks&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;ul&gt;
&lt;li&gt;approximates the multiple-scattering effects missing from the microfacet lobe&lt;/li&gt;
&lt;li&gt;Thin Surface BSDF&lt;/li&gt;
&lt;li&gt;Subsurface Scattering&lt;/li&gt;
&lt;li&gt;Coatings&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href=&#34;http://advances.realtimerendering.com/s2017/Nubis - Authoring Realtime Volumetric Cloudscapes with the Decima Engine - 092.pptx&#34; target=&#34;_blank&#34;&gt;Nubis: Authoring Real-Time Volumetric Cloudscapes with the Decima Engine&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;ul&gt;
&lt;li&gt;classification of clouds&lt;/li&gt;
&lt;li&gt;improvements upon last years system, artistically authoring volumetric cloudscapes in less then 2 ms (PS4)&lt;/li&gt;
&lt;li&gt;density based model&lt;/li&gt;
&lt;li&gt;houdini noise generator: &lt;a href=&#34;http://bit.ly/nubisnoisegen&#34; target=&#34;_blank&#34;&gt;http://bit.ly/nubisnoisegen&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;want them to appear to be changing without altering the larger structure of the cloudscape&lt;/li&gt;
&lt;li&gt;weather system&lt;/li&gt;
&lt;li&gt;Cloud Lighting Model&lt;/li&gt;
&lt;li&gt;ray march result post processing&lt;/li&gt;
&lt;li&gt;light shafts&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href=&#34;http://advances.realtimerendering.com/s2017/DecimaSiggraph2017-final.pptx&#34; target=&#34;_blank&#34;&gt;Decima Engine: Advances in Lighting and AA&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;ul&gt;
&lt;li&gt;GGX spherical area light&lt;/li&gt;
&lt;li&gt;Height fog (merging artistic fog with bruneton based atmospheric scattering model)&lt;/li&gt;
&lt;li&gt;AA in 1080p (Temporal FXAA with sample tweaks)&lt;/li&gt;
&lt;li&gt;2160p checkerboard on PS4 Pro (without any native-res hints, noval packing technique)&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href=&#34;https://godotengine.org/article/we-should-all-use-gltf-20-export-3d-assets-game-engines&#34; target=&#34;_blank&#34;&gt;Why we should all support gLTF 2.0 as the standard asset exchange format for game engines - godotengine.org&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;glTF 2.0 has given us a fantastic chance to standardize a smooth workflow between 3D modelling software and game engines&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href=&#34;http://openproblems.realtimerendering.com/s2017/04-Future%20Compute%20SIGGRAPH%202017.pptx&#34; target=&#34;_blank&#34;&gt;Future Directions for Compute-for-Graphics&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;ul&gt;
&lt;li&gt;points out many problems, and discusses possible ideas&lt;/li&gt;
&lt;li&gt;Next problem to solve is compute&lt;/li&gt;
&lt;li&gt;Want to take real-time graphics further&lt;/li&gt;
&lt;li&gt;Need to render “smarter”&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href=&#34;http://openproblems.realtimerendering.com/s2017/03-SIGGRAPH2017_ACertainSlantOfLight_Final.pptx&#34; target=&#34;_blank&#34;&gt;A Certain Slant of Light: Past, Present and Future Challenges of Global Illumination in Games&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;ul&gt;
&lt;li&gt;overview of the techniques&lt;/li&gt;
&lt;li&gt;challenges&lt;/li&gt;
&lt;li&gt;unsolved problens&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href=&#34;http://openproblems.realtimerendering.com/s2017/02-PhysicallyBasedMaterialWhereAreWe.pptx&#34; target=&#34;_blank&#34;&gt;Physically-Based Materials: Where Are We?&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;ul&gt;
&lt;li&gt;Definition of a physically based material&lt;/li&gt;
&lt;li&gt;Current and future real-time material model&lt;/li&gt;
&lt;li&gt;Need to render “smarter”&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href=&#34;https://www.slideshare.net/Mark_Kilgard/nvidia-opengl-and-vulkan-support-for-2017&#34; target=&#34;_blank&#34;&gt;NVIDIA OpenGL and Vulkan Support for 2017&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&#34;https://www.slideshare.net/slideshow/embed_code/key/m1c8ZikGhDC0IE&#34; target=&#34;_blank&#34;&gt;Nvidia OpenGL in 2017&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&#34;http://webglinsights.com&#34; target=&#34;_blank&#34;&gt;WebGL Insights - Book is now free&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;real-world techniques for intermediate and advanced WebGL developers by assembling contributions&lt;/p&gt;
&lt;/blockquote&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 1 — July 30, 2017</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-1/</link>
      <pubDate>Sun, 30 Jul 2017 12:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-1/</guid>
      <description>&lt;hr /&gt;

&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=jgcHKrdqvt8&#34; target=&#34;_blank&#34;&gt;Youtube&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&#34;https://www.sebastiansylvan.com/post/matrix_naming_convention/&#34; target=&#34;_blank&#34;&gt;Naming Convention for Matrix Math - sebastiansylvan.com&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;naming convention for matrix to make transformations easy as slotting together Legos&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This post mostly talks about row-major matrices. For more details about column-major matrices read this older post&lt;/p&gt;

&lt;p&gt;&lt;a href=&#34;http://tomforsyth1000.github.io/blog.wiki.html#%5B%5BMatrix%20maths%20and%20names%5D%5D&#34; target=&#34;_blank&#34;&gt;Matrix maths and names - tomforsyth1000.github.io&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;If you do name them right, and do so consistently, it&amp;rsquo;s actually quite difficult to make a mistake.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href=&#34;http://www.tabellion.org/et/paper17/MoonRay.pdf&#34; target=&#34;_blank&#34;&gt;Vectorized Production Path Tracing - tabellion.org&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;MoonRay is the first production path tracer, to our knowledge, designed to fully leverage Single Instruction/Multiple Data (SIMD) vector units throughout&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href=&#34;https://github.com/KhronosGroup/Vulkan-Docs/wiki/Synchronization-Examples&#34; target=&#34;_blank&#34;&gt;Vulkan - Synchronization Examples - KhronosGroup/Vulkan-Docs&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Most common use of Vulkan synchronization can be boiled down to a handful of use cases though, and this page lists a number of examples&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href=&#34;http://gpuopen.com/gaming-product/radeon-gpu-profiler-rgp/&#34; target=&#34;_blank&#34;&gt;Radeon GPU Profiler - gpuopen.com&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;PC game developers now have unprecedented, in-depth access to a GPU and can easily analyze graphics, async compute usage, event timing, pipeline stalls, barriers, bottlenecks and other performance inefficiencies&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href=&#34;https://blogs.msdn.microsoft.com/pix/2017/07/25/pix-1707-25/&#34; target=&#34;_blank&#34;&gt;PIX 1707.25 - counter rollup, new Dr. PIX experiments, pixel kill reason, and pixtool.exe&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Timing capture event list now shows fence and command queue synchronization events&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href=&#34;https://media.contentapi.ea.com/content/dam/eacom/frostbite/files/s2016-pbs-frostbite-sky-clouds-new.pdf&#34; target=&#34;_blank&#34;&gt;Physically Based Sky, Atmosphere and Cloud Rendering in Frostbite (Course Notes)&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Present the practical physically based solutions we have researched and developed for Frostbite to simulate and combine Sky, atmosphere and clouds&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href=&#34;https://www.shadertoy.com/view/Xs2fWD&#34; target=&#34;_blank&#34;&gt;Pixel Shader Dungeon - shadertoy.com&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;dungeon crawler inside a pixel shade&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-1/dungeon_crawler.jpg&#34; alt=&#34;test&#34; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&#34;http://nfrechette.github.io/2017/07/29/acl_v0.3.0/&#34; target=&#34;_blank&#34;&gt;Animation Compression Library: Release 0.3.0 - nfrechette.github.io&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;It now supports a fully variable bit rate and it performs admirably so far. Without using any form of key reduction, we match the compression ratio of Unreal 4&lt;/p&gt;
&lt;/blockquote&gt;
</description>
    </item>
    
  </channel>
</rss>