SlideShare una empresa de Scribd logo
1 de 21
이민웅
Shader Study

POST PROCESSING IN COLOR
목차
 Flimic Tone Mapping
 Color Grading

 Image Sharpening
 Color Correction
 Photo Filter
Flimic Tone Mapping
 John Hable이 Unchated2 HDR Lighting 발표

문서에서 소개한 내용
 Flim에서의 색상 Curve가 더 나은 결과를 보
여준다는 것에서 착안
 밝아질수록은 Reinhard방식과 유사하게 타
들어가는것을 방지하고, 어두워 질수록 어
두운 영역이 더 어두워 지도록 만듬
Flimic Tone Mapping
A = Shoulder Strength
B = Linear Strength
C = Linear Angle
D = Toe Strength
E = Toe Numerator
F = Toe Denominator
Note: E/F = Toe Angle




John Hable의 Blog를 통해서, Fixed 된 버전이라고 소개.
Gamma 보정을 최종적으로 적용 (pow(x, 1/2.2))
Flimic Tone Mapping
Flimic Tone Mapping
Color Grading

톤 매핑 (HDR to LDR 변형) 및 그에 따른 색 보정 (LDR color to color 변형) 기능을 포함
http://udn.epicgames.com/Three/ColorGradingKR.html

http://ttmayrin.tistory.com/34 Color Grading by LookUpTexture (컬러 그레이딩 by LUT)
Color Grading
 기본 텍스쳐는 RGB값을 컨버팅한 UV좌표에 정확

히 자기의 Color를 가지고 있는 상태

 텍스쳐를 16x16x16 3DTexture로 제작 사용하면 tex3D한방

으로 ColorGrading이 가능

 LUT를 이용한 ColorGrading은 Post Effect로서의 색

보정 역할 뿐만 아니라 개별 사물이나 캐릭터에도
적용이 가능

 Actor의 ShaderCode마지막에 LUT관련 함수만 적용해주

면 완성

 추가 텍스쳐 제작없이도 LUT만 만들어 놓으면 다

양한 색의 사물이나 몬스터, 이펙트를 다량으로 생
성할 수 있음
 포토샵 색조정은 어디까지나 한계가 있음
Color Grading
기본 LUT 텍스쳐 256x16
16x16x16 3D 텍스쳐로 만들어서 사용 가능

1. ColorGrading을 적용할 게임장면을 캡쳐하여 포토샵에서 불러옴
2. 기본이 되는 LUT도 같이 불러옴
3. 포토샵의 여러 기능으로 화면을 마음껏 원하는 이미지로 편집
- 여기서 중요한 것은 불러온 LUT도 같이 바뀌어야한다는 점
4. 원하는 화면이미지에서 LUT를 따로 저장
GrayScale용 LUT
256x16 LUT일 경우 ShaderCode from Unreal3
float3 CalcLUT( sampler InLUT, float3 InColor )
{
// requires a volume texture 16x16x16 unwrapped in a 2d texture 256x16
// can be optimized by using a volume texture
float2 Offset = float2(0.5f / 256.0f, 0.5f / 16.0f);
float Scale = 15.0f / 16.0f;

// Also consider blur value in the blur buffer written by translucency
float IntB = floor(InColor.b * 14.9999f) / 16.0f;
float FracB = InColor.b * 15.0f - IntB * 16.0f;

float U = IntB + InColor.r * Scale / 16.0f;
float V = InColor.g * Scale;

float3 RG0 = tex2D( InLUT, Offset + float2(U
, V) ).rgb;
float3 RG1 = tex2D( InLUT, Offset + float2(U + 1.0f / 16.0f, V) ).rgb;

return lerp( RG0, RG1, FracB );
}

16x16x16 3D VolumeTexture로 제작된 경우
float3 CalcLUT( sampler InLUT, float3 InColor )
{
return tex3D( InLUT, InColor * 15.f / 16.f + 0.5f / 16.f ).rgb;
}
Image Sharpening

이미지를 선명하게 하여 보정
Simply lerp between low-res blurred image with original image by a ratio bigger than 1
Sharp = lerp(blurred, orig, bigger than 1 ratio)
vector rcpres;
float4 lSharp(in float2 Tex : TEXCOORD) : COLOR0
{
float4 inColor = tex2D(s0, Tex);
float4 blur = inColor;

blur += tex2D(s0, float2(Tex.x, Tex.y+rcpres.y)) * 0.25;
blur += tex2D(s0, float2(Tex.x, Tex.y-rcpres.y)) * 0.25;
blur += tex2D(s0, float2(Tex.x+rcpres.x, Tex.y)) * 0.25;
blur += tex2D(s0, float2(Tex.x-rcpres.x, Tex.y)) * 0.25;
blur += tex2D(s0, float2(Tex.x-rcpres.x, Tex.y+rcpres.y)) * 0.25;
blur += tex2D(s0, float2(Tex.x-rcpres.x, Tex.y-rcpres.y)) * 0.25;
blur += tex2D(s0, float2(Tex.x+rcpres.x, Tex.y+rcpres.y)) * 0.25;
blur += tex2D(s0, float2(Tex.x+rcpres.x, Tex.y-rcpres.y)) * 0.25;
blur /= 3;

float4 final = lerp(blur,inColor, 3);
return final;
}
Color Correction
 Color range based on Euclidian distance
 ColorRange = saturate(1 - length( src - col.xyz) );

 색상보정은 CMYK 공간에서 수행
 c = lerp( c, clamp(c + dst_c, -1, 1), ColorRange);

 원본화면과 보정된 색상 화면을 조합
 Orig =lerp( Orig, CMYKtoRGB( c), ColorRange);
Color Correction
Photo Filter
 칼라값을 이용하여 전체 이미지의 분위기를 바꿈
 아티스트가 색을 지정
 cMood = lerp(0, cMood, saturate( fLum * 2.0 ) );
 cMood = lerp(cMood, 1, saturate( fLum - 0.5 ) * 2.0 );

 최종 칼라는 휘도(luminance)와 사용자 비율(user ratio)

설정값으로 분위기 색값과 전체 이미지를 혼합
 final= lerp(cScreen, cMood , saturate( fLum * fRatio));
float fRatio = 0.25;
float moodR = 0.5;
float moodG = 0.4;
float moodB = 0.25; //default is a mild orange
float4 colorMood(in float2 Tex : TEXCOORD) : COLOR0
{
float4 cScreen = tex2D(s0, Tex);
float4 cMood = 1;
cMood.r = moodR;
cMood.g = moodG;
cMood.b = moodB;
float fLum = ( cScreen.r + cScreen.g + cScreen.b ) / 3;

cMood = lerp(0, cMood, saturate(fLum * 2.0));
cMood = lerp(cMood, 1, saturate(fLum - 0.5) * 2.0);
float4 final = lerp(cScreen, cMood, saturate(fLum * fRatio));
return final;
}
Post processing in_color
Post processing in_color
Post processing in_color
Post processing in_color

Más contenido relacionado

La actualidad más candente

Unity Surface Shader for Artist 02
Unity Surface Shader for Artist 02Unity Surface Shader for Artist 02
Unity Surface Shader for Artist 02SangYun Yi
 
Unity Surface Shader for Artist 03
Unity Surface Shader for Artist 03Unity Surface Shader for Artist 03
Unity Surface Shader for Artist 03SangYun Yi
 
니시카와젠지의 3 d 게임 팬을 위한 ps4
니시카와젠지의 3 d 게임 팬을 위한 ps4니시카와젠지의 3 d 게임 팬을 위한 ps4
니시카와젠지의 3 d 게임 팬을 위한 ps4민웅 이
 
[0107 박민근] 쉽게 배우는 hdr과 톤맵핑
[0107 박민근] 쉽게 배우는 hdr과 톤맵핑[0107 박민근] 쉽게 배우는 hdr과 톤맵핑
[0107 박민근] 쉽게 배우는 hdr과 톤맵핑MinGeun Park
 
[Ndc12] 누구나 알기쉬운 hdr과 톤맵핑 박민근
[Ndc12] 누구나 알기쉬운 hdr과 톤맵핑 박민근[Ndc12] 누구나 알기쉬운 hdr과 톤맵핑 박민근
[Ndc12] 누구나 알기쉬운 hdr과 톤맵핑 박민근MinGeun Park
 
[ShaderX5] 4.4 Edge Masking and Per-Texel Depth Extent Propagation For Comput...
[ShaderX5] 4.4 Edge Masking and Per-Texel Depth Extent Propagation For Comput...[ShaderX5] 4.4 Edge Masking and Per-Texel Depth Extent Propagation For Comput...
[ShaderX5] 4.4 Edge Masking and Per-Texel Depth Extent Propagation For Comput...종빈 오
 
Game Visual Art Technologies
Game Visual Art TechnologiesGame Visual Art Technologies
Game Visual Art TechnologiesSangYun Yi
 
언차티드4 테크아트 파트1 톤맵핑&색보정
언차티드4 테크아트 파트1 톤맵핑&색보정언차티드4 테크아트 파트1 톤맵핑&색보정
언차티드4 테크아트 파트1 톤맵핑&색보정Dae Hyek KIM
 
Unity Surface Shader for Artist 04
Unity Surface Shader for Artist 04Unity Surface Shader for Artist 04
Unity Surface Shader for Artist 04SangYun Yi
 
[박민근] 3 d렌더링 옵티마이징_2
[박민근] 3 d렌더링 옵티마이징_2[박민근] 3 d렌더링 옵티마이징_2
[박민근] 3 d렌더링 옵티마이징_2MinGeun Park
 
[shaderx6] 3.7 Robust Order-Independent Transparency via Reverse Depth Peelin...
[shaderx6] 3.7 Robust Order-Independent Transparency via Reverse Depth Peelin...[shaderx6] 3.7 Robust Order-Independent Transparency via Reverse Depth Peelin...
[shaderx6] 3.7 Robust Order-Independent Transparency via Reverse Depth Peelin...종빈 오
 
[박민근] 3 d렌더링 옵티마이징_3 공간분할
[박민근] 3 d렌더링 옵티마이징_3 공간분할[박민근] 3 d렌더링 옵티마이징_3 공간분할
[박민근] 3 d렌더링 옵티마이징_3 공간분할MinGeun Park
 
Ndc2010 전형규 마비노기2 캐릭터 렌더링 기술
Ndc2010 전형규   마비노기2 캐릭터 렌더링 기술Ndc2010 전형규   마비노기2 캐릭터 렌더링 기술
Ndc2010 전형규 마비노기2 캐릭터 렌더링 기술henjeon
 
Ndc17 - 차세대 게임이펙트를 위해 알야아할 기법들
Ndc17 - 차세대 게임이펙트를 위해 알야아할 기법들Ndc17 - 차세대 게임이펙트를 위해 알야아할 기법들
Ndc17 - 차세대 게임이펙트를 위해 알야아할 기법들Dae Hyek KIM
 
[KGC2014] 울프나이츠 엔진 프로그래밍 기록
[KGC2014] 울프나이츠 엔진 프로그래밍 기록 [KGC2014] 울프나이츠 엔진 프로그래밍 기록
[KGC2014] 울프나이츠 엔진 프로그래밍 기록 JiUng Choi
 
Gamma and linear color-space
Gamma and linear color-spaceGamma and linear color-space
Gamma and linear color-space민웅 이
 
SGL : 소프트웨어 3D 렌더링 엔진
SGL : 소프트웨어 3D 렌더링 엔진SGL : 소프트웨어 3D 렌더링 엔진
SGL : 소프트웨어 3D 렌더링 엔진SUNGCHEOL KIM
 

La actualidad más candente (20)

Unity Surface Shader for Artist 02
Unity Surface Shader for Artist 02Unity Surface Shader for Artist 02
Unity Surface Shader for Artist 02
 
Unity Surface Shader for Artist 03
Unity Surface Shader for Artist 03Unity Surface Shader for Artist 03
Unity Surface Shader for Artist 03
 
니시카와젠지의 3 d 게임 팬을 위한 ps4
니시카와젠지의 3 d 게임 팬을 위한 ps4니시카와젠지의 3 d 게임 팬을 위한 ps4
니시카와젠지의 3 d 게임 팬을 위한 ps4
 
Motion blur
Motion blurMotion blur
Motion blur
 
[0107 박민근] 쉽게 배우는 hdr과 톤맵핑
[0107 박민근] 쉽게 배우는 hdr과 톤맵핑[0107 박민근] 쉽게 배우는 hdr과 톤맵핑
[0107 박민근] 쉽게 배우는 hdr과 톤맵핑
 
[Ndc12] 누구나 알기쉬운 hdr과 톤맵핑 박민근
[Ndc12] 누구나 알기쉬운 hdr과 톤맵핑 박민근[Ndc12] 누구나 알기쉬운 hdr과 톤맵핑 박민근
[Ndc12] 누구나 알기쉬운 hdr과 톤맵핑 박민근
 
[ShaderX5] 4.4 Edge Masking and Per-Texel Depth Extent Propagation For Comput...
[ShaderX5] 4.4 Edge Masking and Per-Texel Depth Extent Propagation For Comput...[ShaderX5] 4.4 Edge Masking and Per-Texel Depth Extent Propagation For Comput...
[ShaderX5] 4.4 Edge Masking and Per-Texel Depth Extent Propagation For Comput...
 
Game Visual Art Technologies
Game Visual Art TechnologiesGame Visual Art Technologies
Game Visual Art Technologies
 
언차티드4 테크아트 파트1 톤맵핑&색보정
언차티드4 테크아트 파트1 톤맵핑&색보정언차티드4 테크아트 파트1 톤맵핑&색보정
언차티드4 테크아트 파트1 톤맵핑&색보정
 
Unity Surface Shader for Artist 04
Unity Surface Shader for Artist 04Unity Surface Shader for Artist 04
Unity Surface Shader for Artist 04
 
[박민근] 3 d렌더링 옵티마이징_2
[박민근] 3 d렌더링 옵티마이징_2[박민근] 3 d렌더링 옵티마이징_2
[박민근] 3 d렌더링 옵티마이징_2
 
[shaderx6] 3.7 Robust Order-Independent Transparency via Reverse Depth Peelin...
[shaderx6] 3.7 Robust Order-Independent Transparency via Reverse Depth Peelin...[shaderx6] 3.7 Robust Order-Independent Transparency via Reverse Depth Peelin...
[shaderx6] 3.7 Robust Order-Independent Transparency via Reverse Depth Peelin...
 
[박민근] 3 d렌더링 옵티마이징_3 공간분할
[박민근] 3 d렌더링 옵티마이징_3 공간분할[박민근] 3 d렌더링 옵티마이징_3 공간분할
[박민근] 3 d렌더링 옵티마이징_3 공간분할
 
Ndc2010 전형규 마비노기2 캐릭터 렌더링 기술
Ndc2010 전형규   마비노기2 캐릭터 렌더링 기술Ndc2010 전형규   마비노기2 캐릭터 렌더링 기술
Ndc2010 전형규 마비노기2 캐릭터 렌더링 기술
 
Ndc17 - 차세대 게임이펙트를 위해 알야아할 기법들
Ndc17 - 차세대 게임이펙트를 위해 알야아할 기법들Ndc17 - 차세대 게임이펙트를 위해 알야아할 기법들
Ndc17 - 차세대 게임이펙트를 위해 알야아할 기법들
 
D2 Hdr
D2 HdrD2 Hdr
D2 Hdr
 
[KGC2014] 울프나이츠 엔진 프로그래밍 기록
[KGC2014] 울프나이츠 엔진 프로그래밍 기록 [KGC2014] 울프나이츠 엔진 프로그래밍 기록
[KGC2014] 울프나이츠 엔진 프로그래밍 기록
 
Modern gpu optimize
Modern gpu optimizeModern gpu optimize
Modern gpu optimize
 
Gamma and linear color-space
Gamma and linear color-spaceGamma and linear color-space
Gamma and linear color-space
 
SGL : 소프트웨어 3D 렌더링 엔진
SGL : 소프트웨어 3D 렌더링 엔진SGL : 소프트웨어 3D 렌더링 엔진
SGL : 소프트웨어 3D 렌더링 엔진
 

Destacado

Compute shader DX11
Compute shader DX11Compute shader DX11
Compute shader DX11민웅 이
 
Cheap realisticskinshading kor
Cheap realisticskinshading korCheap realisticskinshading kor
Cheap realisticskinshading kor민웅 이
 
(101.08.15日局務會議)2013臺南百花祭先期籌畫報告 2
(101.08.15日局務會議)2013臺南百花祭先期籌畫報告 2(101.08.15日局務會議)2013臺南百花祭先期籌畫報告 2
(101.08.15日局務會議)2013臺南百花祭先期籌畫報告 2gongwujugongwuju
 
工務局100年度追加預算及101年度預算工作項目及工作內容業務報告 100.11.25 2
工務局100年度追加預算及101年度預算工作項目及工作內容業務報告 100.11.25 2工務局100年度追加預算及101年度預算工作項目及工作內容業務報告 100.11.25 2
工務局100年度追加預算及101年度預算工作項目及工作內容業務報告 100.11.25 2gongwujugongwuju
 
使用管理科業務報告 1102
使用管理科業務報告 1102使用管理科業務報告 1102
使用管理科業務報告 1102gongwujugongwuju
 
ภูมิภาคชายฝั่ง
ภูมิภาคชายฝั่งภูมิภาคชายฝั่ง
ภูมิภาคชายฝั่งjumjaP
 
NTU & NTUST Tangible Interaction Design Project Proposal 1
NTU & NTUST Tangible Interaction Design Project Proposal 1NTU & NTUST Tangible Interaction Design Project Proposal 1
NTU & NTUST Tangible Interaction Design Project Proposal 1Han-Wei Liao
 
第47次局務會議簡報1123(簡版)
第47次局務會議簡報1123(簡版)第47次局務會議簡報1123(簡版)
第47次局務會議簡報1123(簡版)gongwujugongwuju
 
Prezentácia - Študentská spoločnosť STROM (SOŠ hotelových služieb a obchodu, ...
Prezentácia - Študentská spoločnosť STROM (SOŠ hotelových služieb a obchodu, ...Prezentácia - Študentská spoločnosť STROM (SOŠ hotelových služieb a obchodu, ...
Prezentácia - Študentská spoločnosť STROM (SOŠ hotelových služieb a obchodu, ...Lenka Križanová
 
Lecoconut pitch
Lecoconut pitchLecoconut pitch
Lecoconut pitchjjcarlsen
 
0802局務會議報告--使管
0802局務會議報告--使管0802局務會議報告--使管
0802局務會議報告--使管gongwujugongwuju
 
2012南瀛綠都心迎春花卉展
2012南瀛綠都心迎春花卉展2012南瀛綠都心迎春花卉展
2012南瀛綠都心迎春花卉展gongwujugongwuju
 
局務會議業務報告 養護工程二科530
局務會議業務報告 養護工程二科530局務會議業務報告 養護工程二科530
局務會議業務報告 養護工程二科530gongwujugongwuju
 
101工務局記者會(0323)
101工務局記者會(0323)101工務局記者會(0323)
101工務局記者會(0323)gongwujugongwuju
 
Ml seminar ppt 2014
Ml seminar ppt 2014Ml seminar ppt 2014
Ml seminar ppt 2014nurulhuda41
 
100.10.05 公園一科 科務報告
100.10.05 公園一科 科務報告100.10.05 公園一科 科務報告
100.10.05 公園一科 科務報告gongwujugongwuju
 
Who Goes to Hell? Hitler? Atheists?
Who Goes to Hell? Hitler? Atheists?Who Goes to Hell? Hitler? Atheists?
Who Goes to Hell? Hitler? Atheists?SwordSharp Studios
 
局務會議業務報告 養護工程二科101.2.1
局務會議業務報告 養護工程二科101.2.1局務會議業務報告 養護工程二科101.2.1
局務會議業務報告 養護工程二科101.2.1gongwujugongwuju
 
不違背職務行賄罪簡介100.08.26
不違背職務行賄罪簡介100.08.26不違背職務行賄罪簡介100.08.26
不違背職務行賄罪簡介100.08.26gongwujugongwuju
 

Destacado (20)

Compute shader DX11
Compute shader DX11Compute shader DX11
Compute shader DX11
 
Cheap realisticskinshading kor
Cheap realisticskinshading korCheap realisticskinshading kor
Cheap realisticskinshading kor
 
(101.08.15日局務會議)2013臺南百花祭先期籌畫報告 2
(101.08.15日局務會議)2013臺南百花祭先期籌畫報告 2(101.08.15日局務會議)2013臺南百花祭先期籌畫報告 2
(101.08.15日局務會議)2013臺南百花祭先期籌畫報告 2
 
工務局100年度追加預算及101年度預算工作項目及工作內容業務報告 100.11.25 2
工務局100年度追加預算及101年度預算工作項目及工作內容業務報告 100.11.25 2工務局100年度追加預算及101年度預算工作項目及工作內容業務報告 100.11.25 2
工務局100年度追加預算及101年度預算工作項目及工作內容業務報告 100.11.25 2
 
使用管理科業務報告 1102
使用管理科業務報告 1102使用管理科業務報告 1102
使用管理科業務報告 1102
 
ภูมิภาคชายฝั่ง
ภูมิภาคชายฝั่งภูมิภาคชายฝั่ง
ภูมิภาคชายฝั่ง
 
NTU & NTUST Tangible Interaction Design Project Proposal 1
NTU & NTUST Tangible Interaction Design Project Proposal 1NTU & NTUST Tangible Interaction Design Project Proposal 1
NTU & NTUST Tangible Interaction Design Project Proposal 1
 
第47次局務會議簡報1123(簡版)
第47次局務會議簡報1123(簡版)第47次局務會議簡報1123(簡版)
第47次局務會議簡報1123(簡版)
 
Prezentácia - Študentská spoločnosť STROM (SOŠ hotelových služieb a obchodu, ...
Prezentácia - Študentská spoločnosť STROM (SOŠ hotelových služieb a obchodu, ...Prezentácia - Študentská spoločnosť STROM (SOŠ hotelových služieb a obchodu, ...
Prezentácia - Študentská spoločnosť STROM (SOŠ hotelových služieb a obchodu, ...
 
Lecoconut pitch
Lecoconut pitchLecoconut pitch
Lecoconut pitch
 
0802局務會議報告--使管
0802局務會議報告--使管0802局務會議報告--使管
0802局務會議報告--使管
 
2012南瀛綠都心迎春花卉展
2012南瀛綠都心迎春花卉展2012南瀛綠都心迎春花卉展
2012南瀛綠都心迎春花卉展
 
局務會議業務報告 養護工程二科530
局務會議業務報告 養護工程二科530局務會議業務報告 養護工程二科530
局務會議業務報告 養護工程二科530
 
101工務局記者會(0323)
101工務局記者會(0323)101工務局記者會(0323)
101工務局記者會(0323)
 
Ml seminar ppt 2014
Ml seminar ppt 2014Ml seminar ppt 2014
Ml seminar ppt 2014
 
100.10.05 公園一科 科務報告
100.10.05 公園一科 科務報告100.10.05 公園一科 科務報告
100.10.05 公園一科 科務報告
 
Who Goes to Hell? Hitler? Atheists?
Who Goes to Hell? Hitler? Atheists?Who Goes to Hell? Hitler? Atheists?
Who Goes to Hell? Hitler? Atheists?
 
局務會議業務報告 養護工程二科101.2.1
局務會議業務報告 養護工程二科101.2.1局務會議業務報告 養護工程二科101.2.1
局務會議業務報告 養護工程二科101.2.1
 
不違背職務行賄罪簡介100.08.26
不違背職務行賄罪簡介100.08.26不違背職務行賄罪簡介100.08.26
不違背職務行賄罪簡介100.08.26
 
1010606
10106061010606
1010606
 

Similar a Post processing in_color

[Shader study] Color control (2014.05.12)
[Shader study] Color control (2014.05.12)[Shader study] Color control (2014.05.12)
[Shader study] Color control (2014.05.12)해강
 
[0312 조진현] good bye dx9
[0312 조진현] good bye dx9[0312 조진현] good bye dx9
[0312 조진현] good bye dx9진현 조
 
D2 Depth of field
D2 Depth of fieldD2 Depth of field
D2 Depth of fieldYoupyo Choi
 
Reflective Shadow Maps
Reflective Shadow MapsReflective Shadow Maps
Reflective Shadow MapsBongseok Cho
 
Implements Cascaded Shadow Maps with using Texture Array
Implements Cascaded Shadow Maps with using Texture ArrayImplements Cascaded Shadow Maps with using Texture Array
Implements Cascaded Shadow Maps with using Texture ArrayYEONG-CHEON YOU
 
[IGC2018] 퍼니파우 최재영 - 감성을 위한 개발요소
[IGC2018] 퍼니파우 최재영 - 감성을 위한 개발요소[IGC2018] 퍼니파우 최재영 - 감성을 위한 개발요소
[IGC2018] 퍼니파우 최재영 - 감성을 위한 개발요소강 민우
 
NDC11_슈퍼클래스
NDC11_슈퍼클래스NDC11_슈퍼클래스
NDC11_슈퍼클래스noerror
 

Similar a Post processing in_color (11)

[Shader study] Color control (2014.05.12)
[Shader study] Color control (2014.05.12)[Shader study] Color control (2014.05.12)
[Shader study] Color control (2014.05.12)
 
[0312 조진현] good bye dx9
[0312 조진현] good bye dx9[0312 조진현] good bye dx9
[0312 조진현] good bye dx9
 
D2 Depth of field
D2 Depth of fieldD2 Depth of field
D2 Depth of field
 
Ndc11 이창희_hdr
Ndc11 이창희_hdrNdc11 이창희_hdr
Ndc11 이창희_hdr
 
Volumetric Fog
Volumetric FogVolumetric Fog
Volumetric Fog
 
Reflective Shadow Maps
Reflective Shadow MapsReflective Shadow Maps
Reflective Shadow Maps
 
Uncharted4 part1
Uncharted4 part1Uncharted4 part1
Uncharted4 part1
 
Color Control
Color ControlColor Control
Color Control
 
Implements Cascaded Shadow Maps with using Texture Array
Implements Cascaded Shadow Maps with using Texture ArrayImplements Cascaded Shadow Maps with using Texture Array
Implements Cascaded Shadow Maps with using Texture Array
 
[IGC2018] 퍼니파우 최재영 - 감성을 위한 개발요소
[IGC2018] 퍼니파우 최재영 - 감성을 위한 개발요소[IGC2018] 퍼니파우 최재영 - 감성을 위한 개발요소
[IGC2018] 퍼니파우 최재영 - 감성을 위한 개발요소
 
NDC11_슈퍼클래스
NDC11_슈퍼클래스NDC11_슈퍼클래스
NDC11_슈퍼클래스
 

Más de 민웅 이

Siggraph15 A Novel Sampling Algorithm for Fast and Stable Real-Time Volume Re...
Siggraph15 A Novel Sampling Algorithm for Fast and Stable Real-Time Volume Re...Siggraph15 A Novel Sampling Algorithm for Fast and Stable Real-Time Volume Re...
Siggraph15 A Novel Sampling Algorithm for Fast and Stable Real-Time Volume Re...민웅 이
 
PowerVR Low Level GLSL Optimisation
PowerVR Low Level GLSL Optimisation PowerVR Low Level GLSL Optimisation
PowerVR Low Level GLSL Optimisation 민웅 이
 
제노블레이도 2 ray marching을사용한 구름 표현
제노블레이도 2 ray marching을사용한 구름 표현제노블레이도 2 ray marching을사용한 구름 표현
제노블레이도 2 ray marching을사용한 구름 표현민웅 이
 
자동 동적 3차원 입체시각
자동 동적 3차원 입체시각자동 동적 3차원 입체시각
자동 동적 3차원 입체시각민웅 이
 
「스퀘어 에닉스 오픈 컨퍼런스 2012」「Agni's Philosophy」비하인드 스토리
「스퀘어 에닉스 오픈 컨퍼런스 2012」「Agni's Philosophy」비하인드 스토리「스퀘어 에닉스 오픈 컨퍼런스 2012」「Agni's Philosophy」비하인드 스토리
「스퀘어 에닉스 오픈 컨퍼런스 2012」「Agni's Philosophy」비하인드 스토리민웅 이
 
Valient killzone ps4 lighting
Valient killzone ps4 lightingValient killzone ps4 lighting
Valient killzone ps4 lighting민웅 이
 
크게, 아름답게,빠르게, 일관되게 만들기: Just Cause 2 개발에서 배운 교훈들 (GPU Pro)
크게, 아름답게,빠르게, 일관되게 만들기: Just Cause 2 개발에서 배운 교훈들 (GPU Pro)크게, 아름답게,빠르게, 일관되게 만들기: Just Cause 2 개발에서 배운 교훈들 (GPU Pro)
크게, 아름답게,빠르게, 일관되게 만들기: Just Cause 2 개발에서 배운 교훈들 (GPU Pro)민웅 이
 
Microfacet brdf
Microfacet brdfMicrofacet brdf
Microfacet brdf민웅 이
 
니시카와젠지의 3 d게임 팬을 위한「gravity daze」그래픽스 강좌
니시카와젠지의 3 d게임 팬을 위한「gravity daze」그래픽스 강좌니시카와젠지의 3 d게임 팬을 위한「gravity daze」그래픽스 강좌
니시카와젠지의 3 d게임 팬을 위한「gravity daze」그래픽스 강좌민웅 이
 
Wrapped diffuse
Wrapped diffuseWrapped diffuse
Wrapped diffuse민웅 이
 
3D Engine Tools with C++/CLR
3D Engine Tools with C++/CLR3D Engine Tools with C++/CLR
3D Engine Tools with C++/CLR민웅 이
 
Deferred decal
Deferred decalDeferred decal
Deferred decal민웅 이
 

Más de 민웅 이 (13)

Siggraph15 A Novel Sampling Algorithm for Fast and Stable Real-Time Volume Re...
Siggraph15 A Novel Sampling Algorithm for Fast and Stable Real-Time Volume Re...Siggraph15 A Novel Sampling Algorithm for Fast and Stable Real-Time Volume Re...
Siggraph15 A Novel Sampling Algorithm for Fast and Stable Real-Time Volume Re...
 
PowerVR Low Level GLSL Optimisation
PowerVR Low Level GLSL Optimisation PowerVR Low Level GLSL Optimisation
PowerVR Low Level GLSL Optimisation
 
제노블레이도 2 ray marching을사용한 구름 표현
제노블레이도 2 ray marching을사용한 구름 표현제노블레이도 2 ray marching을사용한 구름 표현
제노블레이도 2 ray marching을사용한 구름 표현
 
자동 동적 3차원 입체시각
자동 동적 3차원 입체시각자동 동적 3차원 입체시각
자동 동적 3차원 입체시각
 
「스퀘어 에닉스 오픈 컨퍼런스 2012」「Agni's Philosophy」비하인드 스토리
「스퀘어 에닉스 오픈 컨퍼런스 2012」「Agni's Philosophy」비하인드 스토리「스퀘어 에닉스 오픈 컨퍼런스 2012」「Agni's Philosophy」비하인드 스토리
「스퀘어 에닉스 오픈 컨퍼런스 2012」「Agni's Philosophy」비하인드 스토리
 
Valient killzone ps4 lighting
Valient killzone ps4 lightingValient killzone ps4 lighting
Valient killzone ps4 lighting
 
크게, 아름답게,빠르게, 일관되게 만들기: Just Cause 2 개발에서 배운 교훈들 (GPU Pro)
크게, 아름답게,빠르게, 일관되게 만들기: Just Cause 2 개발에서 배운 교훈들 (GPU Pro)크게, 아름답게,빠르게, 일관되게 만들기: Just Cause 2 개발에서 배운 교훈들 (GPU Pro)
크게, 아름답게,빠르게, 일관되게 만들기: Just Cause 2 개발에서 배운 교훈들 (GPU Pro)
 
Microfacet brdf
Microfacet brdfMicrofacet brdf
Microfacet brdf
 
니시카와젠지의 3 d게임 팬을 위한「gravity daze」그래픽스 강좌
니시카와젠지의 3 d게임 팬을 위한「gravity daze」그래픽스 강좌니시카와젠지의 3 d게임 팬을 위한「gravity daze」그래픽스 강좌
니시카와젠지의 3 d게임 팬을 위한「gravity daze」그래픽스 강좌
 
Wrapped diffuse
Wrapped diffuseWrapped diffuse
Wrapped diffuse
 
3D Engine Tools with C++/CLR
3D Engine Tools with C++/CLR3D Engine Tools with C++/CLR
3D Engine Tools with C++/CLR
 
Ceh
CehCeh
Ceh
 
Deferred decal
Deferred decalDeferred decal
Deferred decal
 

Post processing in_color

  • 2. 목차  Flimic Tone Mapping  Color Grading  Image Sharpening  Color Correction  Photo Filter
  • 3. Flimic Tone Mapping  John Hable이 Unchated2 HDR Lighting 발표 문서에서 소개한 내용  Flim에서의 색상 Curve가 더 나은 결과를 보 여준다는 것에서 착안  밝아질수록은 Reinhard방식과 유사하게 타 들어가는것을 방지하고, 어두워 질수록 어 두운 영역이 더 어두워 지도록 만듬
  • 4. Flimic Tone Mapping A = Shoulder Strength B = Linear Strength C = Linear Angle D = Toe Strength E = Toe Numerator F = Toe Denominator Note: E/F = Toe Angle   John Hable의 Blog를 통해서, Fixed 된 버전이라고 소개. Gamma 보정을 최종적으로 적용 (pow(x, 1/2.2))
  • 7. Color Grading 톤 매핑 (HDR to LDR 변형) 및 그에 따른 색 보정 (LDR color to color 변형) 기능을 포함 http://udn.epicgames.com/Three/ColorGradingKR.html http://ttmayrin.tistory.com/34 Color Grading by LookUpTexture (컬러 그레이딩 by LUT)
  • 8. Color Grading  기본 텍스쳐는 RGB값을 컨버팅한 UV좌표에 정확 히 자기의 Color를 가지고 있는 상태  텍스쳐를 16x16x16 3DTexture로 제작 사용하면 tex3D한방 으로 ColorGrading이 가능  LUT를 이용한 ColorGrading은 Post Effect로서의 색 보정 역할 뿐만 아니라 개별 사물이나 캐릭터에도 적용이 가능  Actor의 ShaderCode마지막에 LUT관련 함수만 적용해주 면 완성  추가 텍스쳐 제작없이도 LUT만 만들어 놓으면 다 양한 색의 사물이나 몬스터, 이펙트를 다량으로 생 성할 수 있음  포토샵 색조정은 어디까지나 한계가 있음
  • 9. Color Grading 기본 LUT 텍스쳐 256x16 16x16x16 3D 텍스쳐로 만들어서 사용 가능 1. ColorGrading을 적용할 게임장면을 캡쳐하여 포토샵에서 불러옴 2. 기본이 되는 LUT도 같이 불러옴
  • 10. 3. 포토샵의 여러 기능으로 화면을 마음껏 원하는 이미지로 편집 - 여기서 중요한 것은 불러온 LUT도 같이 바뀌어야한다는 점 4. 원하는 화면이미지에서 LUT를 따로 저장 GrayScale용 LUT
  • 11. 256x16 LUT일 경우 ShaderCode from Unreal3 float3 CalcLUT( sampler InLUT, float3 InColor ) { // requires a volume texture 16x16x16 unwrapped in a 2d texture 256x16 // can be optimized by using a volume texture float2 Offset = float2(0.5f / 256.0f, 0.5f / 16.0f); float Scale = 15.0f / 16.0f; // Also consider blur value in the blur buffer written by translucency float IntB = floor(InColor.b * 14.9999f) / 16.0f; float FracB = InColor.b * 15.0f - IntB * 16.0f; float U = IntB + InColor.r * Scale / 16.0f; float V = InColor.g * Scale; float3 RG0 = tex2D( InLUT, Offset + float2(U , V) ).rgb; float3 RG1 = tex2D( InLUT, Offset + float2(U + 1.0f / 16.0f, V) ).rgb; return lerp( RG0, RG1, FracB ); } 16x16x16 3D VolumeTexture로 제작된 경우 float3 CalcLUT( sampler InLUT, float3 InColor ) { return tex3D( InLUT, InColor * 15.f / 16.f + 0.5f / 16.f ).rgb; }
  • 12. Image Sharpening 이미지를 선명하게 하여 보정 Simply lerp between low-res blurred image with original image by a ratio bigger than 1 Sharp = lerp(blurred, orig, bigger than 1 ratio)
  • 13. vector rcpres; float4 lSharp(in float2 Tex : TEXCOORD) : COLOR0 { float4 inColor = tex2D(s0, Tex); float4 blur = inColor; blur += tex2D(s0, float2(Tex.x, Tex.y+rcpres.y)) * 0.25; blur += tex2D(s0, float2(Tex.x, Tex.y-rcpres.y)) * 0.25; blur += tex2D(s0, float2(Tex.x+rcpres.x, Tex.y)) * 0.25; blur += tex2D(s0, float2(Tex.x-rcpres.x, Tex.y)) * 0.25; blur += tex2D(s0, float2(Tex.x-rcpres.x, Tex.y+rcpres.y)) * 0.25; blur += tex2D(s0, float2(Tex.x-rcpres.x, Tex.y-rcpres.y)) * 0.25; blur += tex2D(s0, float2(Tex.x+rcpres.x, Tex.y+rcpres.y)) * 0.25; blur += tex2D(s0, float2(Tex.x+rcpres.x, Tex.y-rcpres.y)) * 0.25; blur /= 3; float4 final = lerp(blur,inColor, 3); return final; }
  • 14. Color Correction  Color range based on Euclidian distance  ColorRange = saturate(1 - length( src - col.xyz) );  색상보정은 CMYK 공간에서 수행  c = lerp( c, clamp(c + dst_c, -1, 1), ColorRange);  원본화면과 보정된 색상 화면을 조합  Orig =lerp( Orig, CMYKtoRGB( c), ColorRange);
  • 16. Photo Filter  칼라값을 이용하여 전체 이미지의 분위기를 바꿈  아티스트가 색을 지정  cMood = lerp(0, cMood, saturate( fLum * 2.0 ) );  cMood = lerp(cMood, 1, saturate( fLum - 0.5 ) * 2.0 );  최종 칼라는 휘도(luminance)와 사용자 비율(user ratio) 설정값으로 분위기 색값과 전체 이미지를 혼합  final= lerp(cScreen, cMood , saturate( fLum * fRatio));
  • 17. float fRatio = 0.25; float moodR = 0.5; float moodG = 0.4; float moodB = 0.25; //default is a mild orange float4 colorMood(in float2 Tex : TEXCOORD) : COLOR0 { float4 cScreen = tex2D(s0, Tex); float4 cMood = 1; cMood.r = moodR; cMood.g = moodG; cMood.b = moodB; float fLum = ( cScreen.r + cScreen.g + cScreen.b ) / 3; cMood = lerp(0, cMood, saturate(fLum * 2.0)); cMood = lerp(cMood, 1, saturate(fLum - 0.5) * 2.0); float4 final = lerp(cScreen, cMood, saturate(fLum * fRatio)); return final; }