Gregory Igehy

Dancing at hemisphere coordinate

Notes of Depth of Field

Notes of Depth of Field

"Depth of Field: A Survey of Techniques" GPU Gems 1

"Practical Post-Process Depth of Field" GPU Gems 3

"Real-Time Depth of Field Simulation" Guennadi Riguer, Natalya Tatarchuk and John Isidoro. ShaderX2. 2003

"Improved Depth-Of-Field Rendering" ShaderX3

"Real-Time Depth-of-Field Implemented with a Post-Processing only Technique" David Gilham. ShaderX5. 2007

McIntosh's paper "Efficiently Simulating the Bokeh of Polygonal Apertures in a Post-Process Depth of Field Shader". 2012

Circular Separable Convolution Depth of Field “Circular Dof” EA DICE, GDC2018

Rendering Trickes in DeadSpace3

f:id:gregory-igehy:20180911230917p:plain
f:id:gregory-igehy:20180911230924p:plain
f:id:gregory-igehy:20180911230950p:plain

Crysis Next Gen Effects 2008

f:id:gregory-igehy:20180906041148j:plainf:id:gregory-igehy:20180906041155j:plain

Gather DOF "Killzone Shadow Fall" Demo Postmortem

  • FarDOF と NearDOF の 2 パスで解像度は 1/2x1/2
  • ギャザーカーネルは 13x13
  • 小さい CoC ではサンプルカウント数を減らしたい
    • 同心円状にサンプリングして, 半径方向にループするようにした
  • しかし, ギャザーなので 今のピクセルに影響する最大の CoC を持つ近傍ピクセルを知る必要がある
    • CoC の Max ツリーを作る, 4 ミップあれば 13x13 には十分
    • これで従来の 1/8, 重いシーンでは 1/4 になった

f:id:gregory-igehy:20180908030337p:plain
f:id:gregory-igehy:20180908030324p:plain

f:id:gregory-igehy:20180908030348p:plain
f:id:gregory-igehy:20180908030400p:plain
f:id:gregory-igehy:20180908030247p:plain

Hexogonal Blur DOF : "Five Rendering Ideas from Battlefield 3 & Need For Speed: The Run" SIGGRAPH 2011. John White

CoC を事前に乗算 ( Pre Multiplied CoC )
  • RGB に CoC を乗算しておいたものをブラーする
  • CoC が小さくてピントが合っているものはブラーの効果が薄い
  • 後で, RGB /= CoC で元に戻す

f:id:gregory-igehy:20180906041605p:plain

6 角形ボケ : Hexogonal Blurs
  • 6 角形のボケを、3 つの菱形の形状のブラーで近似、最適化(資料中)する

f:id:gregory-igehy:20180906041821p:plain

GeometryShader Bokeh DOF "Secrets of CryENGINE 3 Graphics Technology" SIGGRAPH 2011

Bokeh DOF
  • ピクセルごとに 長方形・スプライトをジオメトリシェーダでFront/Back レイヤーに分けてソートして半分解像度で加算描画, Alpha にクワッド数を加算
  • 最後に合成するときに, Alpha で除算
    • Back レイヤーの CoC はフル解像度, Front レイヤーは染み出ても OK
  • 1080p でフォーカスが外れると, 100 msec 越えで激重い

f:id:gregory-igehy:20180908010905p:plain
f:id:gregory-igehy:20180908010914p:plain

GeometryShader Bokeh DOF : CEDEC 2007: Capcom on Lost Planet Part II

GeometryShader Bokeh DOF : "The Technology Behind the DirectX 11 Unreal Engine Samaritan Demo" GDC2011

  • http:www.nvidia.com/content/pdf/gdc2011/epic.pdf
  • Foreground, Background に CoC に応じたボケテクスチャをジオメトリシェーダで描画
  • 入力と出力の解像度は半分
  • フォグ/パーティクル/煙/ レンズフレアは DOF に影響されないように, 後で合成する

f:id:gregory-igehy:20180908011815p:plainf:id:gregory-igehy:20180908011823p:plain
f:id:gregory-igehy:20180908011825p:plainf:id:gregory-igehy:20180908011835p:plainf:id:gregory-igehy:20180908011841p:plain

"Vertex Shader Tricks – New Ways to Use the Vertex Shader to Improve Performance" GDC 2014, Bill Bilodeau

Notes of Motion Blur