<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Jendrik Illner - 3D Programmer on Jendrik Illner - 3D Programmer</title>
    <link>https://www.jendrikillner.com/</link>
    <description>Recent content in Jendrik Illner - 3D Programmer on Jendrik Illner - 3D Programmer</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en-us</language>
    <copyright>&amp;copy; 2023 · Jendrik Illner</copyright>
    <lastBuildDate>Wed, 20 Apr 2016 00:00:00 +0000</lastBuildDate>
    <atom:link href="/" 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>
    
  </channel>
</rss>
