Blog

Walk on Spheres について

December 30, 2022

これは レイトレ Advent Calendar 2022 の記事です. はじめに # 透明な容器に薄めた牛乳を入れ, 懐中電灯で照らすことで簡易ランタンを作る技があります. ぼんやりと光る牛乳をパストレーシングで描きたいとき, 単純にはランダムウォークする経路に沿って, ボリュームレンダリング方程式を評価することが考えられます. それほど計算コストをかけたくない場合は, ボリュームレンダリング方程式の拡散近似から, てきとうな近似式を作ることがあるかもしれません. 光に限らず, 熱や電荷など何かが媒質の中に拡散する現象はありふれたものです. 一般の拡散現象に応用できるような, ランダムウォークと 拡散方程式を対応付ける基盤として, Feynman-Kac の公式が知られています [ 江沢 and 中村. 2020]. 今年, Feynman-Kac の公式とボリュームレンダリング方程式の類似性から, ボリュームレンダリングの手法 [ Novák et al. 2018] を応用することによって, 空間的に非一様な係数を持った 楕円型偏微分方程式を効率よく解く手法が提案されました [ Sawhney et al. 2022] この記事では, 楕円型偏微分方程式の最も簡単な場合である Laplace 方程式を取り上げ, その手法の基礎となる Walk on Spheres アルゴリズムを実装することを目標にします. Dirichlet 境界値問題 # \(d\) 次元空間の中の領域 \(\Omega\) とその境界 \(\partial\Omega\) について, 以下の関数 \(u(x)\) を考えます. ...

局所一様媒質に対する Volume Rendering 方程式の漸化式

December 16, 2021

これは レイトレ Advent Calendar 2021 の記事です. はじめに # リアルアイムレンダリングの話をします. [ Hillaire 2016] の 5.6.3 節では, 散乱媒質を描画するときに, Volume Rendering 方程式の内部散乱項に対して入射光と散乱媒質を一様としたときに得られる, 解析解を利用しています. 後に述べるように, この解析解は 指数フォグを一般化したものに相当します. \[\begin{aligned} L(s) = L(0)e^{-\mu s} + L_{\text{in}}(1-e^{-\mu s}) \end{aligned}\] 解析解には, 数値積分の誤差が生じません. このため, レイマーチング[ Wrenninge and Zafar 2011]などによって散乱媒質を描画するとき, 入射光と散乱媒質が局所的に一様とみなせるところで, その計算精度を改善してくれます. ただし [ Hillaire 2016] で行われている議論は, ひとつの散乱媒質と単一散乱に絞ったものです. より一般的な議論を行うためには, 複数の散乱媒質と多重散乱を含んだものを, Volume Rendering 方程式から明示的に求めた資料が欲しいところです. そこで, この記事では複数媒質の Volume Rendering 方程式から出発して, 入射光と散乱媒質を局所的に一様としたときの漸化式を導きます1. 複数媒質の Volume Rendering 方程式 # まずは, Volume Rendering 方程式を導入します. ...

散乱理論とレンダリング方程式

December 22, 2020

これは レイトレ Advent Calendar 2020 の記事です。 はじめに # 散乱理論 [ 砂川 1977] では, 散乱現象を微分散乱断面積 \(\frac{d\bm{\sigma}}{d\bm{\omega}}\;[\text{m}^2\,\text{sr}^{-1}]\) Fig. 微分散乱断面積 \(\frac{d\bm{\sigma}}{d\bm{\omega}}\;[\text{m}^2\,\text{sr}^{-1}]\) で表現します. この概念は, Rendering 方程式にある BRDF \(f_r(\bm{i},\bm{o})\;[\text{sr}^{-1}]\) とよく似ています. 微分散乱断面積は, レイリー散乱や, 剛体球に弾かれる粒子の散乱など, 様々な散乱現象を求めるのに使われます. これと BRDF との対応関係がわかれば, 散乱理論で培われた知見を, さまざまな BRDF の考察に応用することができるかもしれません. この対応関係は, [ Arvo 1993] で示唆されているように, 既知であることが伺えます. しかし, このことを一貫して解説した文献を見つけることができなかったため, 自分なりにノートをまとめました. 散乱媒質と光 # 散乱媒質 # 空間を漂うホコリや, 酸素や窒素など大気を構成する分子, そして水滴などのエアロゾルを まとめて散乱媒質と呼ぶことにします. そしてこれらの粒子は, 空間中を位置 \(\bm{x}\), 運動量 \(\bm{p}\) で運動するものと考えます. 光 # 光とは, 電磁波の振動数 \(\nu\) が 可視光 の領域 400THz ~ 800THz 程度にあるものを指します. ...

ウェブサイトのセットアップ

October 21, 2020

このウェブサイトは、 https://themes.gohugo.io/theme/hugo-book/ を元に作った。 そのときの備忘録をこの記事に残しておく。 インストール # https://github.com/spf13/hugo/releases から実行ファイルを取得 手元の環境は Windows 10 64bit なので、hugo_0.76.5_Windows-64bit を選択 hugo.exe を適当なディレクトリに置き、パスを通す サイトの作成 # サイトを作る hugo new site [サイト名] 作成したサイトのディレクトリで git init して、そこを Git のリポジトリにする テーマの適用 # https://themes.gohugo.io/hugo-book/ を適用する git submodule add https://github.com/alex-shpak/hugo-book themes/book https://github.com/alex-shpak/hugo-book にある説明を見て記事を作成 サイトのプレビューと生成 # プレビュー hugo server public ディレクトリにサイトを生成 hugo 生成されたサイトを GitHub Pages として公開 # GitHub Pages用のリポジトリを作成 GitHub へアクセスし、[ユーザー名]. ...