Kasa Study(www.dev3d.net) 이창희(cagetu@softnette.com) 2010.10.31 High Dynamic Range Kasa Study(www.dev3d.net) 이창희(cagetu@softnette.com) 2010.10.31.

Slides:



Advertisements
Similar presentations
중원대학교 의료공학과 신 진솔 (WED). 영상의 밝기 & 명암 조절 영상의 감마보정 영상의 잡음 감소.
Advertisements

주제 – 식물에 자외 선차단제를 바르면 어떻게 될까 ? 주제선정이유 우리는 자외선 차단제를 바르면 타지 않는데 식물은 어떤 반응을 나타낼까 궁금해서.
컴퓨터와 인터넷.
재료수치해석 HW # 박재혁.
제 7 장 함수 사용을 통해 엑셀 정복하기.
Gamma와 Linear-Color-Space
사회적 비용&외부효과 이별희 최미니.
Excel 일차 강사 : 박영민.
J2ME Install 부산대학교 인공지능 연구실.
Windows Server 장. 사고를 대비한 데이터 백업.
How to export XFile Written by D.M.S.P.
PLISM 컴포넌트 설치 방법.
Communication and Information Systems Lab. 황재철
11장. 포인터 01_ 포인터의 기본 02_ 포인터와 Const.
Multimedia Programming 10: Point Processing 5
Error Detection and Correction
멀티미디어 시스템 (아날로그 이미지,신호를 디지털로 변환 방법) 이름 : 김대진 학번 :
iframe 사용하기 Chapter 3 Part 2
학습목표 학습목차 다른 홈페이지의 HTML 파일 코드를 보는 방법에 대해 알아봅니다.
Multimedia Programming 06: Point Processing 2
컴퓨터 프로그래밍 : 실습3 2장 데이터와 식.
Mother Theresa had this on her wall... 테레사 수녀의 방 벽 위에는 이런 글이 있었습니다...
Progress Seminar 선석규.
발명의 명칭 IR LED Auto Control 발명의 목적
`위대한 게임의 탄생’ 감상문 th UPnL Workshop 김재찬.
별의 밝기와 거리[2] 밝다고 가까운 별은 아니야! 빛의 밝기와 거리와의 관계 별의 밝기 결정.
(생각열기) 옷가게에서 옷을 살 때와 옥가게 밖으로 나와 서 옷을 볼 때 옷 색이 달라져 보이는 이유는?
주의할 점!!!! 1. 문자 쓸 때 문자 틀 글자 크기에 맞추기 2. 색 보정할 때 Colorize 체크하고 /
자바응용.
파이프라이닝.
7가지 방법 PowerPoint에서 공동 작업하는 다른 사용자와 함께 편집 작업 중인 사용자 보기
5-9. 전기 에너지가 편리한 이유는? 학습 주제 < 생각열기 >
뇌를 자극하는 Windows Server 2012 R2
TFT-LCD 구조 동작원리 응용분야.
Term Projects 다음에 주어진 2개중에서 한 개를 선택하여 문제를 해결하시오. 기한: 중간 보고서: 5/30 (5)
연산자 (Operator).
8장. spss statistics 20의 데이터 변환
Biomedical Instrumentation
인체 대 탐험 3D GAME ENGINE 게임 공학과 이성진.
3강. 컴퓨터와의 기본적인 소통수단 - I 연산자란? 컴퓨터와 소통하기 위한 다양한 방법들
9강. 클래스 실전 학사 관리 프로그램 만들기 프로그래밍이란 결국 데이터를 효율적으로 관리하기 위한 공구
2D 게임프로그래밍 프로젝트 스틱 파이터 Stick Fighter 박하은.
Progress Seminar 선석규.
알고리즘 알고리즘이란 무엇인가?.
헤드라인 헤드라인 헤드라인 헤드라인 헤드라인 헤드라인 헤드라인 헤드라인 헤드라인 헤드라인 헤드라인 헤드라인 텍스트 샘플 텍스트
(생각열기) 축구장의 전광판에 사용되는 LED에서 나오 는 빛의 3원색은 무엇인가?
Window, Viewport Window, Viewport.
인지활동을 병행한 운동훈련이 치매노인의 균형수행능력에 미치는 영향
물리 현상의 원리 TIME MACHINE.
에어 PHP 입문.
바넘효과 [Barnum effect] 사람들이 보편적으로 가지고 있는 성격이나 심리적 특징을 자신만의 특성으로 여기는 심리적 경향. 19세기 말 곡예단에서 사람들의 성격과 특징 등을 알아 내는 일을 하던 바넘(P.T. Barnum)에서 유래하였다. 1940년대 말 심리학자인.
Chapter 1 단위, 물리량, 벡터.
.Net Web Application 2007 컴퓨터공학실험(Ⅰ)
3장 JSP프로그래밍의 개요 이장에서 배울 내용 : JSP페이지의 기본적인 개요설명과 JSP페이지의 처리과정 그리고 웹 어플리케이션의 구조에 대해서 학습한다.
학습 주제 p 끓는점은 물질마다 다를까.
생체 신호의 실시간 디지털 처리 7조 홍윤호( )-1등
01. 분산 파일 시스템의 개요 네트워크에 분산된 파일을 사용자가 쉽게 접근하고 관리할 수 있게 해준다.
함수, 모듈.
이은오.
3.여러 가지 색.
상관계수.
컴퓨터공학과 손민정 Computer Graphics Lab 이승용 교수님
게임수학 제 8 장 고급 렌더링.
김덕용 게임 엔진론 Project 2차발표.
In-house Consultant Training
CCIT 네트워크 발표 정보보호학과 평문 사이트와 SSL 사이트, SSL strip과 데이터 변조를 이용한 로그인 취약점
Ch12. Deep Learning (Backpropagation)
Report #2 (기한: 3/16) 데이터 구조 과목의 수강생이 50명이라고 가정한다. 이 학생(학번은 2016????으로 표현됨)들의 중간 시험(0~100), 기말 시험(0~100) 성적을 성적 파일에 작성하라(프로그램을 통해서 또는 수작업으로). 성적 파일을 읽어들여서.
Cuk LED driver output current ripple calculation
꽃잎의 수로 피보나치 수열하기 장전초등학교 6학년 신찬유.
Presentation transcript:

Kasa Study(www.dev3d.net) 이창희(cagetu@softnette.com) 2010.10.31 High Dynamic Range Kasa Study(www.dev3d.net) 이창희(cagetu@softnette.com) 2010.10.31

HDR? High Dynamic Range의 약자 이미 현시대 게임에서는 보편화된 기능 특별히 설명할 말 없음… ㅌㅌㅌ (앞으로 나오는 것들도 설명은 간략히 넘어가겠음)

HDR? 왜 HDR을 발표할까? 널리 사용되고 있지만, 결과가 좋게 나오게 하기란 생각보다 쉬운 작업이 아님. 생각보다 많은 작업자들은 DirectX Sample에 의존적인 듯 구현에 대한 설명이 너무 부족함 GDC, SIGGRAPH, CEDEC에서는 아직도 HDR이 언급된 발표가 이어지고 있음. Uncharted2, tri-Ace 사의 발표 등… 우리가 게임에서 구현하는 그래픽은 Realistic이 아니라, Photo-Realistic 한 것!!!!! 결국 HDR은 그 시작!!! 결국 좋은 결과물을 얻기 위해서는 HDR 과정에 대한 전반적은 이해가 필요함

HDR 작업 목록

HDR Data HDR을 처리하기 위해서는 HDR 데이터가 필요. 즉, 0~1 사이 이상으로 정보가 기록되어 있어야 함. 간단하게 Floating Texture를 사용 A16FR16FG16GB16F HDR Data 압축하기 LogLUV, RGBE

HDR Data 압축 LogLUV Playstation3에서는 Floating Texture를 사용할 수 없기 때문에, HDR을 표현하기 위한 압축 기술이 연구되었고, 그 중 가장 보편적으로 사용되는 방법이 LogLUV 압축임 Heavenly Sword에서 사용하기 시작 http://www.anyhere.com/gward/papers/jgtpap1.pdf 그냥 Color를 압축해서, 복원하는 식이라면, 그렇게 눈에 띄는 결함이 없음. 하지만, Luminance를 구하는 과정에서 손실이 많아서, 상대적으로 디테일이 많이 떨어짐.

Gamma Correction HDR 처리의 linear space에 color 정보가 되어 있다고 가정한다.

Gamma Correction (Cont’) Post-Processing을 작업할 때에는 처음 텍셀을 sRGB->linear 변환을 해주고, 마지막 Step의 마지막 Pass에서 linear->sRGB 변환을 해줘야 한다.

Linear-Space Lighting: Conclusion “Drake! You must believe in linear-space lighting!” [Uncharted 2 : HDR Lighting]에서 발췌 9 9 9 9 9 9

Tone Mapping Luminance 구하기 Tone Mapping Operator HDR 영역을 LDR 영역으로 표현하기 위한 방법 평균 Luminance를 중심으로 0~1 사이의 값으로 매핑. 즉, 우리가 해야 할 것은 평균 Luminance를 구하고, Luminance 구하기 Luminance를 중심으로 0~1 사이로 Tone Mapping Operator

Luminance 구하기 Luminance는 빛의 밝기를 의미 위의 공식을 이용하여, 평균 Luminance를 구함. 최종 결과는 1x1 Luminance 장면의 평균 밝기는 각 픽셀의 밝기를 구하는 것부터 출발 각 픽셀의 밝기 구하기?

RGB -> Luminance RGB를 Luminance를 변환 Luminance 상수를 이용하여, Luminance 계산 LUMINANCE = float3(0.2125f, 0.7154f, 0.0721f); dot(rgb, LUMINANCE); Luminance를 다시 RGB로 전환 불가 CIE Yxy Encoding을 이용하여, 압축 RGB -> CIE XYZ -> CIE Yxy (Y값이 Luminance) 이후 Tone mapping을 통한 luminance의 값의 변화를 가지고 다시 RGB로 변환이 가능

Luminance Adapation 광적응 효과 시간에 따라, 갱신할 장면의 luminance로 변경 갑자기 어두운 곳에서 밝은 곳으로 나왔다거나, 밝은 곳에서 어두운 곳으로 들어갔을 때의 서서히 눈이 적응하는 효과 시간에 따라, 갱신할 장면의 luminance로 변경 Luminance History Function 급작스러운 변화를 막기 위해서, 이전 16프레임의 Luminance값을 저장하고 있다가, 그 값과 비교하여, 변경되었다고 판단될 경우에만 luminance를 갱신 16Frame의 Lumiance를 저장하기 위해서 4x4 렌더타겟이 필요

Middle Grey 날씨의 변화나 시간에 따라, 이 값이 변화될 필요가 있다. 현재 장면의 Luminance가 0.36이고, middle bright value가 0.18이라고 한다면, 최종 이미지의 luminance value는 원본 이미지의 절반의 값의 범위가 되는 것이다. (노출 정도라고 봐도 된다.) 날씨의 변화나 시간에 따라, 이 값이 변화될 필요가 있다. Middle grey는 일반적으로 0.18 자동으로 구할 수도 있다. (Auto Exposure)

Tone Mapping Operator 실제 LDR로 변환하는 과정을 처리하는 연산자 어떤 톤 매핑 연산을 사용했느냐에 따라 느낌이 다름 Reinhard가 발표한 공식에서 발전하기 시작 Star Ocean 4 에서는 공식이 아니라, 실제 카메라의 C-MOS 정보 등을 기초로 하여, Flim 스럽게 만들기도 함. Uncharted2에서 Flimic Tonemapping을 언급하면서 화두!! Tone Mapping Operator Reinhard (+Modified) Flimic Uncharted2

Reinhard Reinhard Reinhard(Modified) LumScaled : 이전에 구한 노출 정도 Reinhard(Modified) 흰색의 경우, 매우 밝게 조절된 형태로 원할 수도 있기 때문에, 새로운 공식이 등장 흰색은 LDR 이미지를 톤매핑할 때, 명암의 감소를 최소화 한다. 이는 White Clamping이라고 부르기도 한다. “Interactive Time-Dependent Tone Mapping Using Programmable Graphics Hardware” 최종 색상을 결정할 때, 아래와 같이 Saturation을 적용 LumCompressed * pow(color / pixelLuminance, LUMINANCE_SATURATION);

Flimic John Hable이 Unchated2 HDR Lighting 발표 문서에서 소개한 내용 Flim에서의 색상 Curve가 더 나은 결과를 보여준다는 것에서 착안 Reinhard와 비교 Reinhard가 상대적으로 Grayish

Flimic Tone Mapping x = max(0, LinearColor-0.004); pow(x,1/2.2) 가 포함되어 있다. 즉, Gamma Correction을 위해, Albedo 텍스쳐를 읽을 때, pow(x, 2.2)를 해주었다면, ‏모니터로 보낼 때, pow(x, 1/2.2)를 해주어야 하 지만, 이 공식에는 Bake되어 있기 때문에, 별도의 과정이 필요없다. 하지만, 일반적으로 마지막 패스에서 pow(x, 1/2.2)를 해주기 때 문에, 이 공식을 사용할 경우, 결과에 pow(1, 2.2)를 해주어서, 최 종 패스에서 처리하는 결과와 맞춰주어야 한다. x = max(0, LinearColor-0.004); GammaColor = (x*(6.2*x+0.5))/(x*(6.2*x+1.7)+0.06); [Uncharted 2 : HDR Lighting]에서 발췌

Uncharted 2 John Hable의 Blog를 통해서, Fixed 된 버전이라고 소개. Gamma 보정을 최종적으로 적용해주어야 한다. (pow(x, 1/2.2))

Glare(Bloom) 하지만…… Bright Pass 특별히 복잡한 작업 공정이 필요하지 않음 Tone Mapping을 그대로 적용 Threshold를 적절히 조절 특별히 복잡한 작업 공정이 필요하지 않음 하지만……

Glare (Cont’) 실제 화상에서는 어지간히 강한 빛이 아니면, 큰 Glare가 나오지 않는다. 결과적으로 렌더링 화상의 Dynamic Range(DR)가 본래의 DR에 비해 충분하지않기 때문에, Threshold 값을 낮춤으로서 강제로 Glare를 만들기를 시도한다. 그 결과, Diffuse에서도 부자연스럽게 Glare가 나오는 현상과 색상 정보다 전부 타들어간 듯이 날아가 버리는 현상이 자주 발생한다. 뭔가 저렴해 보인다!!!!!! 즉, 적합한 HDR 연산을 통한 처리와 물리적인 라이팅이 뒷받침 되지 않는다면, 이런 문제가 발생하기 쉽다.

Tone Mapping Operation Pipeline Tone Mapping Operation

Pipeline(Cont’) 톤매핑을 선행해서, 이미 고휘도 부분을 추출한 상태이기 때문에, 순서가 변경되어도 특별히 부자연스러운 부분이 없다. 오히려, 연산량을 줄일 수 있는 장점이 있을 것으로 보임

기타 효과 Vignette Blue Shift Grain Filter 카메라 렌즈의 구경에 따라 사진의 테두리 쪽으로 약간의 노이즈가 생기는 현상. 특히, 오래된 사진기일 수록 많이 발생 Blue Shift 매우 낮은 밝기가 되어, 작은 수의 간상체(rod)가 남게되고, 추상체(cone)이 주 광자 수용체가 되게 되면, 파란색 색조로 색상 전환이 이루어 진다. Grain Filter 어두운 곳으로 가면, 눈에 들어오는 광자가 적어지는 까닭에 노이즈가 심하고 전반적으로 디테일이 떨어지는 현상도 발생한다. 어두운 곳에서 사진을 찍으면, 화면이 깨진 것 같은 느낌!

Channel-Based Color Correction Levels Photoshop에서의 Levels command Gamma, contrast, 전체 이미지의 dynamic range를 수정하거나 독립적으로 채널 색상에 대한 속성들을 조정할 수 있다. Curves 생략

결론 실제 작업해보면, 위의 내용들이 대단히 쉽지 않은 과정임을 알 수 있음. 공부해둬야 할 것도 한 트럭!! 하지만, 향후 렌더링 프로세스 전반에 영향을 주는 가장 기본적이고 중요한 작업 과정 이것은 끝이 아닌 시작!! Tone Mapping Operator의 경우, 어떤 것이 좋은 지는 결과를 보고 각자 판단하는 것이 좋을 듯. 파이프라인이 길어서, 컨트롤할 Parameter들이 많으니, 비교적 많은 테스트가 필요. Parameter들에 대한 결과가 꽤나 민감함!!!

참고자료 “CrazyXIII : HDR”를 참고하시오!!! DirectX Sample “HDR Lighting” Kasa 이전 발표 – “Conversion Color Space & Filtering” - 이창희

Q & A

다음 편 예고 “Physically Based Shading Model” SIGGRAPH10에서 발표된 내용 이전부터 이야기는 있었던 듯(By Tri-ace 社) 사실 HDR에 대한 정리 작업은 이 과정을 잘하기 위한 선행 작업이었음. Brief Glare를 조절하기 위해서, Threshold 값에만 의존하십니까? Threshold를 만지면, 전체 화면이 뭉개진다!!!! 이 문제는 물체가 가지는 dynamic range의 값 자체가 잘못 되어서 그런거임… 그럼 잘하려면?