image-space horizonspace horizon- based …...“eliminate surface acne with gradient shadow...

49
Image-Space Horizon- Image-Space Horizon- Image Space Horizon Based Ambient Occlusion Image Space Horizon Based Ambient Occlusion Bryan Dudash Bryan Dudash

Upload: others

Post on 20-May-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Image-Space HorizonSpace Horizon- Based …...“Eliminate surface acne with gradient shadow mapping”, ShaderX 4: Advanced Rendering ThiTechniques. • [Gelato] Gritz, L. 2006. “Gelato

Image-Space Horizon-Image-Space Horizon-Image Space HorizonBased Ambient Occlusion

Image Space HorizonBased Ambient Occlusion

Bryan DudashBryan Dudash

Page 2: Image-Space HorizonSpace Horizon- Based …...“Eliminate surface acne with gradient shadow mapping”, ShaderX 4: Advanced Rendering ThiTechniques. • [Gelato] Gritz, L. 2006. “Gelato

空からの光

• 最も簡単なアンビエントオクルージョン (AO)ン (AO)

• 光源 = 空 (球体光源)• AO – 二つの定義

シーンAO 二つの定義• AO = 空の照明による拡散光 [Landis 02]

[Christensen 03] • AO = 空の照明による影(sky illumination)

[Pharr and Green 04] [Hegeman et al. 06]

ただ 屋外のシ ンに限られている

球体光源

• ただ、屋外のシーンに限られている

Page 3: Image-Space HorizonSpace Horizon- Based …...“Eliminate surface acne with gradient shadow mapping”, ShaderX 4: Advanced Rendering ThiTechniques. • [Gelato] Gritz, L. 2006. “Gelato

アンビエントオクルージョン

• 光源= ローカルな半球

• 現在の面上の点を中心に

径 ザ 定

シーン

• 半径 = ユーザー設定

• レイトレーシングにより、描画できる[Gelato] [Mental Ray]

n[Gelato] [Mental Ray]

ローカルな球体光源

P

Page 4: Image-Space HorizonSpace Horizon- Based …...“Eliminate surface acne with gradient shadow mapping”, ShaderX 4: Advanced Rendering ThiTechniques. • [Gelato] Gritz, L. 2006. “Gelato

アンビエントオクルージョン

深さ 曲面性 距離感をモデルに与えるのが特徴• 深さ、曲面性、距離感をモデルに与えるのが特徴

AOなし AOあり

Page 5: Image-Space HorizonSpace Horizon- Based …...“Eliminate surface acne with gradient shadow mapping”, ShaderX 4: Advanced Rendering ThiTechniques. • [Gelato] Gritz, L. 2006. “Gelato

スクリーン空間上のアンビエントオクリージョン

• 下記の報告にはじめて紹介された[Shanmugam and Orikan 07] 目

[Mittring 07] [Fox and Compton 08]

入力 バ 法線

イメージ平面

• 入力 = Z-バッファー + 法線• ダイナミックなシーンを対象に、前処理なしでAOの近似値が描画でき処理なしでAOの近似値が描画できる Z-バッファー

• Z-Buffer = ハイトフィールド• z = f(x,y)

Page 6: Image-Space HorizonSpace Horizon- Based …...“Eliminate surface acne with gradient shadow mapping”, ShaderX 4: Advanced Rendering ThiTechniques. • [Gelato] Gritz, L. 2006. “Gelato

地平のマッピング[Max 86]

• 1次元のハイトフィールドだと

-Z

地平角度

PP +X

サンプリング(標本化)の方向

Page 7: Image-Space HorizonSpace Horizon- Based …...“Eliminate surface acne with gradient shadow mapping”, ShaderX 4: Advanced Rendering ThiTechniques. • [Gelato] Gritz, L. 2006. “Gelato

地平を検出する

• ハイトフィールドのマーチング

-Z

PS0 地平角度P +X

サンプリング方向

Page 8: Image-Space HorizonSpace Horizon- Based …...“Eliminate surface acne with gradient shadow mapping”, ShaderX 4: Advanced Rendering ThiTechniques. • [Gelato] Gritz, L. 2006. “Gelato

地平を検出する

• ハイトフィールドのマーチング

-Z

PS0

P

S1

+X

サンプリング方向

Page 9: Image-Space HorizonSpace Horizon- Based …...“Eliminate surface acne with gradient shadow mapping”, ShaderX 4: Advanced Rendering ThiTechniques. • [Gelato] Gritz, L. 2006. “Gelato

地平を検出する

• ハイトフィールドのマーチング

-Z

地平角度

S2

PS0

P

S1

+X

サンプリング方向

Page 10: Image-Space HorizonSpace Horizon- Based …...“Eliminate surface acne with gradient shadow mapping”, ShaderX 4: Advanced Rendering ThiTechniques. • [Gelato] Gritz, L. 2006. “Gelato

地平を検出する

• ハイトフィールドのマーチング

-Z S3

S2

地平角度

P

S2

S0P

S1

+X

サンプリング方向

Page 11: Image-Space HorizonSpace Horizon- Based …...“Eliminate surface acne with gradient shadow mapping”, ShaderX 4: Advanced Rendering ThiTechniques. • [Gelato] Gritz, L. 2006. “Gelato

接線の平面

点(P)とPの法線( )だと• 点(P)とPの法線(n)だと

-Zn

XY 平面

P

XY 平面

接線角度接線のベクトル 接線角度

Page 12: Image-Space HorizonSpace Horizon- Based …...“Eliminate surface acne with gradient shadow mapping”, ShaderX 4: Advanced Rendering ThiTechniques. • [Gelato] Gritz, L. 2006. “Gelato

地面ベースのアンビエントオクルージョン

Z-Z地面角度 [-π/2, π/2] h(H) = atan(H.z / ||H.xy||)地面ベクトル H

P

XY 平面

接線ベクトル T

P接線角度 [-π/2, π/2]t(T) = atan(T.z / ||T.xy||)

AO = sin h – sin t

Page 13: Image-Space HorizonSpace Horizon- Based …...“Eliminate surface acne with gradient shadow mapping”, ShaderX 4: Advanced Rendering ThiTechniques. • [Gelato] Gritz, L. 2006. “Gelato

アンビエントオクルージョンの半径

• 目の空間上で定義されたアンビエントオクルージョン

ンビエントオクル ジョンの半径• シーン = 深さのイメージ

イメージ平面

シ ン 深さのイメ ジ

• 光源の球体をテクスチャー空間へと投射する空間へと投射する• 球体の投射を円で近似化する

• 円をUV空間に投射する円をUV空間に投射するP R

球体光源

Page 14: Image-Space HorizonSpace Horizon- Based …...“Eliminate surface acne with gradient shadow mapping”, ShaderX 4: Advanced Rendering ThiTechniques. • [Gelato] Gritz, L. 2006. “Gelato

深さイメージのサンプリング

• ピクセル毎の方向が正常分

布にな ているとする

u

布になっているとする

• 方向毎のサンプルを固定

• ピクセル毎のランダム化 Pv

• ピクセル毎、方向をラ

ンダムに回転させる

• ランダムなオフセット

でサンプルをジッタピクセル毎に4つ方向の例

でサンプルをジッター

させる(ランダム化)

Page 15: Image-Space HorizonSpace Horizon- Based …...“Eliminate surface acne with gradient shadow mapping”, ShaderX 4: Advanced Rendering ThiTechniques. • [Gelato] Gritz, L. 2006. “Gelato

法線

• ピクセル単位で法線を保存する

補完された法線間違ったする

• 補完された法線ではない• 間違った遮蔽が発生してしまう

法線

面の法線間違った遮蔽

• 面の法線になる

• ジオメトリのパスで目空間上の座標に対して dd /dd 命令を利用する

Pに対して、ddx/ddy命令を利用する

Page 16: Image-Space HorizonSpace Horizon- Based …...“Eliminate surface acne with gradient shadow mapping”, ShaderX 4: Advanced Rendering ThiTechniques. • [Gelato] Gritz, L. 2006. “Gelato

コアなアルゴリズム

• 2次元上、AOの積分を取る• 複数の2次元方向でAOの平均値を取る複数 次元方向 平均値を取る

• AO(θ) = sin h(θ) - sin t(θ)

Z

θ

-Zh(θ)

XY 平面

面上の点 PXY 平面

t(θ)

Page 17: Image-Space HorizonSpace Horizon- Based …...“Eliminate surface acne with gradient shadow mapping”, ShaderX 4: Advanced Rendering ThiTechniques. • [Gelato] Gritz, L. 2006. “Gelato

折り目に見られるアンビエントオクルージョン

Page 18: Image-Space HorizonSpace Horizon- Based …...“Eliminate surface acne with gradient shadow mapping”, ShaderX 4: Advanced Rendering ThiTechniques. • [Gelato] Gritz, L. 2006. “Gelato

低三角化による問題

θ

n-Z

XY 平面AO > 0 間違った遮蔽

サンプリング方向 接線の平面サンプリング方向 接線の平面

Page 19: Image-Space HorizonSpace Horizon- Based …...“Eliminate surface acne with gradient shadow mapping”, ShaderX 4: Advanced Rendering ThiTechniques. • [Gelato] Gritz, L. 2006. “Gelato

解: 角度のバイアス

• Mental Rayでの”Spread”パラメーターに似ている

• 接線平面周辺の遮蔽を無視する接線平面周辺の遮蔽を無視する

θ

t(θ) + biasn

-Z 有効な接線平面

t(θ) bias

XY 平面AO == 0

接線平面

t(θ)

サンプリング方向 接線平面(符号付き角度)

リ グ方

Page 20: Image-Space HorizonSpace Horizon- Based …...“Eliminate surface acne with gradient shadow mapping”, ShaderX 4: Advanced Rendering ThiTechniques. • [Gelato] Gritz, L. 2006. “Gelato

角度ビアスの実例

角度バイアスなし 角度バイアスあり= 30度角度バイアスなし 角度バイアスあり 30度

Page 21: Image-Space HorizonSpace Horizon- Based …...“Eliminate surface acne with gradient shadow mapping”, ShaderX 4: Advanced Rendering ThiTechniques. • [Gelato] Gritz, L. 2006. “Gelato

スクリーン外のサンプリング

• 視錐台外では、シーン情報がない

バ 蔽– 辺固定と角度バイアスを用いて間違った遮蔽を除

外した

角度バイアス = 0 角度バイアス = 30度

Page 22: Image-Space HorizonSpace Horizon- Based …...“Eliminate surface acne with gradient shadow mapping”, ShaderX 4: Advanced Rendering ThiTechniques. • [Gelato] Gritz, L. 2006. “Gelato

非連続性の問題

-Z -Z

S1

n S1n

Pixel P0 S0 隣Pixel P1

AO(P0) = sin h – sin t= sin 0 – sin 0 = 0

AO(P1) = sin h – sin t == sin(45deg) – sin 0 = 0.7 sin 0 sin 0 0 sin(45deg) sin 0 0.7

P0 とP1の間、非連続が発生する

Page 23: Image-Space HorizonSpace Horizon- Based …...“Eliminate surface acne with gradient shadow mapping”, ShaderX 4: Advanced Rendering ThiTechniques. • [Gelato] Gritz, L. 2006. “Gelato

減衰の関数

• 放射関数W(r)により、AOのウェートを付ける• “obscurances”に似ているアプローチ [Zhukov et al. 98]似 るア チ [ ]• [Gelato] と[Mental Ray]では、 “Falloff” のパラメーター

基準化した距離r = ||S – P|| / R1

1.2

減衰関数W(r) = 1 - r20.6

0.8

step

1-r

0.2

0.4 1-r^2

-0.2

00 0.5 1 1.5 2

Page 24: Image-Space HorizonSpace Horizon- Based …...“Eliminate surface acne with gradient shadow mapping”, ShaderX 4: Advanced Rendering ThiTechniques. • [Gelato] Gritz, L. 2006. “Gelato

サンプル単位の減衰

• WAO = 0と、初期化

• サンプルS の後 SΦ(S2)

• サンプルS1の後• AO(S1) = sin Φ(S1) – sin t• WAO += W(S1) AO(S1)

S2Φ(S1)

R S1• WAO += W(S1) AO(S1)• サンプルS2の後

• もし Φ(S ) > Φ(S ) P• もし、 Φ(S2) > Φ(S1)• AO(S2) = sin Φ(S2) – sin t• WAO += W(S2) (AO(S2) - AO(S1))

P1

サンプリング方向( 2) ( ( 2) ( 1)) サンプリング方向

Page 25: Image-Space HorizonSpace Horizon- Based …...“Eliminate surface acne with gradient shadow mapping”, ShaderX 4: Advanced Rendering ThiTechniques. • [Gelato] Gritz, L. 2006. “Gelato

減衰ありとなしの例

減衰あり 減衰なし減衰ありW(r) = 1 - r2

減衰なしW(r) = 1

Page 26: Image-Space HorizonSpace Horizon- Based …...“Eliminate surface acne with gradient shadow mapping”, ShaderX 4: Advanced Rendering ThiTechniques. • [Gelato] Gritz, L. 2006. “Gelato

ノイズ

ピクセル毎のランダム化によるノイズ• ピクセル毎のランダム化によるノイズ

AO: 6 方向x 方向毎に6ステップ

Page 27: Image-Space HorizonSpace Horizon- Based …...“Eliminate surface acne with gradient shadow mapping”, ShaderX 4: Advanced Rendering ThiTechniques. • [Gelato] Gritz, L. 2006. “Gelato

Cross Bilateral Filter

をぼかす• AOをぼかす

• 深さ依存性のガウスのブラ• [Petschnigg et al. 04]• [Eisemann and Durand 04] • 辺のぼかしが防止できる

• 厳密には、非分離型のフィルターだが、X方向とY厳密 、非分離 ィ 、 方方向にそれぞれ与える

Page 28: Image-Space HorizonSpace Horizon- Based …...“Eliminate surface acne with gradient shadow mapping”, ShaderX 4: Advanced Rendering ThiTechniques. • [Gelato] Gritz, L. 2006. “Gelato

Cross Bilateral Filter

深さ依存 ぼか• 深さ依存のぼかし

ぼかしフィルターなし 15x15のぼかしフィルター

Page 29: Image-Space HorizonSpace Horizon- Based …...“Eliminate surface acne with gradient shadow mapping”, ShaderX 4: Advanced Rendering ThiTechniques. • [Gelato] Gritz, L. 2006. “Gelato

半解像度のAO

AOはほとんど低周波数• AOはほとんど低周波数

• 半解像度の描画も可能

• 半解像度の深さイメージを読み込む半解像度の深さイメ ジを読み込む

• ぼかし処理は、まだ全解像度を対象にする

• 辺での色滲みを防止する

• 目上の深さを全解像度で読み込む

• [Kopf et al. 07]

Page 30: Image-Space HorizonSpace Horizon- Based …...“Eliminate surface acne with gradient shadow mapping”, ShaderX 4: Advanced Rendering ThiTechniques. • [Gelato] Gritz, L. 2006. “Gelato

描画パイプライン

不透明モデルの描画

AO 描画

目空間の法線 目空間の深さ Unprojectionのパラメーター(fovyとアスペクト比)

AOの描画(全解像度または半分)

目空間上の半径 R方向の数方向当たりのステップ数角度バイX上、 AOをぼかす角度バイアス

Kernel 半径Spatial sigma

Y上、AOをぼかす

色 整

Spatial sigmaRange sigma

色の調整

Page 31: Image-Space HorizonSpace Horizon- Based …...“Eliminate surface acne with gradient shadow mapping”, ShaderX 4: Advanced Rendering ThiTechniques. • [Gelato] Gritz, L. 2006. “Gelato

デモ

Page 32: Image-Space HorizonSpace Horizon- Based …...“Eliminate surface acne with gradient shadow mapping”, ShaderX 4: Advanced Rendering ThiTechniques. • [Gelato] Gritz, L. 2006. “Gelato

パフォーマンス

主な要因• 主な要因

• スクリーンの解像度

• アンビエントオクルージョンの解像度解像度

• サンプル数 (方向 * ステップ)• ぼかしフィルターの大きさ

Page 33: Image-Space HorizonSpace Horizon- Based …...“Eliminate surface acne with gradient shadow mapping”, ShaderX 4: Advanced Rendering ThiTechniques. • [Gelato] Gritz, L. 2006. “Gelato

半解像度のAO

イメージサイズ 1600x1200AO解像度 800x600ぼかし解像度 1600x1200

半解像度 AO GeForce  GTX 280ジオメトリ 1.0 ms

ぼかし解像度

AO 3.5 msぼかし 2.5 ms合計 7.0 ms

143 fps143 fps

6 directions per pixel6 steps per direction15x15 Blur Size

Page 34: Image-Space HorizonSpace Horizon- Based …...“Eliminate surface acne with gradient shadow mapping”, ShaderX 4: Advanced Rendering ThiTechniques. • [Gelato] Gritz, L. 2006. “Gelato

全解像度のAO

イメージサイズ 1600x1200AO 解像度 1600x1200Blur 解像度 1600x1200解像度

Full‐Res AO GeForce GTX 280Geometry 1.0 ms

AO 30.0 msBlur 2.5 msTotal 33.5 ms

30 fps30 fps

6 方向/ピクセル6 ステップ/方向15x15 ぼかしのサイズ

Page 35: Image-Space HorizonSpace Horizon- Based …...“Eliminate surface acne with gradient shadow mapping”, ShaderX 4: Advanced Rendering ThiTechniques. • [Gelato] Gritz, L. 2006. “Gelato

半解像度のAO6x6 サンプル/ AO ピクセルBlurなし

AO = 3.5 ms @ 800x600GeForce GTX 280上

Blurなし

Page 36: Image-Space HorizonSpace Horizon- Based …...“Eliminate surface acne with gradient shadow mapping”, ShaderX 4: Advanced Rendering ThiTechniques. • [Gelato] Gritz, L. 2006. “Gelato

AO = 3.5 ms @ 800x600Blur = 2.5 ms @ 1600x1200

半解像度のAO6x6 サンプル/ AO ピクセル15x15 Blur GeForce GTX 280上15x15 Blur

Page 37: Image-Space HorizonSpace Horizon- Based …...“Eliminate surface acne with gradient shadow mapping”, ShaderX 4: Advanced Rendering ThiTechniques. • [Gelato] Gritz, L. 2006. “Gelato

全解像度のAO6x6 サンプル/ AO ピクセル15 15 Bl

AO = 30 ms @ 800x600Blur = 2.5 ms @ 1600x1200

15x15 Blur GeForce GTX 280上

Page 38: Image-Space HorizonSpace Horizon- Based …...“Eliminate surface acne with gradient shadow mapping”, ShaderX 4: Advanced Rendering ThiTechniques. • [Gelato] Gritz, L. 2006. “Gelato

全解像度のAO16x16 サンプル/ピクセル16x16 サンプル/ピクセルBlurなし

Page 39: Image-Space HorizonSpace Horizon- Based …...“Eliminate surface acne with gradient shadow mapping”, ShaderX 4: Advanced Rendering ThiTechniques. • [Gelato] Gritz, L. 2006. “Gelato

全解像度のAO16 32 サンプル/ピクセル16x32 サンプル/ピクセルBlurなし

Page 40: Image-Space HorizonSpace Horizon- Based …...“Eliminate surface acne with gradient shadow mapping”, ShaderX 4: Advanced Rendering ThiTechniques. • [Gelato] Gritz, L. 2006. “Gelato

結論

サ プ• DirectX10 SDK のサンプル• developer.nvidia.comにて配信中

ビデ• ビデオと技術白書も

• ゲームエンジンに組み込みやすい!• 入力 = 目空間上の深さと法線

• 後処理のパスで描画する

• 更に詳しくは、ShaderX7 (掲載予定)

Page 41: Image-Space HorizonSpace Horizon- Based …...“Eliminate surface acne with gradient shadow mapping”, ShaderX 4: Advanced Rendering ThiTechniques. • [Gelato] Gritz, L. 2006. “Gelato

Medusa デモ

Page 42: Image-Space HorizonSpace Horizon- Based …...“Eliminate surface acne with gradient shadow mapping”, ShaderX 4: Advanced Rendering ThiTechniques. • [Gelato] Gritz, L. 2006. “Gelato

Acknowledgments

NVIDIA• NVIDIA• Rouslan Dimitrov, Samuel Gateau, Michael Thompson,

Ignacio Castano the demo teamIgnacio Castano, the demo team• Models

• Dragon - Stanford 3D Scanning Repositoryg g p y• Sibenik Cathedral - Marko Dabrovic

Page 43: Image-Space HorizonSpace Horizon- Based …...“Eliminate surface acne with gradient shadow mapping”, ShaderX 4: Advanced Rendering ThiTechniques. • [Gelato] Gritz, L. 2006. “Gelato

Q&A

bdudash@nvidia comコ ドのサンプルの以下のアドレスまで [email protected]@nvidia.com

コードのサンプルの以下のアドレスまでhttp://developer.nvidia.com

Page 44: Image-Space HorizonSpace Horizon- Based …...“Eliminate surface acne with gradient shadow mapping”, ShaderX 4: Advanced Rendering ThiTechniques. • [Gelato] Gritz, L. 2006. “Gelato

ありがとうありがとうございました!ざ ました

10:40 - 12:00 Displacement Subdivision Surfaces in DX11p

Takayuki Kazama

13:00 - 14:20 G CGPU Physics and CUDA

Kitty Vongsay

14:50 16:1014:50 - 16:10 Real time Hair Rendering

Bryan Dudash

16:40 - 18:00 Horizon Based Ambient Occlusion

Bryan Dudash

developer.nvidia.com

Page 45: Image-Space HorizonSpace Horizon- Based …...“Eliminate surface acne with gradient shadow mapping”, ShaderX 4: Advanced Rendering ThiTechniques. • [Gelato] Gritz, L. 2006. “Gelato

References

[M 86] MAX N L 1986 “H i i Sh d f b• [Max 86] MAX, N. L. 1986. “Horizon mapping: Shadows for bump-mapped surfaces.” In Proceedings of Computer Graphics Tokyo ’86 on Advanced Computer Graphics.

• [Zhukov et al. 98] Sergej Zhukov, Andrej Inoes, Grigorij Kronin, 1998. “An ambient light illumination model.” In Rendering Techniques ’98 G Drettakis and N Max Eds Eurographics 45–Techniques 98, G. Drettakis and N. Max, Eds., Eurographics, 4556.

• [Landis 02] Landis, 2002. “Production-Ready Global Illumination,” I ACM SIGGRAPH C #16In ACM SIGGRAPH Course #16.

• [Christensen 03] Christensen, P. H. 2003. “Global illumination and all that”. In ACM SIGGRAPH Course 9.

Page 46: Image-Space HorizonSpace Horizon- Based …...“Eliminate surface acne with gradient shadow mapping”, ShaderX 4: Advanced Rendering ThiTechniques. • [Gelato] Gritz, L. 2006. “Gelato

References

[Ei d D d 04] El Ei d F éd D d• [Eisemann and Durand 04] Elmar Eisemann and Frédo Durand, “Flash Photography Enhancement via Intrinsic Relighting”, ACM SIGGRAPH 2004.

• [Petschnigg et al. 04] Petschnigg, Szeliski, Agrawala, Cohen, Hoppe, Toyama, “Digital photography with flash and no-flash image pairs ” ACM SIGGRAPH 2004image pairs. ACM SIGGRAPH 2004.

• [Schüler 05] Christian Schüler, 2005. “Eliminate surface acne with gradient shadow mapping”, ShaderX4: Advanced Rendering T h iTechniques.

• [Gelato] Gritz, L. 2006. “Gelato 2.1 Technical Reference”. NVIDIA.• [Mental Ray] “mental ray Shader Reference” November 2007[Mental Ray] mental ray Shader Reference , November 2007.

Page 47: Image-Space HorizonSpace Horizon- Based …...“Eliminate surface acne with gradient shadow mapping”, ShaderX 4: Advanced Rendering ThiTechniques. • [Gelato] Gritz, L. 2006. “Gelato

References

[Mitt i 07] MITTRING M 2007 “Fi di t C E i 2”• [Mittring 07] MITTRING, M. 2007. “Finding next gen: Cry Engine 2”. In SIGGRAPH ’07: ACM SIGGRAPH 2007 courses.

• [Shanmugam and Orikan 07] SHANMUGAM, P., AND ARIKAN, O. [ g ] , , ,2007. “Hardware accelerated ambient occlusion techniques on GPUs”. In I3D ’07: Proceedings of the 2007 symposium on Interactive 3D graphics and gamesInteractive 3D graphics and games.

• [Kopf et al. 07] Johannes Kopf, Michael F. Cohen, Dani Lischinski, Matt Uyttendaele, “Joint Bilateral Upsampling”, SIGGRAPH '07: ACM SIGGRAPH 2007ACM SIGGRAPH 2007 papers.

• [Fox and Compton 08] Megan Fox and Stuart Compton, “Ambient Occlusive Crease Shading”, Game Developer Magazine, March g , p g ,2008.

Page 48: Image-Space HorizonSpace Horizon- Based …...“Eliminate surface acne with gradient shadow mapping”, ShaderX 4: Advanced Rendering ThiTechniques. • [Gelato] Gritz, L. 2006. “Gelato

目空間上の位置を計算する

• 座標(u,v)にあるサンプルのS だと

uvunproject

s,tsnapx,y

目空間

uv 空間

st

ピクセルの中央点に移動させる

u,vs,tsnap

to s,tテクスチャー読み込み

zピクセルの中央点に移動させる読み込み

– 再構築の (x,y)とサンプルのzのすれ違いを防止するた再構築 ( ,y) サン すれ違 を防 する

め、uvを移動させる

Page 49: Image-Space HorizonSpace Horizon- Based …...“Eliminate surface acne with gradient shadow mapping”, ShaderX 4: Advanced Rendering ThiTechniques. • [Gelato] Gritz, L. 2006. “Gelato

接線角度

• 接線角度のTでは、

• 平面上のT(θ)• t(θ) = atan(T.z / ||T.xy||)

• 平面の基底を計算する

• 基底 = (dP/du dP/dv) XY

n• 基底 = (dP/du,dP/dv)– T = dP/du ∆u + dP/dv ∆v

勾配シャドーマッピングP

XY

t(θ) in [-π/2,π/2]– 勾配シャド マッピング[Schüler 05] 接線ベクトル T(θ)