SlideShare a Scribd company logo
1 of 59
SIGGRAPH 2010
Filmic Tonemapping
for Real-time Rendering
Haarm-Pieter Duiker
Duiker Research
hpd@duikerresearch.com
Filmic Tonemapping Overview
• History of Color in Games
• Scene-referred and Output-referred data
• Cineon Log
• What a filmic curve looks like
• Authoring a filmic curve
• Further work
SIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game ProductionSIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game Production 4
SIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game ProductionSIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game Production 5
SIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game ProductionSIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game Production 6
SIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game ProductionSIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game Production 7
SIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game ProductionSIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game Production 8
SIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game ProductionSIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game Production 9
SIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game ProductionSIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game Production 10
SIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game ProductionSIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game Production 11
SIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game ProductionSIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game Production
HDR data in modern hardware
• What problems do modern hardware capabilities bring
with them?
– Working with HDR data implies Linear color math
– Linear data is displayed on non-linear devices
• monitors
• TV screens
12
SIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game ProductionSIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game Production
Review of different color spaces
• Some (relatively) new terms
– Scene-referred
– Output-referred
– What? Why does this matter now?
• Two main color spaces
– Scene-referred Linear
– Output-referred sRGB
13
SIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game ProductionSIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game Production 14
SIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game ProductionSIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game Production 15
SIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game ProductionSIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game Production
Two phase model of color rendering
• Render / Capture linear data
• Correct for the display’s characteristics
– Get the display to render the intensities of the ‘scene-
referred’ data as closely as possible to the original scene
16
SIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game ProductionSIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game Production
What does Linear data “look” like?
17
SIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game ProductionSIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game Production 18
SIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game ProductionSIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game Production 19
SIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game ProductionSIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game Production 20
SIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game ProductionSIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game Production 21
SIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game ProductionSIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game Production 22
SIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game Production
• High contrast
• The dynamic range viewable on screen is small
• Integer formats can only represent a fixed dynamic
range
SIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game Production
Issues with Scene-referred Linear data
23
SIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game ProductionSIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game Production
Can we do better than sRGB?
• How do we make a scene-referred linear render
look like film?
• Can we add some artistic control to the proces?
– What if we want to make our render look like a film stock
that doesn’t exist?
25
SIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game ProductionSIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game Production 26
SIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game ProductionSIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game Production 27
SIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game ProductionSIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game Production 28
SIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game ProductionSIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game Production
Cineon Log - a new (old) color space
• Used in visual effects since circa 1993
• Important properties
– Pixel values correspond to negative density
• lg = (log10(ln/linReference)/ld*logGamma + logReference)/1023.f
• log Density ~= log10(Intensity) ~= Exposure
– HDR data in an LDR bit depth
• Values greater than 1 map to values less than 1
– Values close to 0 get a lot bits
29
SIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game ProductionSIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game Production
Visualizing color spaces
30
SIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game ProductionSIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game Production 31
SIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game ProductionSIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game Production 32
SIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game ProductionSIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game Production 33
SIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game ProductionSIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game Production 34
SIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game ProductionSIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game Production
Filmic Tonemapping - Four stages
• Render / Capture linear data
• Convert from Scene-referred Linear to Log
– Match the look of a negative film stock here
• Apply a “filmic” tonemap to match a print film stock
• Correct for the display’s characteristics
35
SIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game ProductionSIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game Production
What does a “filmic” curve look like?
• Let’s look at some curves. Notice
– Toe
– Shoulder
– Channel separation
– “Linear” range
36
SIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game ProductionSIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game Production
A “filmic” curve looks like - Kodak
37
SIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game ProductionSIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game Production
A “filmic” curve looks like - Color Sym.
38
SIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game ProductionSIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game Production
A “filmic” curve look like - Sony Anim.
39
SIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game ProductionSIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game Production
A “filmic” curve looks like - EA / Naughty
40
SIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game ProductionSIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game Production
Authoring a LUT - Process breakdown
• Screenshot from game
• Convert to Cineon Log
• Treat in Photoshop / Nuke / Grading suite of choice
– Make sure it’s a non-destructive edit (use layers)
– Or embed an identity lut
• Apply treatment to identity lut image
– Can be 1d or 3d
41
SIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game ProductionSIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game Production 42
SIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game ProductionSIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game Production 43
SIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game ProductionSIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game Production 44
SIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game ProductionSIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game Production 45
SIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game ProductionSIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game Production 46
SIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game ProductionSIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game Production 47
SIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game ProductionSIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game Production 48
SIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game ProductionSIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game Production 49
SIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game ProductionSIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game Production 50
SIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game ProductionSIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game Production 51
SIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game ProductionSIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game Production
Screenshot from game
• Can we use Uncharted here?
52
SIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game ProductionSIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game Production 53
SIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game ProductionSIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game Production
Optimized implementation
• Three steps of color processing is too expensive
• Analytical approximations
– Jim Hejl and Richard Burgess-Dawson at EA
– John Hable at Naughty Dog
54
SIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game ProductionSIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game Production
Analytical Approximations
• Linear all the way to sRGB-corrected
– Requires fitting parameters to authored lut
• Different approximations
55
SIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game ProductionSIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game Production
Approximation 1
56
float4 ps_main( float2 texCoord : TEXCOORD0 ) : COLOR
{
float3 texColor = tex2D(Texture0, texCoord );
float3 x = max(0,texColor-0.004);
float3 retColor = (x*(6.2*x+.5))/(x*(6.2*x+1.7)+0.06);
return float4(retColor,1);
}
SIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game ProductionSIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game Production
Approximation 2
57
float A = 0.15; float B = 0.50; float C = 0.10;
float D = 0.20; float E = 0.02; float F = 0.30; float W = 11.2;
float3 Uncharted2Tonemap(float3 x) { return ((x*(A*x+C*B)+D*E)/(x*(A*x+B)+D*F))-E/F; }
float4 ps_main( float2 texCoord : TEXCOORD0 ) : COLOR
{
float3 texColor = tex2D(Texture0, texCoord );
float ExposureBias = 2.0f;
float3 curr = ExposureBias*Uncharted2Tonemap(texColor);
float3 whiteScale = 1.0f/Uncharted2Tonemap(W);
float3 color = curr*whiteScale;
SIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game ProductionSIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game Production
Is a 1d Filmic tonemap good enough?
• Effects not accounted for by a 1d lut
– Color cross-talk
– Saturation
– Gamut-mapping
58
SIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game ProductionSIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game Production
Emulating an actual film stock
• Authoring a lut can be artistic or emulation driven
– Is emulation what your game needs?
– You can combine the two
59
SIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game ProductionSIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game Production
Thanks
• Naty Hoffman
• John Hable
• Jim Hejl
• Kim Libreri
• George Borshukov
• Course contributors
60

More Related Content

What's hot

[0107 박민근] 쉽게 배우는 hdr과 톤맵핑
[0107 박민근] 쉽게 배우는 hdr과 톤맵핑[0107 박민근] 쉽게 배우는 hdr과 톤맵핑
[0107 박민근] 쉽게 배우는 hdr과 톤맵핑
MinGeun Park
 
[Ndc12] 누구나 알기쉬운 hdr과 톤맵핑 박민근
[Ndc12] 누구나 알기쉬운 hdr과 톤맵핑 박민근[Ndc12] 누구나 알기쉬운 hdr과 톤맵핑 박민근
[Ndc12] 누구나 알기쉬운 hdr과 톤맵핑 박민근
MinGeun Park
 
Penner pre-integrated skin rendering (siggraph 2011 advances in real-time r...
Penner   pre-integrated skin rendering (siggraph 2011 advances in real-time r...Penner   pre-integrated skin rendering (siggraph 2011 advances in real-time r...
Penner pre-integrated skin rendering (siggraph 2011 advances in real-time r...
JP Lee
 
High Dynamic Range color grading and display in Frostbite
High Dynamic Range color grading and display in FrostbiteHigh Dynamic Range color grading and display in Frostbite
High Dynamic Range color grading and display in Frostbite
Electronic Arts / DICE
 
A Bit More Deferred Cry Engine3
A Bit More Deferred   Cry Engine3A Bit More Deferred   Cry Engine3
A Bit More Deferred Cry Engine3
guest11b095
 

What's hot (20)

The Rendering Technology of Killzone 2
The Rendering Technology of Killzone 2The Rendering Technology of Killzone 2
The Rendering Technology of Killzone 2
 
Ndc11 이창희_hdr
Ndc11 이창희_hdrNdc11 이창희_hdr
Ndc11 이창희_hdr
 
[0107 박민근] 쉽게 배우는 hdr과 톤맵핑
[0107 박민근] 쉽게 배우는 hdr과 톤맵핑[0107 박민근] 쉽게 배우는 hdr과 톤맵핑
[0107 박민근] 쉽게 배우는 hdr과 톤맵핑
 
Rendering Tech of Space Marine
Rendering Tech of Space MarineRendering Tech of Space Marine
Rendering Tech of Space Marine
 
Calibrating Lighting and Materials in Far Cry 3
Calibrating Lighting and Materials in Far Cry 3Calibrating Lighting and Materials in Far Cry 3
Calibrating Lighting and Materials in Far Cry 3
 
An introduction to Realistic Ocean Rendering through FFT - Fabio Suriano - Co...
An introduction to Realistic Ocean Rendering through FFT - Fabio Suriano - Co...An introduction to Realistic Ocean Rendering through FFT - Fabio Suriano - Co...
An introduction to Realistic Ocean Rendering through FFT - Fabio Suriano - Co...
 
[Ndc12] 누구나 알기쉬운 hdr과 톤맵핑 박민근
[Ndc12] 누구나 알기쉬운 hdr과 톤맵핑 박민근[Ndc12] 누구나 알기쉬운 hdr과 톤맵핑 박민근
[Ndc12] 누구나 알기쉬운 hdr과 톤맵핑 박민근
 
Taking Killzone Shadow Fall Image Quality Into The Next Generation
Taking Killzone Shadow Fall Image Quality Into The Next GenerationTaking Killzone Shadow Fall Image Quality Into The Next Generation
Taking Killzone Shadow Fall Image Quality Into The Next Generation
 
Secrets of CryENGINE 3 Graphics Technology
Secrets of CryENGINE 3 Graphics TechnologySecrets of CryENGINE 3 Graphics Technology
Secrets of CryENGINE 3 Graphics Technology
 
Penner pre-integrated skin rendering (siggraph 2011 advances in real-time r...
Penner   pre-integrated skin rendering (siggraph 2011 advances in real-time r...Penner   pre-integrated skin rendering (siggraph 2011 advances in real-time r...
Penner pre-integrated skin rendering (siggraph 2011 advances in real-time r...
 
D2 Hdr
D2 HdrD2 Hdr
D2 Hdr
 
Lighting of Killzone: Shadow Fall
Lighting of Killzone: Shadow FallLighting of Killzone: Shadow Fall
Lighting of Killzone: Shadow Fall
 
4K Checkerboard in Battlefield 1 and Mass Effect Andromeda
4K Checkerboard in Battlefield 1 and Mass Effect Andromeda4K Checkerboard in Battlefield 1 and Mass Effect Andromeda
4K Checkerboard in Battlefield 1 and Mass Effect Andromeda
 
Hable John Uncharted2 Hdr Lighting
Hable John Uncharted2 Hdr LightingHable John Uncharted2 Hdr Lighting
Hable John Uncharted2 Hdr Lighting
 
High Dynamic Range color grading and display in Frostbite
High Dynamic Range color grading and display in FrostbiteHigh Dynamic Range color grading and display in Frostbite
High Dynamic Range color grading and display in Frostbite
 
High dynamic range
High dynamic rangeHigh dynamic range
High dynamic range
 
Five Rendering Ideas from Battlefield 3 & Need For Speed: The Run
Five Rendering Ideas from Battlefield 3 & Need For Speed: The RunFive Rendering Ideas from Battlefield 3 & Need For Speed: The Run
Five Rendering Ideas from Battlefield 3 & Need For Speed: The Run
 
A Bit More Deferred Cry Engine3
A Bit More Deferred   Cry Engine3A Bit More Deferred   Cry Engine3
A Bit More Deferred Cry Engine3
 
언차티드4 테크아트 파트1 톤맵핑&색보정
언차티드4 테크아트 파트1 톤맵핑&색보정언차티드4 테크아트 파트1 톤맵핑&색보정
언차티드4 테크아트 파트1 톤맵핑&색보정
 
Optimizing the Graphics Pipeline with Compute, GDC 2016
Optimizing the Graphics Pipeline with Compute, GDC 2016Optimizing the Graphics Pipeline with Compute, GDC 2016
Optimizing the Graphics Pipeline with Compute, GDC 2016
 

Viewers also liked

Shadow gunのサンプルから学べるモバイル最適化
Shadow gunのサンプルから学べるモバイル最適化Shadow gunのサンプルから学べるモバイル最適化
Shadow gunのサンプルから学べるモバイル最適化
Katsutoshi Makino
 
Unity * スマートフォン開発で学んだこと
Unity * スマートフォン開発で学んだことUnity * スマートフォン開発で学んだこと
Unity * スマートフォン開発で学んだこと
Katsutoshi Makino
 
Kansai cedec 2015_fumoto
Kansai cedec 2015_fumotoKansai cedec 2015_fumoto
Kansai cedec 2015_fumoto
fumoto kazuhiro
 

Viewers also liked (20)

Filmic Tonemapping - EA 2006
Filmic Tonemapping - EA 2006Filmic Tonemapping - EA 2006
Filmic Tonemapping - EA 2006
 
ACEScg: A Common Color Encoding for Visual Effects Applications - DigiPro 2015
ACEScg: A Common Color Encoding for Visual Effects Applications - DigiPro 2015ACEScg: A Common Color Encoding for Visual Effects Applications - DigiPro 2015
ACEScg: A Common Color Encoding for Visual Effects Applications - DigiPro 2015
 
ACES 1.0 OpenColorIO config - Siggraph 2015
ACES 1.0 OpenColorIO config - Siggraph 2015ACES 1.0 OpenColorIO config - Siggraph 2015
ACES 1.0 OpenColorIO config - Siggraph 2015
 
Shadow gunのサンプルから学べるモバイル最適化
Shadow gunのサンプルから学べるモバイル最適化Shadow gunのサンプルから学べるモバイル最適化
Shadow gunのサンプルから学べるモバイル最適化
 
中級グラフィックス入門~シャドウマッピング総まとめ~
中級グラフィックス入門~シャドウマッピング総まとめ~中級グラフィックス入門~シャドウマッピング総まとめ~
中級グラフィックス入門~シャドウマッピング総まとめ~
 
Weighted Blended Order Independent Transparency
Weighted Blended Order Independent TransparencyWeighted Blended Order Independent Transparency
Weighted Blended Order Independent Transparency
 
Aclt1
Aclt1Aclt1
Aclt1
 
声の実体化体験 - HTML5でつくるデジタルインスタレーション -
声の実体化体験 - HTML5でつくるデジタルインスタレーション -声の実体化体験 - HTML5でつくるデジタルインスタレーション -
声の実体化体験 - HTML5でつくるデジタルインスタレーション -
 
レイトレ合宿3!!! 5分間アピールプレゼン―Pocol
レイトレ合宿3!!! 5分間アピールプレゼン―Pocolレイトレ合宿3!!! 5分間アピールプレゼン―Pocol
レイトレ合宿3!!! 5分間アピールプレゼン―Pocol
 
シェーダ体系の話
シェーダ体系の話シェーダ体系の話
シェーダ体系の話
 
Optimizing mobile applications - Ian Dundore, Mark Harkness
Optimizing mobile applications - Ian Dundore, Mark HarknessOptimizing mobile applications - Ian Dundore, Mark Harkness
Optimizing mobile applications - Ian Dundore, Mark Harkness
 
Unity * スマートフォン開発で学んだこと
Unity * スマートフォン開発で学んだことUnity * スマートフォン開発で学んだこと
Unity * スマートフォン開発で学んだこと
 
レイトレ合宿2!! 3分間アピールプレゼン―Pocol
レイトレ合宿2!! 3分間アピールプレゼン―Pocolレイトレ合宿2!! 3分間アピールプレゼン―Pocol
レイトレ合宿2!! 3分間アピールプレゼン―Pocol
 
CEDEC 2015 IoT向け汎用protocol MQTTのリアルタイムゲーム通信利用と実装、そして未来へ…
CEDEC 2015 IoT向け汎用protocol MQTTのリアルタイムゲーム通信利用と実装、そして未来へ…CEDEC 2015 IoT向け汎用protocol MQTTのリアルタイムゲーム通信利用と実装、そして未来へ…
CEDEC 2015 IoT向け汎用protocol MQTTのリアルタイムゲーム通信利用と実装、そして未来へ…
 
Tabc vol3 テクニカルアーティストを始めるにあたって
Tabc vol3 テクニカルアーティストを始めるにあたってTabc vol3 テクニカルアーティストを始めるにあたって
Tabc vol3 テクニカルアーティストを始めるにあたって
 
CEDEC 2016 Metal と Vulkan を用いた水彩画レンダリング技法の紹介
CEDEC 2016 Metal と Vulkan を用いた水彩画レンダリング技法の紹介CEDEC 2016 Metal と Vulkan を用いた水彩画レンダリング技法の紹介
CEDEC 2016 Metal と Vulkan を用いた水彩画レンダリング技法の紹介
 
뭣이 중헌디? 성능 프로파일링도 모름서 - 유니티 성능 프로파일링 가이드 (IGC16)
뭣이 중헌디? 성능 프로파일링도 모름서 - 유니티 성능 프로파일링 가이드 (IGC16)뭣이 중헌디? 성능 프로파일링도 모름서 - 유니티 성능 프로파일링 가이드 (IGC16)
뭣이 중헌디? 성능 프로파일링도 모름서 - 유니티 성능 프로파일링 가이드 (IGC16)
 
Kansai cedec 2015_fumoto
Kansai cedec 2015_fumotoKansai cedec 2015_fumoto
Kansai cedec 2015_fumoto
 
AI in Games- Steering, Wander and Flocking behavior
AI in Games- Steering, Wander and Flocking behaviorAI in Games- Steering, Wander and Flocking behavior
AI in Games- Steering, Wander and Flocking behavior
 
Application parallelisation Android - Klaas Vangend
Application parallelisation Android - Klaas VangendApplication parallelisation Android - Klaas Vangend
Application parallelisation Android - Klaas Vangend
 

Similar to Filmic Tonemapping for Real-time Rendering - Siggraph 2010 Color Course

Amd future of gp us - campus party
Amd   future of gp us - campus partyAmd   future of gp us - campus party
Amd future of gp us - campus party
Campus Party Brasil
 

Similar to Filmic Tonemapping for Real-time Rendering - Siggraph 2010 Color Course (20)

How the Game Industry shaped the Creative Industry
How the Game Industry shaped the Creative IndustryHow the Game Industry shaped the Creative Industry
How the Game Industry shaped the Creative Industry
 
How the Universal Render Pipeline unlocks games for you - Unite Copenhagen 2019
How the Universal Render Pipeline unlocks games for you - Unite Copenhagen 2019How the Universal Render Pipeline unlocks games for you - Unite Copenhagen 2019
How the Universal Render Pipeline unlocks games for you - Unite Copenhagen 2019
 
Introduction to game development
Introduction to game developmentIntroduction to game development
Introduction to game development
 
Academy of animation and gaming New Delhi - Brochure
Academy of animation and gaming New Delhi - BrochureAcademy of animation and gaming New Delhi - Brochure
Academy of animation and gaming New Delhi - Brochure
 
Maac Ameeerpet - VFX, Animation and Gaming Training Center in Hyderabad
Maac Ameeerpet - VFX, Animation and Gaming Training Center in HyderabadMaac Ameeerpet - VFX, Animation and Gaming Training Center in Hyderabad
Maac Ameeerpet - VFX, Animation and Gaming Training Center in Hyderabad
 
5 Major Challenges in Interactive Rendering
5 Major Challenges in Interactive Rendering5 Major Challenges in Interactive Rendering
5 Major Challenges in Interactive Rendering
 
08-Resolution & Value.pdf
08-Resolution & Value.pdf08-Resolution & Value.pdf
08-Resolution & Value.pdf
 
3D Stereoscopic Filmmaking Discussion
3D Stereoscopic Filmmaking Discussion3D Stereoscopic Filmmaking Discussion
3D Stereoscopic Filmmaking Discussion
 
Different Media & Entertainment Industry Workflows
Different Media & Entertainment Industry WorkflowsDifferent Media & Entertainment Industry Workflows
Different Media & Entertainment Industry Workflows
 
Different Media and Entertainment Industry Workflows
Different Media and Entertainment Industry WorkflowsDifferent Media and Entertainment Industry Workflows
Different Media and Entertainment Industry Workflows
 
Ghajini - The Game Development
Ghajini - The Game DevelopmentGhajini - The Game Development
Ghajini - The Game Development
 
Amd future of gp us - campus party
Amd   future of gp us - campus partyAmd   future of gp us - campus party
Amd future of gp us - campus party
 
Présentation aga fye 2014 partie légale + corpo (2015-01)
Présentation aga fye 2014   partie légale + corpo (2015-01)Présentation aga fye 2014   partie légale + corpo (2015-01)
Présentation aga fye 2014 partie légale + corpo (2015-01)
 
Les danses extatiques andres busrbano.pptx (3)
Les danses extatiques andres busrbano.pptx (3)Les danses extatiques andres busrbano.pptx (3)
Les danses extatiques andres busrbano.pptx (3)
 
Visual fx pdp pres
Visual fx pdp presVisual fx pdp pres
Visual fx pdp pres
 
HCID 2014: The Graphics Revolution and how Visual Effects became accessible t...
HCID 2014: The Graphics Revolution and how Visual Effects became accessible t...HCID 2014: The Graphics Revolution and how Visual Effects became accessible t...
HCID 2014: The Graphics Revolution and how Visual Effects became accessible t...
 
Metodologías de desarrollo de software en Gaming
Metodologías de desarrollo de software en GamingMetodologías de desarrollo de software en Gaming
Metodologías de desarrollo de software en Gaming
 
Arena animation digital brochure 2020 min
Arena animation digital brochure 2020 minArena animation digital brochure 2020 min
Arena animation digital brochure 2020 min
 
ColorEdge EIZO Monitor
ColorEdge EIZO MonitorColorEdge EIZO Monitor
ColorEdge EIZO Monitor
 
Veda final prospectus 2018-19
Veda final prospectus 2018-19Veda final prospectus 2018-19
Veda final prospectus 2018-19
 

Recently uploaded

FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
dollysharma2066
 
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Dr.Costas Sachpazis
 

Recently uploaded (20)

UNIT - IV - Air Compressors and its Performance
UNIT - IV - Air Compressors and its PerformanceUNIT - IV - Air Compressors and its Performance
UNIT - IV - Air Compressors and its Performance
 
chapter 5.pptx: drainage and irrigation engineering
chapter 5.pptx: drainage and irrigation engineeringchapter 5.pptx: drainage and irrigation engineering
chapter 5.pptx: drainage and irrigation engineering
 
Extrusion Processes and Their Limitations
Extrusion Processes and Their LimitationsExtrusion Processes and Their Limitations
Extrusion Processes and Their Limitations
 
Intze Overhead Water Tank Design by Working Stress - IS Method.pdf
Intze Overhead Water Tank  Design by Working Stress - IS Method.pdfIntze Overhead Water Tank  Design by Working Stress - IS Method.pdf
Intze Overhead Water Tank Design by Working Stress - IS Method.pdf
 
Roadmap to Membership of RICS - Pathways and Routes
Roadmap to Membership of RICS - Pathways and RoutesRoadmap to Membership of RICS - Pathways and Routes
Roadmap to Membership of RICS - Pathways and Routes
 
Java Programming :Event Handling(Types of Events)
Java Programming :Event Handling(Types of Events)Java Programming :Event Handling(Types of Events)
Java Programming :Event Handling(Types of Events)
 
Coefficient of Thermal Expansion and their Importance.pptx
Coefficient of Thermal Expansion and their Importance.pptxCoefficient of Thermal Expansion and their Importance.pptx
Coefficient of Thermal Expansion and their Importance.pptx
 
Thermal Engineering -unit - III & IV.ppt
Thermal Engineering -unit - III & IV.pptThermal Engineering -unit - III & IV.ppt
Thermal Engineering -unit - III & IV.ppt
 
Call for Papers - International Journal of Intelligent Systems and Applicatio...
Call for Papers - International Journal of Intelligent Systems and Applicatio...Call for Papers - International Journal of Intelligent Systems and Applicatio...
Call for Papers - International Journal of Intelligent Systems and Applicatio...
 
data_management_and _data_science_cheat_sheet.pdf
data_management_and _data_science_cheat_sheet.pdfdata_management_and _data_science_cheat_sheet.pdf
data_management_and _data_science_cheat_sheet.pdf
 
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
 
Double rodded leveling 1 pdf activity 01
Double rodded leveling 1 pdf activity 01Double rodded leveling 1 pdf activity 01
Double rodded leveling 1 pdf activity 01
 
University management System project report..pdf
University management System project report..pdfUniversity management System project report..pdf
University management System project report..pdf
 
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdfONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
 
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete RecordCCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
 
PVC VS. FIBERGLASS (FRP) GRAVITY SEWER - UNI BELL
PVC VS. FIBERGLASS (FRP) GRAVITY SEWER - UNI BELLPVC VS. FIBERGLASS (FRP) GRAVITY SEWER - UNI BELL
PVC VS. FIBERGLASS (FRP) GRAVITY SEWER - UNI BELL
 
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
 
(INDIRA) Call Girl Aurangabad Call Now 8617697112 Aurangabad Escorts 24x7
(INDIRA) Call Girl Aurangabad Call Now 8617697112 Aurangabad Escorts 24x7(INDIRA) Call Girl Aurangabad Call Now 8617697112 Aurangabad Escorts 24x7
(INDIRA) Call Girl Aurangabad Call Now 8617697112 Aurangabad Escorts 24x7
 
Online banking management system project.pdf
Online banking management system project.pdfOnline banking management system project.pdf
Online banking management system project.pdf
 
Unit 1 - Soil Classification and Compaction.pdf
Unit 1 - Soil Classification and Compaction.pdfUnit 1 - Soil Classification and Compaction.pdf
Unit 1 - Soil Classification and Compaction.pdf
 

Filmic Tonemapping for Real-time Rendering - Siggraph 2010 Color Course

  • 1.
  • 2. SIGGRAPH 2010 Filmic Tonemapping for Real-time Rendering Haarm-Pieter Duiker Duiker Research hpd@duikerresearch.com
  • 3. Filmic Tonemapping Overview • History of Color in Games • Scene-referred and Output-referred data • Cineon Log • What a filmic curve looks like • Authoring a filmic curve • Further work
  • 4. SIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game ProductionSIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game Production 4
  • 5. SIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game ProductionSIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game Production 5
  • 6. SIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game ProductionSIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game Production 6
  • 7. SIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game ProductionSIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game Production 7
  • 8. SIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game ProductionSIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game Production 8
  • 9. SIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game ProductionSIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game Production 9
  • 10. SIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game ProductionSIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game Production 10
  • 11. SIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game ProductionSIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game Production 11
  • 12. SIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game ProductionSIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game Production HDR data in modern hardware • What problems do modern hardware capabilities bring with them? – Working with HDR data implies Linear color math – Linear data is displayed on non-linear devices • monitors • TV screens 12
  • 13. SIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game ProductionSIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game Production Review of different color spaces • Some (relatively) new terms – Scene-referred – Output-referred – What? Why does this matter now? • Two main color spaces – Scene-referred Linear – Output-referred sRGB 13
  • 14. SIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game ProductionSIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game Production 14
  • 15. SIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game ProductionSIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game Production 15
  • 16. SIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game ProductionSIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game Production Two phase model of color rendering • Render / Capture linear data • Correct for the display’s characteristics – Get the display to render the intensities of the ‘scene- referred’ data as closely as possible to the original scene 16
  • 17. SIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game ProductionSIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game Production What does Linear data “look” like? 17
  • 18. SIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game ProductionSIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game Production 18
  • 19. SIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game ProductionSIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game Production 19
  • 20. SIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game ProductionSIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game Production 20
  • 21. SIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game ProductionSIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game Production 21
  • 22. SIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game ProductionSIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game Production 22
  • 23. SIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game Production • High contrast • The dynamic range viewable on screen is small • Integer formats can only represent a fixed dynamic range SIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game Production Issues with Scene-referred Linear data 23
  • 24. SIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game ProductionSIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game Production Can we do better than sRGB? • How do we make a scene-referred linear render look like film? • Can we add some artistic control to the proces? – What if we want to make our render look like a film stock that doesn’t exist? 25
  • 25. SIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game ProductionSIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game Production 26
  • 26. SIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game ProductionSIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game Production 27
  • 27. SIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game ProductionSIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game Production 28
  • 28. SIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game ProductionSIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game Production Cineon Log - a new (old) color space • Used in visual effects since circa 1993 • Important properties – Pixel values correspond to negative density • lg = (log10(ln/linReference)/ld*logGamma + logReference)/1023.f • log Density ~= log10(Intensity) ~= Exposure – HDR data in an LDR bit depth • Values greater than 1 map to values less than 1 – Values close to 0 get a lot bits 29
  • 29. SIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game ProductionSIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game Production Visualizing color spaces 30
  • 30. SIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game ProductionSIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game Production 31
  • 31. SIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game ProductionSIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game Production 32
  • 32. SIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game ProductionSIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game Production 33
  • 33. SIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game ProductionSIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game Production 34
  • 34. SIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game ProductionSIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game Production Filmic Tonemapping - Four stages • Render / Capture linear data • Convert from Scene-referred Linear to Log – Match the look of a negative film stock here • Apply a “filmic” tonemap to match a print film stock • Correct for the display’s characteristics 35
  • 35. SIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game ProductionSIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game Production What does a “filmic” curve look like? • Let’s look at some curves. Notice – Toe – Shoulder – Channel separation – “Linear” range 36
  • 36. SIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game ProductionSIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game Production A “filmic” curve looks like - Kodak 37
  • 37. SIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game ProductionSIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game Production A “filmic” curve looks like - Color Sym. 38
  • 38. SIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game ProductionSIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game Production A “filmic” curve look like - Sony Anim. 39
  • 39. SIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game ProductionSIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game Production A “filmic” curve looks like - EA / Naughty 40
  • 40. SIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game ProductionSIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game Production Authoring a LUT - Process breakdown • Screenshot from game • Convert to Cineon Log • Treat in Photoshop / Nuke / Grading suite of choice – Make sure it’s a non-destructive edit (use layers) – Or embed an identity lut • Apply treatment to identity lut image – Can be 1d or 3d 41
  • 41. SIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game ProductionSIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game Production 42
  • 42. SIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game ProductionSIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game Production 43
  • 43. SIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game ProductionSIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game Production 44
  • 44. SIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game ProductionSIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game Production 45
  • 45. SIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game ProductionSIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game Production 46
  • 46. SIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game ProductionSIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game Production 47
  • 47. SIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game ProductionSIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game Production 48
  • 48. SIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game ProductionSIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game Production 49
  • 49. SIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game ProductionSIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game Production 50
  • 50. SIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game ProductionSIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game Production 51
  • 51. SIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game ProductionSIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game Production Screenshot from game • Can we use Uncharted here? 52
  • 52. SIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game ProductionSIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game Production 53
  • 53. SIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game ProductionSIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game Production Optimized implementation • Three steps of color processing is too expensive • Analytical approximations – Jim Hejl and Richard Burgess-Dawson at EA – John Hable at Naughty Dog 54
  • 54. SIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game ProductionSIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game Production Analytical Approximations • Linear all the way to sRGB-corrected – Requires fitting parameters to authored lut • Different approximations 55
  • 55. SIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game ProductionSIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game Production Approximation 1 56 float4 ps_main( float2 texCoord : TEXCOORD0 ) : COLOR { float3 texColor = tex2D(Texture0, texCoord ); float3 x = max(0,texColor-0.004); float3 retColor = (x*(6.2*x+.5))/(x*(6.2*x+1.7)+0.06); return float4(retColor,1); }
  • 56. SIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game ProductionSIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game Production Approximation 2 57 float A = 0.15; float B = 0.50; float C = 0.10; float D = 0.20; float E = 0.02; float F = 0.30; float W = 11.2; float3 Uncharted2Tonemap(float3 x) { return ((x*(A*x+C*B)+D*E)/(x*(A*x+B)+D*F))-E/F; } float4 ps_main( float2 texCoord : TEXCOORD0 ) : COLOR { float3 texColor = tex2D(Texture0, texCoord ); float ExposureBias = 2.0f; float3 curr = ExposureBias*Uncharted2Tonemap(texColor); float3 whiteScale = 1.0f/Uncharted2Tonemap(W); float3 color = curr*whiteScale;
  • 57. SIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game ProductionSIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game Production Is a 1d Filmic tonemap good enough? • Effects not accounted for by a 1d lut – Color cross-talk – Saturation – Gamut-mapping 58
  • 58. SIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game ProductionSIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game Production Emulating an actual film stock • Authoring a lut can be artistic or emulation driven – Is emulation what your game needs? – You can combine the two 59
  • 59. SIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game ProductionSIGGRAPH 2010 Course: Color Enhancement and Rendering in Film and Game Production Thanks • Naty Hoffman • John Hable • Jim Hejl • Kim Libreri • George Borshukov • Course contributors 60

Editor's Notes

  1. Further work Going beyond a 1d lut Approximations the artistic results Where does this fit in the games rendering pipeline?
  2. Arguably one of the most important changes in gpu graphics in the last couple of years Linear means that an equal perceptual change in exposure is an exponential shift in linear intensity Linearize your textures on read Compensate for the characteristics of display devices through Tone Mapping Choose a Tone Mapping algorithm
  3. What is scene referred data? : Data that represents lighting values from a scene What is output referred data? : Data that represents value for some output medium What’s new here : They are different concepts and need to connected. How dynamic range maps to bits Tone-mapping algorithms can be used to transform Scene-referred data to Output-referred Why the choice of color space is important when you generate luts. Revisit later.
  4. - Start to have a means to describe the data out there in the world, i.e. photons hitting a lens, separately from the data being displayed on a monitor - What you see on your screen isn’t actually the ‘data’ - There is a mapping from Scene-referred to Output-referred
  5. Linear to sRGB is the most common generic transform Since most displays / TVs behave something like sRGB devices
  6. Common assumption in real-time rendering: HDR data just means that you can have values above 1 Picture of a light bulb with values in linear and video?
  7. Correcting for the characteristics of the display gets you - Detail in the darks - Better mid-tones - Less quantization overall
  8. To review - points above - Linear data doesn’t “look” right without some sort of tonemapping -
  9. A graph of an sRGB curve has to go in here somewhere
  10. - This will be a qualitative talk - For a very thorough quantitative simulation of film, see the next talk
  11. - Review the problem - linear element
  12. - Review the problem - sRGB element
  13. - Review the problem - filmic element
  14. - This is a very hand-wavy slide, just going to throw that out there now - From here on our I’ll just refer to Cineon Log as “Log”. There are now a number of new Cineon Log-like color spaces used by different digital video cameras. - “There are many Log spaces like it, but this one is mine” - The distinct mapping between scene-referred linear intensity values and Log Density values makes Cineon Log a bit nicer than some of the other log formats out there right now.
  15. - Review the problem - linear element Dark blacks Clipped whites
  16. - Review the problem - log element Non-clipped whites Range in the blacks Mid-tones aren’t compromised
  17. - Review the problem - filmic element
  18. - Review the problem - sRGB element
  19. - Review the problem - filmic element
  20. A technique that mimics the display of digital film data See earlier talks in this course - 4 steps doesn’t sound very real time. Can we get this down to 2 or even 1 step? Yes.
  21. - Things to notice, Toe, Shoulder, Linear portion and that each channel can and does behave differently
  22. aka Kodak Sensitometry Curves, Characteristic curves, Hurter-Driffield curves (from 1876, wow) - Things to notice, Toe, Shoulder, Linear portion and that each channel can and does behave differently
  23. Example curve from Color Symmetry
  24. Example curves from Sony
  25. Example curves from EA / Uncharted (Naughty Dog)
  26. - How do I make my own?
  27. Grey point and base curve - It’s easy to come up with a nice image that looks really different than the normal game engine output - In order to avoid real culture shock for the artists and engineers, keeping the grey levels consistent between the filmic tonemap and the normal sRGB is a good thing grey in sRGB ~= 118, 0.48 in log = 444, 110 white in sRGB ~= 255, 1 in log = 685, 171 black in sRGB ~= 0, 0 in log = 95, 24
  28. scene-referred linear
  29. cineon log
  30. sRGB
  31. filmic
  32. We like the results, but the process seems too expensive for a shipping game. Where should the tonemap be applied?
  33. - Matlab example of fitting parameters to curve in course notes?
  34. - The choice is definitely yours - Add image of Marcie with 1d and 3d representations of Kodak Premiere - Look at different film stocks, as presented by Adobe
  35. - Autodesk supplied .3dl files with Maya and Toxik - Adobe supplied .icc profiles with After Photoshop and After Effects - Copyright issues?