<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Self Shadow</title>
    <link>https://blog.selfshadow.com/</link>
    <description>Recent content on Self Shadow</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en-us</language>
    <lastBuildDate>Fri, 15 Aug 2025 20:21:38 -0700</lastBuildDate><atom:link href="https://blog.selfshadow.com/index.xml" rel="self" type="application/rss+xml" />
      
        <item>
          <title>SIGGRAPH 2025 Links</title>
          <link>https://blog.selfshadow.com/2025/08/15/siggraph-2025-links/</link>
          <pubDate>Fri, 15 Aug 2025 20:21:38 -0700</pubDate>
          
          <guid>https://blog.selfshadow.com/2025/08/15/siggraph-2025-links/</guid>
          <description>Open Source / Data ASWF Open Source Days
Session Recordings Real-Time Live!
Courses A Whirlwind Introduction to Computer Graphics
An Introduction to Neural Shading
Advances in Real-Time Rendering in Games
GPU Work Graphs
Innovating With Generative AI: A Hands-On ComfyUI Workshop
Level-of-Detail for Geometry Processing and Simulation
Path Guiding in Production and Recent Advancements
- Path Guiding Surfaces and Volumes in Disney’s Hyperion Renderer: A Case Study (blog post)</description>
        </item>
      
    
      
        <item>
          <title>SIGGRAPH 2024 Links</title>
          <link>https://blog.selfshadow.com/2024/08/03/siggraph-2024-links/</link>
          <pubDate>Sat, 03 Aug 2024 13:31:12 -0700</pubDate>
          
          <guid>https://blog.selfshadow.com/2024/08/03/siggraph-2024-links/</guid>
          <description>Open Access SIGGRAPH 2024 Conference Content
Open Source / Data ASWF Open Source Days
Caldera: Advances in Real-Time Rendering
Session Recordings Keynote: Manu Prakash, The Microscopic
Real-Time Live!
Birds of a Feather Advancements in WebGL and WebGPU: Latest Updates and Innovations
Exploring ANARI: Making the Future of 3D Rendering Available to Everyone
glTF: Transforming 3D Asset Delivery for Real-Time Graphics
Khronos Fast Forward
OpenXR: Transforming the Future of Cross-Platform XR Development</description>
        </item>
      
    
      
        <item>
          <title>SIGGRAPH 2023 Links</title>
          <link>https://blog.selfshadow.com/2023/08/12/siggraph-2023-links/</link>
          <pubDate>Sat, 12 Aug 2023 15:07:33 -0700</pubDate>
          
          <guid>https://blog.selfshadow.com/2023/08/12/siggraph-2023-links/</guid>
          <description>Open Access SIGGRAPH 2023 Conference Content
Open Source ASWF Open Source Days
Birds of a Feather ANARI: The Industry&amp;rsquo;s First Portable Rendering Engine API
glTF: Transforming 3D Asset Delivery for Real-Time Graphics
OpenXR: Enabling Cross-Platform VR/AR Experiences
The State of 3D Asset Interoperability using USD and glTF
Vulkan, Forging Ahead
Courses A Gentle Introduction to ReSTIR: Path Reuse in Real-time
A Whirlwind Introduction to Computer Graphics for Total Beginners</description>
        </item>
      
    
      
        <item>
          <title>SIGGRAPH 2022 Links</title>
          <link>https://blog.selfshadow.com/2022/08/13/siggraph-2022-links/</link>
          <pubDate>Sat, 13 Aug 2022 10:03:45 -0700</pubDate>
          
          <guid>https://blog.selfshadow.com/2022/08/13/siggraph-2022-links/</guid>
          <description>Open Access SIGGRAPH 2022 Conference Content
Open Source ASWF Open Source Days
Aurora
MoonRay
Art Papers Field of Leaves: An Interactive Installation Sprouting Leaves Out of Public Money
KineCAM: An Instant Camera for Animated Photographs
Three Stage Drawing Transfer
Woven Behavior and Ornamentation: &amp;hellip; Self-Shaping Woven Textiles
Birds of a Feather Advanced PBR Material Parameters in glTF
Dancers of VRChat
Delivering Interactive Experiences with glTF
How Do We Solve the Challenges of glTF Asset Creation?</description>
        </item>
      
    
      
        <item>
          <title>SIGGRAPH 2021 Links</title>
          <link>https://blog.selfshadow.com/2021/08/18/siggraph-2021-links/</link>
          <pubDate>Wed, 18 Aug 2021 22:43:36 -0700</pubDate>
          
          <guid>https://blog.selfshadow.com/2021/08/18/siggraph-2021-links/</guid>
          <description>Open Access SIGGRAPH 2021 Conference Content
Session Recordings Real-Time Live!
Birds of a Feather 3D Commerce: The art and business of using 3D models in retail&amp;hellip;
An exploration of pervasive 3D in geospatial with glTF
Building the Open Metaverse
Ensure Correct Vulkan Synchronization by Using Synchronization Validation
Global VFX Pipelines (Google slides)
Hands on with glTF: Making 3D pervasive
Khronos Fast Forward: Rapid-fire overview of all things Khronos&amp;hellip;
OpenXR: On an HMD near you now!</description>
        </item>
      
    
      
        <item>
          <title>SIGGRAPH 2020 Links</title>
          <link>https://blog.selfshadow.com/2020/08/18/siggraph-2020-links/</link>
          <pubDate>Tue, 18 Aug 2020 00:50:04 -0700</pubDate>
          
          <guid>https://blog.selfshadow.com/2020/08/18/siggraph-2020-links/</guid>
          <description>Open Access SIGGRAPH 2020 Conference Content
Session Recordings Course: Advances in Monte-Carlo Rendering: The Legacy of Jaroslav Křivánek
Course: Physically Based Shading in Theory and Practice
Keynote
Real-Time Live!
Talk: Point Light Attenuation Without Singularity
Technical Paper: A Class of C2 Interpolating Splines
Technical Paper: Continuous Multiple Importance Sampling
Technical Paper: Specular Manifold Sampling for Rendering High-Frequency Caustics and Glints
Courses A Whirlwind Introduction to Computer Graphics
Advances in Real-Time Rendering in Games</description>
        </item>
      
    
      
        <item>
          <title>SIGGRAPH 2019 Links</title>
          <link>https://blog.selfshadow.com/2019/07/30/siggraph-2019-links/</link>
          <pubDate>Tue, 30 Jul 2019 06:16:37 -0700</pubDate>
          
          <guid>https://blog.selfshadow.com/2019/07/30/siggraph-2019-links/</guid>
          <description>Open Access SIGGRAPH 2019 Conference Content
Session Recordings Course: An Introduction to Physics-Based Animation
Course: My Favorite Samples
Demoscene Worldwide (BOF)
Frontiers: How Computer Graphics Expertise Will Further &amp;hellip; Machine Learning
Frontiers: Imagining a Black Hole with the Event Horizon Telescope
Frontiers: Metric Telepresence
Frontiers: Speculative Futures
Frontiers: Visual Strategy
Keynote
Opening Ceremony / Awards
Production Session: “Space Explorers: Life in Orbit”
Real-Time Live!
Technical Papers Fast Forward
Technical Papers: AR and VR</description>
        </item>
      
    
      
        <item>
          <title>A Multi-Faceted Exploration (Part 4)</title>
          <link>https://blog.selfshadow.com/2019/03/30/multi-faceted-part-4/</link>
          <pubDate>Sat, 30 Mar 2019 14:54:00 -0700</pubDate>
          
          <guid>https://blog.selfshadow.com/2019/03/30/multi-faceted-part-4/</guid>
          <description>$$ \newcommand{\fss }{\color{gray}{f_\mathrm{ss}}} \newcommand{\fssp}{\color{gray}{f_\mathrm{ss}&#39;}} \newcommand{\fssoi }{\color{gray}{f_\mathrm{ss}(\mu_o, \mu_i)}} \newcommand{\fms }{\color{purple}{f_\mathrm{ms}}} \newcommand{\E }{\color{olive}{E}} \newcommand{\Emo}{\color{olive}{E(\mu_o)}} \newcommand{\Emi}{\color{olive}{E(\mu_i)}} \newcommand{\Em }{\color{olive}{E(\mu)}} \newcommand{\Eavg}{\color{green}{E_\mathrm{avg}}} \newcommand{\Favg}{\color{teal}{F_\mathrm{avg}}} \newcommand{\Fms }{\color{brown}{F_\mathrm{ms}}} \newcommand{\Ess }{\color{olive}{E_\mathrm{Fss}}} \newcommand{\Esso}{\color{olive}{E_\mathrm{Fss}(\mu_o)}} \newcommand{\Ems }{\color{teal}{E_\mathrm{Fms}}} \newcommand{\Emso}{\color{teal}{E_\mathrm{Fms}(\mu_o)}} \newcommand{\Fr }{\color{purple}{F_0}} \newcommand{\Fs }{\color{brown}{F_\mathrm{schlick}}} \newcommand{\Fsr }{\color{brown}{F_\mathrm{schlick}(\omega_h, \omega_r)}} \newcommand{\ki }{\color{}{k}} \newcommand{\wa }{\color{brown}{w_0}} \newcommand{\wb }{\color{brown}{w_1}} \newcommand{\wc }{\color{brown}{w_6}} \newcommand{\wi }{\color{brown}{w_i}} \newcommand{\wn }{\color{brown}{w_n}} \newcommand{\wnm }{\color{brown}{w_{N - 1}}} \newcommand{\ea }{\color{teal}{e_0}} \newcommand{\eb }{\color{teal}{e_1}} \newcommand{\ec }{\color{teal}{e_2}} \newcommand{\ei }{\color{teal}{e_i}} \newcommand{\eim }{\color{teal}{e_{i - 1}}} \newcommand{\en }{\color{teal}{e_n}} \newcommand{\enm }{\color{teal}{e_{N - 1}}} \newcommand{\ss }{\color{green}{s}} \newcommand{\si }{\color{green}{(1 - s)}} \newcommand{\ssa }{\color{green}{s_{1}}} \newcommand{\sia }{\color{green}{(1 - s_{1})}} \newcommand{\ssb }{\color{olive}{s_2}} \newcommand{\sib }{\color{olive}{(1 - s_{2})}} $$ Bouncing Back Last time around, I showed that we could improve upon Imageworks&amp;rsquo; multiple-scattering approximation by precalculating a new term, $\Ems$, from the Heitz model itself.</description>
        </item>
      
    
      
        <item>
          <title>SIGGRAPH 2018 Links</title>
          <link>https://blog.selfshadow.com/2018/08/16/siggraph-2018-links/</link>
          <pubDate>Thu, 16 Aug 2018 14:59:14 -0700</pubDate>
          
          <guid>https://blog.selfshadow.com/2018/08/16/siggraph-2018-links/</guid>
          <description>Open Access SIGGRAPH 2018 Conference Content
Recordings Cesium: 3D Globes on the Web
Color Mavens Advise on Digital Media Creation and Tools
Deep Learning: A Crash Course
Demoscene Worldwide
Fluids 2: Vortex Boogaloo
Introduction to DirectX Raytracing
Keynote Address
Khronos Group BOF Sessions
Ohooo Shiny!
Real-Time Live!
SideFX: Houdini HIVE
The Present and Future of Real-Time Graphics for Film, Games, Production
Tripping the Light VR
VR@50: Celebrating Ivan Sutherland&amp;rsquo;s 1968 Head-Mounted 3D Display System</description>
        </item>
      
    
      
        <item>
          <title>A Multi-Faceted Exploration (Part 3)</title>
          <link>https://blog.selfshadow.com/2018/08/05/multi-faceted-part-3/</link>
          <pubDate>Sun, 05 Aug 2018 21:26:00 -0700</pubDate>
          
          <guid>https://blog.selfshadow.com/2018/08/05/multi-faceted-part-3/</guid>
          <description>A New Dimension In the last post, I&amp;rsquo;d shown how a small tweak to Imageworks&amp;rsquo; multiple-scattering Fresnel term, $\color{brown}{F_\mathrm{ms}}$, brought their approximation closer to the reference solution of Heitz et al. However, there was still a niggling difference at high roughness, most noticeable under uniform lighting:
Figure 1: Furnace test, with roughness $\in [\frac{1}{8}, \frac{2}{8}, \ldots 1]$ (left halves: Imageworks, right halves: Heitz).
At the end of the day, $\color{brown}{F_\mathrm{ms}}$ is based on a simple diffuse model, and its limitations become more apparent as multiple scattering increases with roughness.</description>
        </item>
      
    
      
        <item>
          <title>A Multi-Faceted Exploration (Part 2)</title>
          <link>https://blog.selfshadow.com/2018/06/04/multi-faceted-part-2/</link>
          <pubDate>Mon, 04 Jun 2018 08:00:00 -0700</pubDate>
          
          <guid>https://blog.selfshadow.com/2018/06/04/multi-faceted-part-2/</guid>
          <description>A Random Walk to the Ground Truth In the last post, we saw that significant energy was being lost due to the common single-scattering limitation of microfacet-based shading models:
An intuitive way to think about this is that these BRDFs are only modelling direct lighting (= single scattering) of the microsurface heightfield. Indirect lighting (= multiple scattering) is not simulated, and that is the cause of the missing energy in the image above.</description>
        </item>
      
    
      
        <item>
          <title>A Multi-Faceted Exploration (Part 1)</title>
          <link>https://blog.selfshadow.com/2018/05/13/multi-faceted-part-1/</link>
          <pubDate>Sun, 13 May 2018 20:00:00 -0700</pubDate>
          
          <guid>https://blog.selfshadow.com/2018/05/13/multi-faceted-part-1/</guid>
          <description>Introduction As part of the Physically Based Shading Course at SIGGRAPH last year, Christopher Kulla and Alejandro Conty presented the latest iteration of Sony Pictures Imageworks&amp;rsquo; core production shading models. One area of focus for them was to improve the energy conservation of their materials; in particular they wanted to compensate for the inherent lack of multiple scattering in common analytic BSDFs, which can be a major source of energy loss.</description>
        </item>
      
    
      
        <item>
          <title>SIGGRAPH 2017 Links</title>
          <link>https://blog.selfshadow.com/2017/08/01/siggraph-2017-links/</link>
          <pubDate>Tue, 01 Aug 2017 01:47:36 -0700</pubDate>
          
          <guid>https://blog.selfshadow.com/2017/08/01/siggraph-2017-links/</guid>
          <description>Open Access SIGGRAPH 2017 Conference Content (for a limited time)
Recordings Live Streaming Sessions
Courses An Interactive Introduction to WebGL and three.js
An Introduction to Laplacian Spectral Kernels and Distances: Theory, Computation, and Applications
Advances in Real-Time Rendering (most content online)
Applications of Visual Perception to Virtual Reality Rendering
Computational Narrative
Computing and Processing Correspondences with Functional Maps (SIGGRAPH Asia 2016 material)
Directional Field Synthesis, Design, and Processing
Multithreading for Visual Effects</description>
        </item>
      
    
      
        <item>
          <title>SIGGRAPH 2016 Links</title>
          <link>https://blog.selfshadow.com/2016/07/31/siggraph-2016-links/</link>
          <pubDate>Sun, 31 Jul 2016 15:30:43 +0000</pubDate>
          
          <guid>https://blog.selfshadow.com/2016/07/31/siggraph-2016-links/</guid>
          <description>&lt;figure class=&#34;centered&#34;&gt;&lt;img src=&#34;https://blog.selfshadow.com/images/siggraph-2016/s16_logo.png&#34;&gt;
&lt;/figure&gt;

&lt;h3 id=&#34;open-access&#34;&gt;Open Access&lt;/h3&gt;
&lt;p&gt;&lt;a href=&#34;http://www.siggraph.org/learn/conference-content&#34;&gt;SIGGRAPH 2016 Conference Content&lt;/a&gt; (for a limited time)&lt;/p&gt;
&lt;h3 id=&#34;recordings&#34;&gt;Recordings&lt;/h3&gt;
&lt;p&gt;&lt;a href=&#34;https://youtu.be/zs0oYjwjNEo?t=14m48s&#34;&gt;Courses: Physically Based Shading in Theory and Practice&lt;/a&gt;&lt;br&gt;
&lt;a href=&#34;https://youtu.be/ZuF_-aAZmNk?t=12m49s%5D&#34;&gt;Talks: Brain &amp;amp; Brawn&lt;/a&gt;&lt;br&gt;
&lt;a href=&#34;https://www.pathlms.com/siggraph/events/609&#34;&gt;Live Streaming Sessions&lt;/a&gt; (free registration required)&lt;/p&gt;</description>
        </item>
      
    
      
        <item>
          <title>SIGGRAPH 2015 Links</title>
          <link>https://blog.selfshadow.com/2015/08/15/siggraph-2015-links/</link>
          <pubDate>Sat, 15 Aug 2015 12:11:00 +0000</pubDate>
          
          <guid>https://blog.selfshadow.com/2015/08/15/siggraph-2015-links/</guid>
          <description>&lt;figure class=&#34;centered&#34;&gt;&lt;img src=&#34;https://blog.selfshadow.com/images/siggraph-2015/s15_logo.png&#34;&gt;
&lt;/figure&gt;

&lt;p&gt;Once again, I&amp;rsquo;m collecting links to SIGGRAPH content: courses, talks, posters, etc. I&amp;rsquo;ll continue to update the post as new stuff appears; if you&amp;rsquo;re aware of anything that&amp;rsquo;s not listed here, please let me know in the comments.&lt;/p&gt;</description>
        </item>
      
    
      
        <item>
          <title>SIGGRAPH 2014 Links</title>
          <link>https://blog.selfshadow.com/2014/08/14/siggraph-2014-links/</link>
          <pubDate>Thu, 14 Aug 2014 15:21:33 +0000</pubDate>
          
          <guid>https://blog.selfshadow.com/2014/08/14/siggraph-2014-links/</guid>
          <description>&lt;figure class=&#34;centered&#34;&gt;&lt;img src=&#34;https://blog.selfshadow.com/images/siggraph-2014/s14_logo.png&#34;&gt;
&lt;/figure&gt;

&lt;p&gt;As before, I&amp;rsquo;m collecting links to SIGGRAPH content: courses, talks, posters, etc. I&amp;rsquo;ll continue to update the post as new stuff appears; if you&amp;rsquo;ve seen anything that&amp;rsquo;s not here, please let me know in the comments.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt;
In a welcome change this year, conference content is freely available from the ACM Digital Library (albeit via &lt;a href=&#34;http://www.acm.org/publications/acm-author-izer-service&#34;&gt;&lt;em&gt;Author-Izer&lt;/em&gt;&lt;/a&gt;, so there&amp;rsquo;s a tedious countdown timer for each link). Here are the most relevant pages:&lt;/p&gt;</description>
        </item>
      
    
      
        <item>
          <title>Physically based Shading at SIGGRAPH 2014</title>
          <link>https://blog.selfshadow.com/2014/08/12/physically-based-shading-at-siggraph-2014/</link>
          <pubDate>Tue, 12 Aug 2014 12:49:57 +0000</pubDate>
          
          <guid>https://blog.selfshadow.com/2014/08/12/physically-based-shading-at-siggraph-2014/</guid>
          <description>2pm, Wednesday 13th August. Located in the west building, rooms 211-214.
We&amp;rsquo;re back once again with the Physically Based Shading (in Theory and Practice) course at SIGGRAPH! You can find the details on the new course page, but I&amp;rsquo;ll copy the schedule here, for your convenience:
14:00 Physics and Math of Shading (Naty Hoffman)
14:20 Understanding the Masking-Shadowing Function (Eric Heitz)
14:40 Antialiasing Physically Based Shading with LEADR Mapping (Jonathan Dupuy)</description>
        </item>
      
    
      
        <item>
          <title>SIGGRAPH 2013 Links</title>
          <link>https://blog.selfshadow.com/2013/07/24/siggraph-2013-links/</link>
          <pubDate>Wed, 24 Jul 2013 00:00:00 +0000</pubDate>
          
          <guid>https://blog.selfshadow.com/2013/07/24/siggraph-2013-links/</guid>
          <description>&lt;figure class=&#34;centered&#34;&gt;&lt;img src=&#34;https://blog.selfshadow.com/images/siggraph-2013/s13_logo.png&#34;&gt;
&lt;/figure&gt;

&lt;p&gt;Once again, I&amp;rsquo;m collecting links to SIGGRAPH content: courses, talks, posters, etc. I&amp;rsquo;ll continue to update the post as new stuff appears.&lt;/p&gt;</description>
        </item>
      
    
      
        <item>
          <title>Counting Quads</title>
          <link>https://blog.selfshadow.com/2012/11/12/counting-quads/</link>
          <pubDate>Mon, 12 Nov 2012 00:00:00 +0000</pubDate>
          
          <guid>https://blog.selfshadow.com/2012/11/12/counting-quads/</guid>
          <description>&lt;p&gt;&lt;em&gt;This is a DX11 followup to an &lt;a href=&#34;https://blog.selfshadow.com/publications/overdraw-in-overdrive/&#34;&gt;earlier article&lt;/a&gt; on quad &amp;lsquo;overshading&amp;rsquo;. If you&amp;rsquo;ve already read that, then feel free to skip to the &lt;a href=&#34;#meat&#34;&gt;meat of this post&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;h2 id=&#34;recount&#34;&gt;Recount&lt;/h2&gt;
&lt;p&gt;As you likely know, modern GPUs shade triangles in blocks of 2x2 pixels, or &lt;em&gt;quads&lt;/em&gt;. Consequently, redundant processing can happen along the edges where there&amp;rsquo;s partial coverage, since only some of the pixels will end up contributing to the final image. Normally this isn&amp;rsquo;t a problem, but – depending on the complexity of the pixel shader – it can significantly increase, or even dominate, the cost of rendering meshes with lots of very small or thin triangles.&lt;/p&gt;
&lt;figure class=&#34;centered&#34;&gt;&lt;img src=&#34;https://blog.selfshadow.com/images/counting-quads/figure_1.png&#34;
    alt=&#34;Figure 1: Quad overshading, the silent performance killer.&#34;&gt;&lt;figcaption&gt;
      &lt;p&gt;Figure 1: Quad overshading, the silent performance killer.&lt;/p&gt;
    &lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;&lt;em&gt;For more information, see Fabian Giesen&amp;rsquo;s &lt;a href=&#34;http://fgiesen.wordpress.com/2011/07/10/a-trip-through-the-graphics-pipeline-2011-part-8/&#34;&gt;post&lt;/a&gt;, plus his &lt;a href=&#34;http://fgiesen.wordpress.com/2011/07/09/a-trip-through-the-graphics-pipeline-2011-index/&#34;&gt;excellent series&lt;/a&gt; in general.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;It&amp;rsquo;s hardly surprising, then, that IHVs have been advising for years to avoid triangles smaller than a certain size, but that&amp;rsquo;s somewhat at odds with game developers – artists in particular – wanting to increase visual fidelity and believability, through greater surface detail, smoother silhouettes, more complex shading, etc. (As a 3D programmer, part of my job involves the thrill of being stuck in the middle of these kinds of arguments!)&lt;/p&gt;
&lt;p&gt;Traditionally, mesh LODs have helped to keep triangle density in check. More recently, deferred rendering methods have sidestepped a large chunk of the redundant shading work, by writing out surface attributes and then processing lighting more coherently via volumes or tiles. However, these are by no means definitive solutions, and nascent techniques such as DX11 tessellation and &lt;a href=&#34;http://aras-p.info/blog/2012/03/27/tiled-forward-shading-links/&#34;&gt;&lt;em&gt;tile-based forward shading&lt;/em&gt;&lt;/a&gt; not only challenge the status quo, but also bring new relevancy to the problem of quad shading overhead.&lt;/p&gt;
&lt;p&gt;Knowing about this issue is one thing, but, as they say: &lt;em&gt;seeing is believing&lt;/em&gt;. In a &lt;a href=&#34;https://blog.selfshadow.com/publications/overdraw-in-overdrive/&#34;&gt;previous article&lt;/a&gt;, I showed how to display hi-z and quad overshading on Xbox 360, via some plaform-specific tricks. That&amp;rsquo;s all well and good, but it would be great to have the same sort of visualisation on PC, built into the game editor. It would also be helpful to have some overall stats on shading efficiency, without having to link against a library (&lt;a href=&#34;http://developer.amd.com/tools/gpu/GPUPerfAPI/Pages/default.aspx&#34;&gt;GPUPerfAPI&lt;/a&gt;, &lt;a href=&#34;https://developer.nvidia.com/nvidia-perfkit&#34;&gt;PerfKit&lt;/a&gt;) or run a separate tool.&lt;/p&gt;
&lt;p&gt;There are several ways of reaching these modest goals, which I&amp;rsquo;ll cover next. What I&amp;rsquo;ve settled on so far is admittedly a hack: a compromise between efficiency, memory usage, correctness and simplicity. Still, it fulfils my needs so far and I hope you find it useful as well.&lt;/p&gt;</description>
        </item>
      
    
      
        <item>
          <title>SIGGRAPH 2012 Links</title>
          <link>https://blog.selfshadow.com/2012/08/11/siggraph-2012-links/</link>
          <pubDate>Sat, 11 Aug 2012 00:00:00 +0000</pubDate>
          
          <guid>https://blog.selfshadow.com/2012/08/11/siggraph-2012-links/</guid>
          <description>&lt;figure class=&#34;centered&#34;&gt;&lt;img src=&#34;https://blog.selfshadow.com/images/siggraph-2012/s12_logo.png&#34;&gt;
&lt;/figure&gt;

&lt;p&gt;As with &lt;a href=&#34;https://blog.selfshadow.com/2011/08/13/hpg-siggraph-2011/&#34;&gt;last year&lt;/a&gt;, I&amp;rsquo;m gathering links to SIGGRAPH content, to complement Ke-Sen Huang&amp;rsquo;s invaluable &lt;a href=&#34;http://kesen.realtimerendering.com/sig2012.html&#34;&gt;Technical Papers list&lt;/a&gt;. Please let me know if you have anything to add to the list.&lt;/p&gt;</description>
        </item>
      
    
      
        <item>
          <title>Blending in Detail</title>
          <link>https://blog.selfshadow.com/publications/blending-in-detail/</link>
          <pubDate>Tue, 10 Jul 2012 02:33:00 +0000</pubDate>
          
          <guid>https://blog.selfshadow.com/publications/blending-in-detail/</guid>
          <description>+ = By Colin Barré-Brisebois and Stephen Hill. The x, why, z It&amp;rsquo;s a seemly simple problem: given two normal maps, how do you combine them? In particular, how do you add detail to a base normal map in a consistent way? We&amp;rsquo;ll be examining several popular methods as well as covering a new approach, Reoriented Normal Mapping, that does things a little differently.
This isn&amp;rsquo;t an exhaustive survey with all the answers, but hopefully we&amp;rsquo;ll encourage you to re-examine what you&amp;rsquo;re currently doing, whether it&amp;rsquo;s at run time or in the creation process itself.</description>
        </item>
      
    
      
        <item>
          <title>Blending in Detail</title>
          <link>https://blog.selfshadow.com/2012/07/08/blending-in-detail/</link>
          <pubDate>Sun, 08 Jul 2012 00:00:00 +0000</pubDate>
          
          <guid>https://blog.selfshadow.com/2012/07/08/blending-in-detail/</guid>
          <description>&amp;nbsp;&amp;nbsp;+&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;=&amp;nbsp;&amp;nbsp; I&amp;rsquo;ve added a new article, Blending in Detail, written together with Colin Barré-Brisebois, on the topic of blending normal maps. We go through various techniques that are out there, as well as a neat alternative (&amp;ldquo;Reoriented Normal Mapping&amp;rdquo;) from Colin that I helped to optimise.
This is by no means a complete analysis – particularly as we focus on detail mapping – so we might return to the subject at a later date and tie up some loose ends.</description>
        </item>
      
    
      
        <item>
          <title>Travelling Without Moving</title>
          <link>https://blog.selfshadow.com/2012/04/11/travelling-without-moving/</link>
          <pubDate>Wed, 11 Apr 2012 00:00:00 +0000</pubDate>
          
          <guid>https://blog.selfshadow.com/2012/04/11/travelling-without-moving/</guid>
          <description>Lately I’d been getting increasingly frustrated with the limitations of WordPress(.com), so I longed for a change. With the Easter weekend, I finally had a little extra time and energy to make the switch to Octopress, plus a dedicated web host. Hopefully that’ll encourage me to start posting again, or at least remove one major grumble. I’m also looking forward to such liberties as the ability to embed WebGL, though I can’t entirely promise that I’ll wield such power responsibly.</description>
        </item>
      
    
      
        <item>
          <title>Righting Wrap (Part 2)</title>
          <link>https://blog.selfshadow.com/2012/01/07/righting-wrap-part-2/</link>
          <pubDate>Sat, 07 Jan 2012 21:07:12 +0000</pubDate>
          
          <guid>https://blog.selfshadow.com/2012/01/07/righting-wrap-part-2/</guid>
          <description>&lt;h2 id=&#34;wrapping-paper&#34;&gt;Wrapping Paper&lt;/h2&gt;
&lt;p&gt;I first tinkered with SH wrap shading (as described in &lt;a href=&#34;https://blog.selfshadow.com/2011/12/31/righting-wrap-part-1&#34;&gt;part 1&lt;/a&gt;) for &lt;em&gt;Splinter Cell: Conviction&lt;/em&gt;, since we were using a couple of models [1][2] for some character-specific materials. Unfortunately, due to the way that indirect character lighting was performed, it would have required additional memory that we couldn&amp;rsquo;t really justify at that point in development. Consequently, this work was left on the cutting room floor and I only got as far as testing out Green&amp;rsquo;s model [1].&lt;/p&gt;
&lt;p&gt;Recently, however, I spotted that &lt;em&gt;Irradiance Rigs&lt;/em&gt; [3] covers similar ground. At the very end of the short paper, they briefly present a generalisation of Valve&amp;rsquo;s &lt;em&gt;Half Lambert&lt;/em&gt; model [2] and the SH convolution terms for the first three bands:&lt;/p&gt;</description>
        </item>
      
    
      
        <item>
          <title>Righting Wrap (Part 1)</title>
          <link>https://blog.selfshadow.com/2011/12/31/righting-wrap-part-1/</link>
          <pubDate>Sat, 31 Dec 2011 18:39:22 +0000</pubDate>
          
          <guid>https://blog.selfshadow.com/2011/12/31/righting-wrap-part-1/</guid>
          <description>&lt;p&gt;A while back, &lt;a href=&#34;http://blog.stevemcauley.com/&#34;&gt;Steve McAuley&lt;/a&gt; and I were discussing physically based rendering miscellanea over a quiet pint – hardly a stretch of the imagination, since we&amp;rsquo;re English 3D programmers after all! Anyway, it turned out that we both had plans to write up a few thoughts in relation to &lt;em&gt;wrap shading&lt;/em&gt;, and, following some gentle arm-twisting, Steve has &lt;a href=&#34;http://blog.stevemcauley.com/2011/12/03/energy-conserving-wrapped-diffuse/&#34;&gt;posted&lt;/a&gt; his. I suggest that you go and read that first if you haven&amp;rsquo;t already, then return here for a continuation of the subject.&lt;/p&gt;
&lt;h2 id=&#34;bad-wrap&#34;&gt;Bad Wrap&lt;/h2&gt;
&lt;p&gt;Wrap shading has its uses when more accurate techniques are too expensive, or simply to achieve a certain aesthetic, but common models [1][2] have some deficiencies out of the box. Neither of these is energy conserving and they don&amp;rsquo;t really play well with shadows either. On top of that, Valve&amp;rsquo;s &lt;em&gt;Half Lambert&lt;/em&gt; model [2] has a fixed amount of wrap, so it can&amp;rsquo;t be tuned to suit different materials (or, perhaps, to limit shadow oddities). I&amp;rsquo;ll come back to the point about flexibility in &lt;a href=&#34;https://blog.selfshadow.com/2012/01/07/righting-wrap-part-2/&#34;&gt;part 2&lt;/a&gt;, but first I&amp;rsquo;d like to discuss another factor that&amp;rsquo;s easily overlooked: &lt;em&gt;environmental lighting&lt;/em&gt;.&lt;/p&gt;</description>
        </item>
      
    
      
        <item>
          <title>Perpendicular Possibilities</title>
          <link>https://blog.selfshadow.com/2011/10/17/perp-vectors/</link>
          <pubDate>Mon, 17 Oct 2011 03:25:02 +0000</pubDate>
          
          <guid>https://blog.selfshadow.com/2011/10/17/perp-vectors/</guid>
          <description>&lt;figure class=&#34;centered&#34;&gt;&lt;img src=&#34;https://blog.selfshadow.com/images/perp-vectors/figure_1.png&#34;
    alt=&#34;Figure 1: Major axes for original (left), swizzle (mid) and perpendicular (right) vectors.&#34;&gt;&lt;figcaption&gt;
      &lt;p&gt;&lt;em&gt;Figure 1: Major axes for original (left), swizzle (mid) and perpendicular (right) vectors.&lt;/em&gt;&lt;/p&gt;
    &lt;/figcaption&gt;
&lt;/figure&gt;

&lt;h2 id=&#34;introduction&#34;&gt;Introduction&lt;/h2&gt;
&lt;p&gt;Two months ago, there was &lt;a href=&#34;http://twitter.com/#!/KeefJudge/status/103531192451743744&#34;&gt;a question&lt;/a&gt; (and subsequent discussion) on Twitter as to how to go about generating a perpendicular unit vector, preferably without branching. It seemed about time that I finally post something more complete on the subject, since there are various ways to go about doing this, as well as a few traps awaiting the unwary programmer.&lt;/p&gt;</description>
        </item>
      
    
      
        <item>
          <title>Hidden Costs</title>
          <link>https://blog.selfshadow.com/2011/10/01/hidden-costs/</link>
          <pubDate>Sat, 01 Oct 2011 18:56:14 +0000</pubDate>
          
          <guid>https://blog.selfshadow.com/2011/10/01/hidden-costs/</guid>
          <description>I recently added two of my existing publications, one about high performance dynamic visibility and the other on how to display pixel quad overshading in real-time on Xbox 360.
The first of these was originally published in GPU Pro 2. Unfortunately, I missed some errors that crept into the typeset version, so I was pleased to finally correct those and I took the opportunity to rework a few sentences for greater clarity as well.</description>
        </item>
      
    
      
        <item>
          <title>Overdraw in Overdrive</title>
          <link>https://blog.selfshadow.com/publications/overdraw-in-overdrive/</link>
          <pubDate>Tue, 27 Sep 2011 09:03:41 +0000</pubDate>
          
          <guid>https://blog.selfshadow.com/publications/overdraw-in-overdrive/</guid>
          <description>This is a tweaked version of a journal entry for the Microsoft Game Developer Network, that&amp;rsquo;s been cleansed of any non-public Xbox 360 specifics. If you&amp;rsquo;re a registered developer, I encourage you to check out the uncut edition available there, for full implementation details.
Introduction PIX for Xbox 360 is an excellent application for deep analysis of a rendered frame. But, like a scalpel, it&amp;rsquo;s a precision instrument for dissection and surgery, not for general use and certainly not for the faint of heart.</description>
        </item>
      
    
      
        <item>
          <title>Practical, Dynamic Visibility for Games</title>
          <link>https://blog.selfshadow.com/publications/practical-visibility/</link>
          <pubDate>Thu, 22 Sep 2011 11:07:19 +0000</pubDate>
          
          <guid>https://blog.selfshadow.com/publications/practical-visibility/</guid>
          <description>Stephen Hill and Daniel Collin 1. Introduction With the complexity and interactivity of game worlds on the rise, the need for efficient dynamic visibility is becoming increasingly important.
As luck would have it, this article covers two complementary approaches to visibility determination that have shipped in recent AAA titles across Xbox 360, PS3 and PC: Splinter Cell: Conviction and Battlefield: Bad Company 1 &amp;amp; 2.
These solutions should be of broad interest, since they are capable of handling entirely dynamic environments consisting of a large number of objects, with low overhead, straightforward implementation, and only a modest impact on asset authoring.</description>
        </item>
      
    
      
        <item>
          <title>HPG/SIGGRAPH 2011</title>
          <link>https://blog.selfshadow.com/2011/08/13/hpg-siggraph-2011/</link>
          <pubDate>Sat, 13 Aug 2011 19:28:41 +0000</pubDate>
          
          <guid>https://blog.selfshadow.com/2011/08/13/hpg-siggraph-2011/</guid>
          <description>&lt;table style=&#34;margin-left:auto;margin-right:auto;border:none&#34;&gt;
&lt;td style=&#34;border: none&#34;&gt;&lt;figure&gt;&lt;img src=&#34;https://blog.selfshadow.com/images/hpg-siggraph-2011/hpg_logo.png&#34;&gt;
&lt;/figure&gt;
&lt;/td&gt;
&lt;td style=&#34;border: none&#34;&gt;&lt;figure&gt;&lt;img src=&#34;https://blog.selfshadow.com/images/hpg-siggraph-2011/s11_logo.png&#34;&gt;
&lt;/figure&gt;
&lt;/td&gt;
&lt;/table&gt;

&lt;p&gt;Both HPG and SIGGRAPH were a blast and I&amp;rsquo;m intending to write up a full report soon, but here are some links to conference content in the meantime. If you have any additional sources, please let me know in the comments section and I&amp;rsquo;ll update the post accordingly.&lt;/p&gt;</description>
        </item>
      
    
      
        <item>
          <title>Specular Showdown in the Wild West</title>
          <link>https://blog.selfshadow.com/2011/07/22/specular-showdown/</link>
          <pubDate>Fri, 22 Jul 2011 10:45:34 +0000</pubDate>
          
          <guid>https://blog.selfshadow.com/2011/07/22/specular-showdown/</guid>
          <description>&lt;figure class=&#34;centered&#34;&gt;&lt;img src=&#34;https://blog.selfshadow.com/images/showdown/goodbaduglyset.jpg&#34;&gt;
&lt;/figure&gt;

&lt;figure&gt;
&lt;figcaption&gt;
	&lt;em&gt;&#34;You see, in this world there&#39;s two kinds of people, my friend:&lt;br&gt;Those with loaded guns and those who dig. You dig.&#34; &amp;mdash; Blondie.&lt;/em&gt;
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;h2 id=&#34;saddle-up&#34;&gt;Saddle Up!&lt;/h2&gt;
&lt;p&gt;In this post, I&amp;rsquo;ll be reviewing some existing methods for attaining well-behaved specular lighting. I&amp;rsquo;ll also cover a simple twist on these that fits better with current game lighting approaches and console memory constraints.&lt;/p&gt;
&lt;p&gt;What do I mean by &lt;em&gt;well-behaved&lt;/em&gt;? I&amp;rsquo;m talking about avoiding specular highlight &lt;em&gt;shimmering&lt;/em&gt; on bumpy surfaces, as well as achieving the right appearance in the distance: the combined effect of these bumps as individual wrinkles and irregularities become too small to make out. Can we do all of this on a budget? Let&amp;rsquo;s hit the trail and find out!&lt;/p&gt;</description>
        </item>
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
        <item>
          <title>Blog Archive</title>
          <link>https://blog.selfshadow.com/archive/</link>
          <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
          
          <guid>https://blog.selfshadow.com/archive/</guid>
          <description></description>
        </item>
      
    
      
        <item>
          <title>Links</title>
          <link>https://blog.selfshadow.com/links/</link>
          <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
          
          <guid>https://blog.selfshadow.com/links/</guid>
          <description></description>
        </item>
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
      
    
  </channel>
</rss>
