<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Jonathan&#39;s Blog</title>
    <link>https://blog.jkoff.ca/</link>
    <description>Recent content on Jonathan&#39;s Blog</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <lastBuildDate>Thu, 12 Sep 2024 00:00:00 +0100</lastBuildDate>
    <atom:link href="https://blog.jkoff.ca/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Octahedral Encoding</title>
      <link>https://blog.jkoff.ca/posts/octahedral/</link>
      <pubDate>Thu, 12 Sep 2024 00:00:00 +0100</pubDate>
      <guid>https://blog.jkoff.ca/posts/octahedral/</guid>
      <description>The Physically Based Rendering 4th Edition book&amp;rsquo;s section on Octahedral Encoding shares an algorithm, but less of the intuition than I needed. Here&amp;rsquo;s what I&amp;rsquo;ve figured out.&#xA;Dividing a vector by its L1 norm yields a vector whose L1 norm equals 1. # Octahedral encoding operates on unit vectors, i.e. vectors with $v_x^2 + v_y^2 + v_z^2 = 1$. To encode a vector with octahedral encoding, we first divide the vector by its L1 norm, $|v_x| + |v_y| + |v_z|$.</description>
    </item>
  </channel>
</rss>
