SlideShare une entreprise Scribd logo
1  sur  198
구세대 엔진,
신데렐라 만들기
비교적 구 기술 게임엔진 렌더링 시스템 생명 연장
NDC 2013
고경석
버티고우 게임즈, 엔진팀
만능종합
예술인을 지향
업계 경력
㈜ 엔오지 엔터테인먼트
바이탈 디바이스 (RTS) 개발
플라스틱스 온라인 개발(MMORPG)
㈜ 아이서프
팀레볼루션 개발(MORacing)
㈜ CJ인터넷 개발 2실
엔짂 연구 개발
쿵야 어드벤쳐 개발
SK C&C E-World Project TFT
㈜ T3엔터테인먼트
워크라이 개발
㈜ JCE 엔터테인먼트 젂략기획실
㈜ 이누카 인터렉티브
㈜ 버티고우 게임즈 젂략기술실
최재혁
NEXON Korea, 개발 4본부
HIGH
QUALITY
RENDERING
에 관심이 많은 사람
이 내용은
엔진을 선택하는 것이 아니라
선택되어진 구세대 엔진을
어떻게, 차세대 신규게임에
적용시키는가에 대한 문제점의 고민입니다
실제 ㈜ 버티고우 게임즈에서 사용하고
있는 GameBryo 2.0~2.6에서의 사례로
구세대 엔진에서의 차세대 그래픽스 기술
을 접목시키는 방법을 살펴보면서
여러분이 가지고 계신 구세대 엔진 혹은
코스트(자금,인력) 때문에
차세대 엔진의 구입이 어려운 힘든 상황에
미력하나마,
참고 자료가 되었으면 좋겠습니다
고경석
인디게임 만들면서
근사한 렌더링 하고 싶었는데,
방향을 찾지 못하는 많은 사람들에게
조금이나마 도움이 되고
작은 경험을 나누는 자리였으면..
발표자 최재혁씨의 개인생각
“흔한 게임브리오 엔진을 사용한 게임 스샷.JPG”
본 이미지는 무작위 검색에 의하여 특정게임의 홍보 및 다른 의도가 없음을 알려드
“게임브리오 2.0~2.6에서 차세대 게임 그래픽을”
일단,보고 시작하자
UGF 구현 영상
United Graphics FoundationKyoung Seok,Ko 2012~2013
본 영상은 필자의 지인들과 본인의 남는 시간을 활용해서 제작한 리소스를 가지고
엔진 다이렉트 영상입니다 리소스의 질은 떨어질 수 있으니 , 참고바랍니다
Light
Framework
Post Processing
Light |
중요한 조명 처리
|
컴퓨터 그래픽스에서 가장
중요한 것은 색이 아닌 빛
Diffuse Lighting | Ambient Lighting | Light Mapping
Light | |
추구하는 방향성
Diffuse Lighting | Ambient Lighting | Light Mapping
군더더기 없는 물리모델 기반 라이
구세대 엔진중 많은 특징들은 이쁜게 렌더링 하기 위해
Light를 Mesh나 Node에 덕지덕지 사용하는 경향이 있다.
= GI Methods
Light | |
Renderer를 설계할 때 중요한 문제 한 가지는
조명처리 방식을 결정하는 것
Diffuse Lighting | Ambient Lighting | Light Mapping
Forward VS Deferred
가장 무거운 연산이기도 하고..
게임 성격에 맞게 적합하다 판단한..
을 사용..
복잡한 Shading Model을 쓰고 있기도 하고..
Light
Framework
Post Processing
| Diffuse Lighting |
컴퓨터 그래픽스의 빛의 요소
Diffuse Lighting Process
- 3 Channel BRDFs Lighting
- Translucency Process
Ambient Lighting Process For Static Object
- HDR Directional Lightmaps
- Global SkyLight SH
Ambient Lighting Process For Dynamic Object
- Global SkyLight SH
- Point Clouds SH
Lighting ProcessDiffuse Lighting | Ambient Lighting | Light Mapping
| Light |
Lighting을 잘 받으려면?
Normal Map 개선Diffuse Lighting | Ambient Lighting | Light Mapping
| Light |
물체의 표면 관련 데이터가 중요
가장 중요한 부분이 Normal에 대한 데이
보통 Normal Map에는 노이즈가 있다.
2-Channel Normal Map
GPU친화적인 텍스처 압축을 하되,손실을 줄일 수 있는 방법
Call of Duty, Mass Effect, 언리얼 3시스템에서 사용
Radiosity Normal Map
SelfShadow가 가능한 NormalMap 통상 RNMs로 불린다.
Source엔진에서 처음 구현,Source엔진, 언리얼3에서 사용
Normal Map 개선 작업
보통 Normal Map에는
DXT1을 많이 쓰는데
DXT 포맷은 손실 압축이라서
노이즈가 많다.
노이즈 부터 제거하자
일반 이미지를 DXT로 압축하면
DXT 압축에 따른 결과
2-Channel Normal Map 구현
DXT는 하드웨어 가속을 받기 때문에 쓰긴 써야 되는
DXT가 Alpha, Green값이 덜 훼손되는 특징이 있다.
이 값들을 x, y에 저장하고 나머지 z값을 계산하여 z값 만들게 되면
원본 DXT보다 훨씬 깨끗한 Normal값을 뽑을 수 있다.
깔끔한 Normal
2 channel Normal Map Radiosity Normal Map
Radiosity Normal Map 비교
VALVE에서 자체 음영이 가능한 방법을 개선
렌더링 품질을 올리기 위해서는 반듯이 써야 한다. 이제는 일반적인 방법
하지만 라이트맵 3장은 너무 용량이 크다.개선방향 : [NDC 2012, 가성비 좋은 렊더링 10선, 버텍스 단위 3축 조명]
재질이나 라이팅이 밝아질수록
Normal이 사라지는 현상이 있었다.
Normal Map을 Scaling했다.
그래도 아직 모자른 감이 있었다
때때로 Normal값 강조를 위해
3.0f scale
Normal Map Scaling 결과
전통적인 조명 방식에서
다음세대 조명 방식이라 생각되는 BRDF
Lighting ModelsDiffuse Lighting | Ambient Lighting | Light Mapping
| Light |
Phong/Blinn Phong Model
Micro-facet BRDFs
Next Generation Lighting Model
예젂에는 느려서
사용 못하고 있었음
이젂에는 단지 빨리서 사용
BRDF Diffuse Lighting | Ambient Lighting | Light Mapping
| Light |
불투명한 물체에서의 반사율을
나타내는 다양한 기법
쉽게 말하면
표면에서 빛이 어떻게 반사
되는지를 나타내는 공식
BRDF란?
일단 깨끗함
48개 Lighting 모델 제공
표현하기 어려운
Material도 쉽게 가능
왜
Blinn-Phong BRDF
BRDF를 쓸까?
사실 이 복잡한 수식을
다 알 필요는 없고
F, G, D의 요소를
이해하고 걍 쓰면 된다.
정확한 수식이 아님..
Micro-facet 방정식
F
G
D
– 국소면 사이의 그림자, 마스킹의 영향
– 얼마나 오브젝트가 금속처럼 보일까
– 국소면의 Noraml 값 설정
Micro-facet 방정식
다양한 Lighting Model
가장 일반적으로 Diffuse 라이팅에
적용되는 공식은 Lambert 조명
Wrapped DiffuseDiffuse Lighting | Ambient Lighting | Light Mapping
| Light |
하지만 사용하다 보면 너무 어둡다.
Wrapped Diffuse
Team Fortress 2팀 에서 간단한 Diffuse 계산 대신 복잡한 Diffuse 제안
Image From Team Fortress2
음영이 많이 생기는 기존의 Lambert를 개선하기 위해 나온 것
Diffuse vs Wrapped Diffuse
TF2-Shading
GameBryo(Lambert) Wrapped Diffuse(factor 1.0)
다소 어두워 지는 경향이 있다.
Wrapped Diffuse(factor 1.0)
보완 1.5
구현
알려진 Specular만으로 표현 할 수 없는
재질이 많기 때문에 사용
Fresnel Diffuse Lighting | Ambient Lighting | Light Mapping
| Light |
보는 각도에 따라서
반사되는 재질이 달라진다.
그리고 모든 물체는 Fresnel을 가진다.
Crysis Fresnel 예제
반사체를 표현하는데 있어서 프레넬 함수를
사용하는 사실적인 표면의 표현이 가능
Crysis Fresnel 패널
Crysis
Diffuse Fresnel 지원
환경맵 Fresnel 지원
Fresnel MaskMap 지원
스펙큘러맵과 연동지원
(보다 자연스러운 결과를 연출가능)
구현범위
Translucency MaterialDiffuse Lighting | Ambient Lighting | Light Mapping
| Light |
일반적인 용어는 Sub Surface Scattering
빛이 오브젝트의 표면의 한 지점으로
투과되어 내부로 퍼져나간 후
다른 위치로 빠져나가는 현상
두께에 기반한 Sub Surface Scatterin
Translucency Material
두께를 고려한 Sub Surface Scattering
빛이 반투과 되는 피부나
식물의 입사귀, 양초같은 오브젝트 표현에 적당
어디에 사용?
Approximating Translucency for a Fast, Cheap
and Convincing Subsurface Scattering Look
경험상 괜찮은 구현 방법은
프로바이트2엔진에서 사용한 로컬 두께 맵을 이용하는 것
어떤걸 사용?
오브젝트의 노멀을 뒤집어 엠비언트 오클루젼
걸고 그것을 반전시키면 두께 맵이 나온다.
사람 얼굴로 치자면 코끝이나 귀 끝이 밝게 나오고
얼굴 중심으로 갈수록 어두워지는 두께맵을 얻을 수 있음
아티스트가 라이트맵을 굽는 것과 비슷하다
구현방법
MMO에서는 이 정도까지 쓰는 건
아직까지 좀 무리인 듯
현재까지 완성된 대부분 MMORPG들은 단순히
'피부 부분에만 붉은색을 추가했다'라는 걸 봐서..
아직까지는 대부분의 게임에서는
GPU Gems에 소개 된 Fake SSS를 많은 쓰는 듯
하지만..
Character ShadingDiffuse Lighting | Ambient Lighting | Light Mapping
| Light |
피부가 갖는 빛에 대한 투과성을 흉내 내기 위해
Translucency Material을 가져다 쓴다.
Gamebryo 구현 된 것
피부는 플라스틱처럼 깨끗한 재질이 아니기 때문에,
BeckMann Distribution과
CookTorrance Term 라이팅 모델로 제한
구현방법
추가로 Frensnel을 신경 쓰면 좋더라
Frensnel을 Diffuse와 Specular맵과 합성
그리고 추가 Frensnel Color와 가중치를
적용하면 자연스럽게 Frensnel을 적용 할 수 있다.
두깨맵을 내부적으로 이미시브 채널로 전송하여
SSSSS(Screen Space Sub Surface Scattering)를 구현
Character Shading
머리카락 표현의 경우 Anistorpic Brdf 모델을 적용
Character Shading
두깨맵의 퀄러티와 설정에 따라 결과 퀄러티는 달라짐
Character Shading
Light
Framework
Post Processing
| Ambient Lighting |
다른 물체에 반사되어 도달하는 간접광
그렇기 때문에 Ambient값을 정확하게 계산하지
못하고, Diffuse에 비해 영향이 아주 적기 때문에
보통 Ambient 값을 단순히 상수로 사용..
Ambient 란?
Diffuse의 영향이 미치지 않는 부분에는
Ambient 영향이 절대적이라 차이가 크다.
하지만
그런데 Ambient를 실시간으로 계산하기에는 연산량이
너무 많음..
생각한게 고정 Ambient Lighting과
동적 Ambient Lighting
그래서
동적 Ambient Lighting은 현실 타협이 가능한
전처리 과정이 포함된 방법입니다.
Hemisphere Lighting | Light |
Diffuse Lighting | Ambient Lighting | Light Mapping
메탈기어4 에서 사용된 기술
물리적 정확함보다 영화적 연출을 중시한 기법
메탈기어4
Hemisphere Lighting
Image From MSG4
Hemisphere Lighting란?
디자이너의 약간의 수작업으로 Lighting 설정한다.
시작은 Valve에서 Irradiance Volume라는
간단한 방법으로 시작
디자이너에 의해서 음영의
의도적인 연출이 가능하게 됨
Irradiance Volume의 장점이자 단점은..
Irradiance Volume
하지만 Irradiance Volume은 손이 너무 많이 감.
좀 더 개선된 방법이 Hemisphere Lighting
간단히 말하면 하늘색과 지면의 색을 설정해서
반구 모델을 만들고 Surface Normal을 계산으로
-디자이너 일을 줄임
-연산 비용에 비해서 효과가 크다.
Irradiance Volume개선
추가 개발한다면 동적으로
변화 할 수 있는 시스템도 만들 수 있을 듯
– 지형은 재질이 다르고 재질에 따른 반사광
의 색도 다르니깐..
아이디어
Spherical Harmonics | Light |
Diffuse Lighting | Ambient Lighting | Light Mapping
Global Illumination에 대한 렌더링 방정식은
모든 방향에 대해 적분을 해야 함으로 컴퓨터로
계산하기가 힘들다.
PRT 및 SH..
이에 대한 해결책으로 Spherical Harmonics Lighting이 제안됨
From IBL
큐브맵을 가지고 Global Illumination을 흉내 낸다
현재까지 알려진 것들 중 가장 값싼 방법
Spherical Harmonics | Light |
Diffuse Lighting | Ambient Lighting | Light Mapping
Image Based Lighting SH
- 환경의 평균적인 큐브맵을 사용하거나
사용해야 어색하지 않았다.
- 환경에 따라 큐브맵을 교환하면
실시간 GI를 흉내 낼 수 있겠으나,
현실적으로 자연스럽게는 어렵다.
구현경험
큐브맵을 이용한 SH는 너무 정적이라 실용성이 있을까?란 의
From Point
CloudsSpherical Harmonics | Light |
Diffuse Lighting | Ambient Lighting | Light Mapping
Point Clouds SH
캐릭터나 차량같이 움직이는 Prop에 대해서는
격자로 된 Point Clouds SH를 미리 만들어서
대응하게 하면 됨
구현경험
먼저 [동적]물체를 위한 SH계수를 어떻게 얻을까
마야를 뜯어보자 터틀, 브이레이 분석
일단 터틀 SH 데이터 구조 먼저 파악한 뒤
터틀을 이용해 SH를 배치하고 베이킹하여 XML로 뽑아서
그걸 엔진 내에서는 옥트리 형태로 관리
옥트리 노드에 있는 Prop에 해당 SH데이터를 적용시킴
구현경험
그럼 [정적]물체를 위한 SH계수를 어떻게 얻을까
정적 물체들은 그냥 SkyLab이라는 하는 처리자를
따로 만들어서 SH를 생성하시고 적용시킴
스카이를 Render Target으로 따와서
걍 SH데이터로 바꿔 처리시킴
Unreal3,Beast,BattleField3
구현
Point Clouds중 한 점을 시뮬레이션
Light
Framework
Post Processing
| Light Mapping |
실시간 Shadow기법이 발전했지만,
Light Map은 여전히 게임 분위기를
좌우하는 큰 요소
Light Mapping
Directional Light maps | Light |
Diffuse Lighting | Ambient Lighting | Light Mapping
방향성을 가지는 Light map
Valve가 개발
라이트 맵에 노멀 맵을 표현할 수 있는
방법을 찾을 수 있을까?
아이디어:
Diffuse 만으로 게임 내 빛이 닿지 않는 부분은 보이지 않는다
하지만 실제 환경은 수 많은 반사광이 존재함
실제 Light는..
반사광이 있고 없고의 차이..
Image From Unreal3Image From Unreal3
Directional Light map은
반사광을 시뮬레이션하기 위해 개발 됨.
즉, Direct한 빛 외에 반사되는 빛에 의한
Normal을 추가로 표현 하는 것이 목적
Light Map의 목적
이전 Spherical Harmonics
Ambient를 사용 할 수 없다면
아마 이게 유일한 주변광 라이팅일듯.
Light Map의 목적
Source 엔진에서 처음 사용
현재, Source,Unreal3등 여러 엔진에서 보편적으로 사용
다른 게임에서 사용 예
Metal Gear用 Fox Engine에서의 Directional Lightmap의 설명
다른 게임에서 사용 예
전통적으로 3방향의 라이트맵이 필요하
언리얼3와 같이 x,y축 2장의
라이트맵을 사용
위의 그림은 라이트맵만 출력한 상태
(빛이 없어도 노멀맵이 표현된다)
구현
Directional Light maps 적용
구현
Directional Light Map 적용
구현
Directional Light Map 적용
Lightmap Calc Method | Light |
Diffuse Lighting | Ambient Lighting | Light Mapping
Artrmouse
노출이라는 개념을 첨가
라이트맵의 전통적인 계산 방식과는
다른 새로운 방법론을 만들고 싶었다
라이트맵을 텍스쳐의 개념보다
라이팅의 개념으로 더 보고 싶었다
Modulate Modulate 2X Modulate 4X
보통 Diffuse Map과 Light Map을 Modulate해서
나타내는데.. 이 방법은 Light Map이 칙칙해지는 단점이 있다
Traditional Light mapping
비 오는 날씨 같은 느낌.
Modulate할 수록 색은 양극화 된다
개선 방향
Light Map 개선하기 위해
낮은 주파수 영역, 높은 주파수 영역을 각자 연산
아티스트가 일부 수정 가능하게 파라미터로 일부 제공
Use Diffuse Lighting
Diffuse Lightmap
Generate
Flow
Use Ambient Lighting
Ambient Lightmap
GenerateExpourse
Ligthtmap
(8bit Alpha)
Artmouse Light mapping
노출 정도를 맵으로 표현해서 라이트맵의
알파채널에 넣는다(픽셀당 8비트 사용)
노출 맵과 노출 계수를 홗용하여,
주변광과 직접광 라이트맵을 만들고 라이팅 계산을 한다
색 공간 계산 대싞,감마계산을 홗용하여,
이젂에는 불가능 밝기를 실현할 수 있다
Exposure = 1 Exposure = 2 Exposure = 3
구현 ambient light map
Exposure = 1 Exposure = 2 Exposure = 3
밝은 색 영역만 추출(HDR 톤 맵핑과 유사)
버텍스 노멀과 빛 방향의 외적과 연산
구현 diffuse light map
구현 결과
최대한 중간 톤을 지키면서도 밝은 곳은 밝게 어두운 곳은
연하게 또는 강하게 조절 할 수 있었다.
Modulate 4X
엠비언트 라이팅의 색과
디퓨즈 라이팅의 색을 다르게 준 예
구현 결과
하지만..
여전히 A급 Light Map 얻는데 실패
Light Map
Beast, Unreal Light-mass의 수준에 도전해보자
RGB채널당 16비트 혹은 32비트
float형 값을 가짐
OpenEXR이나 HDRI
포멧으로 저장
RGB채널당 0~255의 단계를
저장하거나 그 이하의 단계를 가짐
32,24비트 TGA나
16비트 DDS로 저장
Baking Light map in DCC
LDR Light map
Baking Light map in DCC
HDR Light map
HDR Light map
그런데 걍 HDR로 Light map을 만들게 되면
Light map 한 장에 수백메가..
RGBM HDR Light map | Light |
Diffuse Lighting | Ambient Lighting | Light Mapping
장점: 많은 색 영역을 확보할 수 있다
단점: 용량이 많다.
비디오 메모리에서 DXTn처럼 압축지원을 받지 못한다
HDR Light map
해결책? “RGBM Light map”
PS3의 적은 메모리 덕분에 많은 연구가 진행되어 나온 결과물 중 하나..
전용 프로그램으로 OpenEXR에서 인코딩되며,
다른 방법보다 단순한 방법으로 Shader에서 디코딩됩니다
RGBM Format
DXT5의 RGB 채널에 LDR 칼라 값을
알파채널에 휘도 값을 저장합니다
RGBM 공정
Vray or FinalRender
HDR 라이트맵
베이킹
OpenEXR
포멧으로
저장
인코딩
프로그램으로
DXT5로 변홖
디코딩
In PixelShader
구현
칙칙한 느낌은 사라짐
RGBM Light Map의 아쉬운 점 : 명암 차이를 내기 쉽지 않다
구현 시 문제점
또 수정
RGBM+Artrmouse Ex Method
노출정도를 편리하게 편집가능
Artmouse Exposure Method
최종 구현
최종 구현
RGBM Directional Light Map
최종 구현
RGBM Directional Light Map
상용 Lighting엔진 Beast와 비슷하게 구현
최종 구현
Light |
그리고 또 뭐 하면 좋은게..
|
Diffuse Lighting | Ambient Lighting | Light Mapping
WYSIWYG 기능 제공
1. 라이팅 모델
2. 스킨 쉐이딩
3. 라이트맵 에디팅
4. Decal,Emissive맵등 편집
5. 블렌딩 기능 편집
기능을 제한한 3D 컨텐츠 용 DCC Viewport Shader를 통해,
생산성을 증대시킨다
Light
Framework
Post Processing
| Manet |
Framework |
Lighting Solution
|
Manet | SkyLab | Re-Construction of Color Pipeline | Building Emissive Glow Pipeline
Graphics Framework
Manet : Lighting Solution Project
인상파의 대표적 화가의 이름에서 프로젝트 명을 따옴
리소스 파이프라인에서 데이터를
받아 게임환경을 처리하고 전달.
최종적으로 Shader로 표현해주는
가장 Core한 Framework
[Ambient Lighting과 Direct Lighting 정보를]
Manet [Lighting Solution]이 해야 될 일
Module간 Connecting 기능
Asset관리 기능
환경 관리
Post Processing
Special Effect
Point Cloud Octree Based SH Basis
Composite value for Sun and
Ground
Pre-Baking SH From Turtle Maya
Sun Ray form SkyDome
Ground Ray From Lightmap
(아직 결정되지 않음)
Shader
Manet
Graphics Framework
Manet 구조
Dynamic SH GI
SkyLight And Indirect Ground Lighting(개발 예정)
SunRay(개발 예정)
……
우리는 대략 이런 식으루 구현 함
Manet특징..
Dynamic SH GI데이터를 옥트리 형태로 가지고 있다.
Unreal 3 & Enlighten
다른 Lighting Solution
Enlighten CryEngine
다른 Lighting Solution
Manet Test Build 2012-07-05
SH 처리..
Dynamic SH GI 처리 형태
Lighting을 계산 할 때 Sky, Land의 영향이 중요하다.
주변 환경 Lighting 처리..
Light
Framework
Post Processing
| SkyLab |
Framework |
Sky Process
|
Manet | SkyLab | Re-Construction of Color Pipeline | Building Emissive Glow Pipeline
Atmosphere Env.Solution
대기 환경을 시뮬레이션하기 위해
만든 Framework
레일리 산란, 미 산란을 이용해
물리 기반 대기 Scattering을 처리
간단한 태양 처리
Shader
Manet
Graphics Framework
Shader
SkyLab
Process Sky SH Lighting
Process Land Scattering
Process LensFlare Effect
Sky-Dome Parameter
Atmosphere Shader
SkyLAB 구조
진보된 스카이 ,지형 스케터링
하늘에 관련된 효과(구름의 스크롤,밤낮 구현등)
Manet과 연동-Sky Light를 Manet에 연결해줌
Sun Shaft/God Ray(개발 예정)
Basic Sky Scattering
SkyLab의 구면 하늘 셰이더는 레일리,미 산란,파라메터와 구의 반경,
공기 층의 두께,노출 및 여러 가지 파라메터를 통해 결정된다
Blend Clouds Layer
| 블랜딩을 하지 않은 구름 레이어 | 수치로 조젃 가능한 블랜딩 영역을 계산 | 블랜딩 영역으로 블랜딩한 구름 레이어
구름의 경우 절차적으로 구름을 생성하는 방식이 있지만
아티스트가 그린 구름의 퀄리티를 따라 올 수는 없다.
하지만 너무 정적인데, 동적으로 할 수는 없을까?
노이즈 맵을 만들어서 구름의 수증기양을 알파값으로 조절함
Dynamic Shape Transform
구름의 가장자리 부분이나 수증기가 적은 부분은 때때로 나타났다
사라졌다 하며, 이것은 하늘을 동적으로 변화시켜 심심하지 않게 해준
노이즈 텍스쳐가 필요하며,이것을 구름젂체 이미지와 반응시키짂 않는다
구름 농도에 상관없이 반응시킨다면, 촌스러워지며 현실감이 떨어짂다
Dynamic Shape Transform
옅은 부분의 모양이 조금 변한 것을 볼 수 있다
스크린 샷으로는 잘 안보이니 뒤에서 동영상으로...
Silver Lining
구름이 태양의 인접 구역에 가면 구름 외곽이
밝게 변하는 현상
실버 라이닝을 구현한 엔짂들이 많지 않다
Silver Lining 구현
구름 레이어의 알파를 이용하여 구름 이미지의 외곽선을 추출
Silver Lining
외곽선과 Mie Scattering과 계산함
Silver Lining
합성: Sliver Lining 수치로 자연스럽게 조절 가능
태양위치에 따른 구름 색 변
[시간]
밤, 아침까지의 구름의 색 자동 변경
Support Time of Day
MMORPG프로젝트라면 Night에 대한 로직을 강화
현재로써는 Star 텍스쳐를 블랜딩 하는 것까지..
Support to RT Cubemap And Event SH
렌더타겟으로 하늘만을 큐브맵으로 만든다.
하늘 큐브맵 이미지는 Lighting 계산에서 물이나 Frenel에
사용되고 SH화 된 데이터는 GI Ambient요소에 쓰이게 된다.
Support to RT Cubemap And Event SH
물론 실시간은 아니고
이벤트 방식으로 SH계수화해서 사용한다
실시간이 아니기 때문에 정확도는 약간 떨어진다
맵을 로딩하거나 이벤트시간에
SH화 시켜 Ambient Color로 사용함
상수 Ambient Color는 더 이상 사용하지 말자
Support to RT Cubemap And Event SH
구현
Volumetric Light Scattering on a Highly Animated Scene in Real Time(nvidia GPU Gem3)
Support to Light Shafts(AKA Godray)
태양 빛 산란을 만들자
기본적인 이론은 NVIDIA 문서를 참조해서 만들었다.
구현
스크린 공간의 태양 이미지를 방향성을 갖는
좌표 오프셋으로 여러 번 찍는 방식
그러나 어려웠던 점은 Z버퍼도 검사해야 하고
스크린 영역도 판단해야 제대로 된 차폐가 가능하다.
경험적으로 이를 위해 선형 Z버퍼를 사용하는 것이 좋
구현 시 문제점
구름은 이미지인데.. 어떻게 판단할까?
일단 구름을 흑과 백으로 추출한 렌더 타겟을
차폐 텍스처에 더해주는 방식으로 해결
태양을 추출하는 버퍼를 만들어(스크린 스페이스의 ¼크기) 구름
텍스쳐를 일단 차폐하고 뎁스 버퍼에서 추가로 차폐한다
구현 시 문제점
Support to Light Shafts(AKA Godray)
Light
Framework
Post Processing
| Re-Construction of Color Pipeline |
Framework |
컬러파이트라인의 재구성
|
Manet | SkyLab | Re-Construction of Color Pipeline | Building Emissive Glow Pipeline
컬러 파이프라인의 재구성
왜 크라이시스나 언리얼로
만든 게임은 색이 깨끗이
잘나오는데 구세대 엔진에서
만든 게임은 색감이 죽는 걸까?
HDR 라이트맵이나 HDR 톤맵핑의 차이일까
이것 말고도 감마 공간에서의
Lighting 계산에서의 차이도 있다
구세대 엔진들 대부분은
걍 선형공간에 대한 개념이 없다
프레임버퍼는 선형 공간에서 계산하고 있는데,
우리가 화면에 보고 있는 최종 결과물이나
텍스쳐들은 감마공간
GPU Gems 3권 24.1
텍스쳐 레벨(감마공간)
Lighting and Material Processing(선형공간)
HDR Tone-mapping(선형 ->감마 공간)
Post Color Processing (감마 공간)
컬러 파이프라인
디자이너가 포토샵으로 만들어 내는 텍스처는
감마가 적용된 텍스처
텍스처를 선형공간으로 바꾼다.
Lighting 계산은 모든 이미지가
선형공간에 있다고 판단하고 계산
감마 보정을 하는 이유는 주어진 대역폭 내에서 최대한의 화질을 보여주기
컬러 파이프라인하다보니 문제가 있었다.
선형공간에서 RGBM의 라이트맵 색 영역을 32Bit
버퍼가 버티질 못하고 손실.
컬러 파이프라인하다보니 문제가 있었다.
선형공간에서 Color Grading을 했는데, Color값 손실 발생
컬러 파이프라인
이렇게 해결 했음
텍스쳐 레벨(감마공간)
Lighting and Material Processing(선형공간)
HDR Tone-mapping(선형 ->감마 공간)
Post Color Processing (감마 공간)
렊더 타겟을 16F포멧으로
순서를 잘 지켜야 한다
결과
컬러 파이프라인 문제점 수정하고 그
실패
성공
Light
Framework
Post Processing
| Building Emissive Glow Pipeline |
Framework |
Lighting Solution
|
Manet | SkyLab | Re-Construction of Color Pipeline | Building Emissive Glow Pipeline
Atmosphere Env.Solution
발광 텍스쳐를 추룰해서 렌더타겟에
그리고 블러링해서 합성하는 과정
아름다운 예광탄이나
이펙트를 만들고 싶었다.
Glow Pass
HDR상에서 일정한 LDR 이상의 컬러는 어느 정도의 Emissive의 효과
얻을 수 있으나,실제적으로 특정적이고 한정된 범위를 조절하기 어렵
원하는 곳에 블러링을 하고 싶어서 Glow Pass를 만들었다.
Image From Unreal3 Image From Unreal3
Building Emissive Glow Pipeline
MRT ColorOut Value
추가
MRT
버퍼 추가
½사이즈
Normal
Emissive
Glow
Lens Flare
Emissive
Glow
Post
Process
Glow
Blur
LensFX
Emissive Texture에 일반 이미시브,
렌즈 플레어 이미시브를 나눈다(기준 알파 값의 유무)
Emissive Glow Pass
이미시브 텍스쳐 전체를 렌더링
Normal Emissive Glow Pass
구현하고 싶었던 것
Anamorphic Lens Flare Effect 와일드 스크린 영화에 맞게
고안된 렌즈가 Anamorphic Lens이며 그 렌즈에 flare가
나타나면 독특한 형태를 띄게 된다
구현하고 싶었던 것
스타트랙,트랜스포머등 영화에서 주로 사용되며,
게임엔진에서는 Cysis2,3가 대표적으로 지원한다
Implement of Anamorphic Lens flare
LensFX용의 이미시브의 추출된 패스(알파값으로 추출해서 렌더링)
아직 AfterEffect와 같은 툴을 사용한 CG에 부합되진 않는다
Implement of Anamorphic Lens flare
이미시브의 가중치를 만들어서, 각 이미시브의
가중치가 다르므로 Flare의 길이도 다르게 줄 수 있다
Implement of Anamorphic Lens flare
최종 구현
Full Emissive Glow Pipeline(Basic+LensFX emissivePass)
+ Anamorphic Lesn flare + Chromatic Aberration Lens Effect
Light
Framework
Post Processing
Screen Space Effect
Post Processing
Screen Space Ambient Occlusion
Screen Space Sub Scattering
Screen Space Decal
Screen Space GI
ETC..
이미지 포스트 프로세싱 이펙트로
아래 내용을 써보니깐 괜찮았다.
장점 화면 중심으로 효과를 처리하기 때문에,
질 좋은 효과를 빠르게 표현 할 수 있다
단점 RenderToTexture를 기반으로 하기 때문에,
메모리를 많이 소모한다
Deferred Rendering 방식이 아니면,
사용이 거의 불가능하다
장단점
최근의 Screen Space Effect는 많은 부분이
Deffered Rendering의 요소인
Screen Surface Normal과 위치
그리고 선형 z버퍼를 이용
구현
Crysis
Screen Space Effect가 다른 게임에서 쓰인 사례
Gears of War2
Screen Space Effect가 다른 게임에서 쓰인 사례
Deferred의 시작
ViewSpace Normal Surface Normal
게임브리오 2.X 버전은
Deferred Rendering이 지원되지 않는다!!!!
SSAO
Vew-Space Normal, Position Map/Depth Map 지원을 받아
SSAO구현
SSAO
SSAO 적용
중첩되는 오브젝트가 있을 경우 함몰된 부분이
광원효과를 덜 받게 된다.
Screen Space Global Illumination
스크린 스페이스에서 모든 물체가 발광한다 전제한다.
스크린 노멀과 뎁스 버퍼를 이용해 프레임버퍼의 컬러를 계산
Screen Space Global Illumination
SSGI 적용
화면상에 나타나 있는 모든 오브젝트들은 빛을 반사하여 발광
Screen Space Global Illumination
SSGI는 프레임버퍼의 색을 스크린 서페이스 노멀을
사용해 인접된 색을 섞어줍니다
SSGI 적용
HDR Tone mapping
Post Processing
Tone Mapping은 엔진을 개선하는데 있어서
가장 중요하게 여겨지는 요소 중 하나
HDR Image 를 모니터로 표시하기 위해
출력 가능한 휘도 범위의 LDR(0~255) 로 바꾸는 과정입니다
Linear Tone Mapping의 단점은 색 영역의 제한이 생긴다
경험상 추천 하는 방식은 Reinhard 방식과
Filmic 방식의 톤 맵핑의 혼합방식입니다
DirectX와 GameBryo가
대표적으로 Linear Tone Mapping을 채용
Tone Mapping 비교
Reinhard’s 방법으로 Color영역을 더 많이 지킬 수 있
Linear Tone Mapping Reinhard’s Tone Mapping
Gamebryo
(MidKey:0.72,
BloomScale:0.5*0.5,
Dlight Mul:100)
Gamebryo
(MidKey:1.0,
BloomScale:0.5*0.5,
Dlight Mul:100)
UnitedHDR
(MidKey:0.72,
BloomScale:0.5*0.5,
Dlight Mul:100)
UnitedHDR
(MidKey:1.0,
BloomScale:0.5*0.5,
Dlight Mul:100)
그런데 어째 좀 어두웠다.
그래서 Filmic Tone Mapping의 추가 채택
영화에서 사용하는 필름 커브를 이용합니다
Uncharted 2에서 처음 개발CryEngine 3.4.0 버전에 채택
Image From Uncharted Image From CRY ENGINE
+ Filmic 방식
Reinhard 방식 Reinhard 방식 + Filmic 방식
Reinhard 방식
+ Filmic 방식Reinhard 방식
Linear Tone
색이 날아가다
Reainhard Tone
색은 지키는데 밝은 곳이
밝은 느낌이 아니다
Reainhard + Filmic
색 영역을 지키면서
밝은 곳은 밝게,
암부도 단계가 풍부하다
Color Grading
Post Processing
Image From Unreal3
영화에서는 후반 색 보정은 당연하게 사용
Look Up Texture 를 이용한 Color Grading은
Post Effect로서의 색 보정 역할 뿐만 아니라
개별 사물이나 캐릭터에도 적용이 가능
Actor의 Shader Code마지막에 Look Up Texture 관련 함수만 적용해주면 완성
게임에서는 Look Up Texture를 이용해서 빠르게 적용합
기본 텍스쳐는 RGB값을 컨버팅한 UV좌표에
정확히 자기의 Color를 가지고 있는 상태
추가 텍스쳐 제작 없이도 Look Up Table만
만들어 놓으면 다양한 색의 사물이나
몬스터, 이펙트를 다량으로 생성할 수 있
대량 생산도 가능
Valve 방식
소스 엔진의 경우 헤머 툴에 포함
룩업 텍스쳐는 포토샵으로 작업해도 되지만
베가스나 에프터이펙트로 작업을 하는게 효과적
게임 환경 구석구석을 돌아다니면서 맞춰야 하니깐
다른 툴 이용
적용 결과
Bleach Bypass
Post Processing
[라이언 일병 구하기]
을 통해 대중에 알려진 필름 기법
Bleach Bypass
낮은 채도와 강한 콘트라스트로 인해
실사보다 더한 샤프니스가 두드러진다
컬러 무드등 여러가지 컬라 조정기능
In Game
Bleach bypass = 0.0 Bleach bypass = 1.0
Bokeh DOF Without VTF
Post Processing
카메라로 Depth Of Field를
적용하면 렌즈에 따라
Bokeh가 발생합니다
Bokeh DOF
게임 브리오에서 제공하는
선형 DOF는 차세대에서 쓰기 좀 그렇다
버텍스 펫치를 쓰지 않고도 Bokeh를 지원한다
포커스는 기본 스크린 서페이스의 중심이며,
포커스 영역을 지정할 수 있다
구현
http://youtu.be/LQrRB3zUICc
영상
Pseudo Lens Flare
Post Processing
Image From BattleField3(EA,DICE)
태양이나 라이트의 렌즈 플레어는 전통적으로
게임의 환경을 꾸미는 역할을 담당
VS
구현 방식 비교
스프라이트 기반 렌즈 플레어
-명시적으로 배치 할 수 있다
-언제나 정적인 모습으로
비현실적으로 보인다
물리 기반 SS 렌즈 플레
어
-비용이 스프라이트 기반
렌즈
플레어에 비해 비싸다
-현실적이고도,이미지와
복합적으로 사용 할 수도
있다
Downsample + 임계 값
Flip horizontally + vertically 수평 뒤집기 + 수직
Generate lens flare features 렌즈 플레어 기능을 생성
Upscale + modulate with a 'dirt' texture + blend
with original image 고급 +는 '흙'질감으로
조절 + 조화를 원본 이미지와 함께
구현 방법
Add Chromatic Halo Ring Add Dirty Lens Surface
영상
Anti Aliasing
Post Processing
지금까지 구현된 것은 루카츠아츠에서 드미트리기 제안한 DL
MSAA를 지양하고 Shader AA를 구현한다
FXAA
Directionally Localized Anti-Aliasing
Post Processing
다른 관점에서 안티 알리아싱
(GDC 2011 Dmitry Andreev, LucasArts)에서 소개
가로 세로 높은 주파수의 엣지를 샘플링 하여 블러링 한다
자신의 방향성을 따라 Blur 된 Edge
아이디어
구현
Directionally Localized Anti-AliasingWithout Anti-Aliasing
Optimizing Section
Post Processing
GameBryo Default Shader 보다
훨씬 많은 일들을 하고,
고급 조명효과를 제공한다
GameBryo Default Shader 보다
무겁다
Shader Optimizing
Shader Optimizing
가장 부하가 심한 라이팅 계산의 Skipping
픽셀 라이팅 스피킹
Vertex Shader에서 기본라이팅을 계산
(대싞 좀 넓은 영역으로) 0.5*N dot L+0.5
라이트맵의 일정 명도 이하의 값과
리얼타임 쉐도우의 영역을 추출
픽셀 쉐이더에서의 라이팅 계
산
블랙영역을 라이팅 스키핑 영역을 지정
Diffuse Light
요약
BRDF
Wrapped Diffuse
Frensnel
Transiucency Material
Ambient Light
Hemisphere Lighting
Spherical Harmonics From IBL
Spherical Harmonics From Point Cloud
Light Mapping
Directional Lightmap
HDR Lightmap
Framework
Manet
SkyLab
Re-Construction of Color
Emissive Glow
Post Processing
Screen Space Effect
HDR Tone mapping
Color Grading
Bleach Bypass
Bokeh DOF Without VTF
Pseudo Lens Flare
DLAA
물리기반 라이팅 모델사
용
결론
정적,동적 SH,Hemi 시스템으로
엠비언트 라이팅 시스템 강화Sub Surface Scattering/
SSSSS 산란기법 사용
최신 라이팅 솔루션에 근접한 라이트맵 구현
마네,스카이랩등 미들웨어급 프레임 웍 구현
으로
모듈간 연결 고리 구축부분적 디퍼드 시스템 채용과 컬러 재 구
축,HDR톤 맵핑 구축으로 인한 차세대 컬러
구현
결론
“We Can Do It”
References
Wrap diffues : http://blog.stevemcauley.com/2011/12/03/energy-conserving-wrapped-diffuse/
http://engineroom.ubi.com/energy-conserving-wrapped-diffuse/
Normal Map : http://www.ozone3d.net/tutorials/bump_map_compression_p5.php
http://www.valvesoftware.com/publications/2007/SIGGRAPH2007_EfficientSelfShadowedRa
BRDF :
Background: Physically-Based Shading (Naty Hoffman): http://renderwonk.com/publications/s2010-shad
Practical Implementation of Physically-Based Shading Models at tri-Ace (Yoshiharu Gotanda): http://rend
Crafting Physically Motivated Shading Models for Game Development (Naty Hoffman): http://renderwon
Physically-based lighting in Call of Duty: Black Ops: http://advances.realtimerendering.com/s2011/Lazaro
Microfacet Models for Refraction through Rough Surfaces:http://www.cs.cornell.edu/~srm/publications/E
http://www.rorydriscoll.com/2009/01/25/energy-conservation-in-games/
http://seblagarde.wordpress.com/2011/08/17/hello-world/
SH : http://developer.amd.com/media/gpu_assets/Tatarchuk_Irradiance_Volumes.pdf
http://www2.ati.com/developer/gdc/D3DTutorial10_Half-Life2_Shading.pdf
References
Directional Light map : http://www.decew.net/OSS/References/sem_ss06_07-Independant%20Explanation
기타 : http://maddieman.wordpress.com/2009/06/23/gamma-correction-and-linear-colour-space-simplifi
http://www.slideshare.net/leemwymw/gamma-and-linear-colorspace
기술 구현 및 협력
버티고우 게임즈 고경석 책임연구원
artmouse@hotmail.com
http://twitter.com/artmouse_ko

Contenu connexe

Tendances

멀티스레드 렌더링 (Multithreaded rendering)
멀티스레드 렌더링 (Multithreaded rendering)멀티스레드 렌더링 (Multithreaded rendering)
멀티스레드 렌더링 (Multithreaded rendering)Bongseok Cho
 
물리 기반 셰이더의 이해
물리 기반 셰이더의 이해물리 기반 셰이더의 이해
물리 기반 셰이더의 이해tartist
 
Compute shader DX11
Compute shader DX11Compute shader DX11
Compute shader DX11민웅 이
 
AAA게임_UI_최적화_및_빌드하기.pptx
AAA게임_UI_최적화_및_빌드하기.pptxAAA게임_UI_최적화_및_빌드하기.pptx
AAA게임_UI_최적화_및_빌드하기.pptxTonyCms
 
전형규, 프로젝트DH의 절차적 애니메이션 시스템, NDC2017
전형규, 프로젝트DH의 절차적 애니메이션 시스템, NDC2017전형규, 프로젝트DH의 절차적 애니메이션 시스템, NDC2017
전형규, 프로젝트DH의 절차적 애니메이션 시스템, NDC2017devCAT Studio, NEXON
 
Deferred decal
Deferred decalDeferred decal
Deferred decal민웅 이
 
그럴듯한 랜덤 생성 컨텐츠 만들기
그럴듯한 랜덤 생성 컨텐츠 만들기그럴듯한 랜덤 생성 컨텐츠 만들기
그럴듯한 랜덤 생성 컨텐츠 만들기Yongha Kim
 
빠른 렌더링을 위한 오브젝트 제외 기술
빠른 렌더링을 위한 오브젝트 제외 기술빠른 렌더링을 위한 오브젝트 제외 기술
빠른 렌더링을 위한 오브젝트 제외 기술YEONG-CHEON YOU
 
심예람, <프로젝트DH> AI 내비게이션 시스템, NDC2018
심예람, <프로젝트DH> AI 내비게이션 시스템, NDC2018심예람, <프로젝트DH> AI 내비게이션 시스템, NDC2018
심예람, <프로젝트DH> AI 내비게이션 시스템, NDC2018devCAT Studio, NEXON
 
Compute shader
Compute shaderCompute shader
Compute shaderQooJuice
 
[Kgc2012] deferred forward 이창희
[Kgc2012] deferred forward 이창희[Kgc2012] deferred forward 이창희
[Kgc2012] deferred forward 이창희changehee lee
 
Hierachical z Map Occlusion Culling
Hierachical z Map Occlusion CullingHierachical z Map Occlusion Culling
Hierachical z Map Occlusion CullingYEONG-CHEON YOU
 
언차티드4 테크아트 파트1 톤맵핑&색보정
언차티드4 테크아트 파트1 톤맵핑&색보정언차티드4 테크아트 파트1 톤맵핑&색보정
언차티드4 테크아트 파트1 톤맵핑&색보정Dae Hyek KIM
 
Tips and experience of DX12 Engine development .
Tips and experience of DX12 Engine development .Tips and experience of DX12 Engine development .
Tips and experience of DX12 Engine development .YEONG-CHEON YOU
 
[데브루키/141206 박민근] 유니티 최적화 테크닉 총정리
[데브루키/141206 박민근] 유니티 최적화 테크닉 총정리[데브루키/141206 박민근] 유니티 최적화 테크닉 총정리
[데브루키/141206 박민근] 유니티 최적화 테크닉 총정리MinGeun Park
 
Shadow mapping 정리
Shadow mapping 정리Shadow mapping 정리
Shadow mapping 정리changehee lee
 
[Unite2015 박민근] 유니티 최적화 테크닉 총정리
[Unite2015 박민근] 유니티 최적화 테크닉 총정리[Unite2015 박민근] 유니티 최적화 테크닉 총정리
[Unite2015 박민근] 유니티 최적화 테크닉 총정리MinGeun Park
 

Tendances (20)

멀티스레드 렌더링 (Multithreaded rendering)
멀티스레드 렌더링 (Multithreaded rendering)멀티스레드 렌더링 (Multithreaded rendering)
멀티스레드 렌더링 (Multithreaded rendering)
 
물리 기반 셰이더의 이해
물리 기반 셰이더의 이해물리 기반 셰이더의 이해
물리 기반 셰이더의 이해
 
Compute shader DX11
Compute shader DX11Compute shader DX11
Compute shader DX11
 
AAA게임_UI_최적화_및_빌드하기.pptx
AAA게임_UI_최적화_및_빌드하기.pptxAAA게임_UI_최적화_및_빌드하기.pptx
AAA게임_UI_최적화_및_빌드하기.pptx
 
Motion blur
Motion blurMotion blur
Motion blur
 
전형규, 프로젝트DH의 절차적 애니메이션 시스템, NDC2017
전형규, 프로젝트DH의 절차적 애니메이션 시스템, NDC2017전형규, 프로젝트DH의 절차적 애니메이션 시스템, NDC2017
전형규, 프로젝트DH의 절차적 애니메이션 시스템, NDC2017
 
Deferred decal
Deferred decalDeferred decal
Deferred decal
 
그럴듯한 랜덤 생성 컨텐츠 만들기
그럴듯한 랜덤 생성 컨텐츠 만들기그럴듯한 랜덤 생성 컨텐츠 만들기
그럴듯한 랜덤 생성 컨텐츠 만들기
 
빠른 렌더링을 위한 오브젝트 제외 기술
빠른 렌더링을 위한 오브젝트 제외 기술빠른 렌더링을 위한 오브젝트 제외 기술
빠른 렌더링을 위한 오브젝트 제외 기술
 
심예람, <프로젝트DH> AI 내비게이션 시스템, NDC2018
심예람, <프로젝트DH> AI 내비게이션 시스템, NDC2018심예람, <프로젝트DH> AI 내비게이션 시스템, NDC2018
심예람, <프로젝트DH> AI 내비게이션 시스템, NDC2018
 
Compute shader
Compute shaderCompute shader
Compute shader
 
[Kgc2012] deferred forward 이창희
[Kgc2012] deferred forward 이창희[Kgc2012] deferred forward 이창희
[Kgc2012] deferred forward 이창희
 
Hierachical z Map Occlusion Culling
Hierachical z Map Occlusion CullingHierachical z Map Occlusion Culling
Hierachical z Map Occlusion Culling
 
언차티드4 테크아트 파트1 톤맵핑&색보정
언차티드4 테크아트 파트1 톤맵핑&색보정언차티드4 테크아트 파트1 톤맵핑&색보정
언차티드4 테크아트 파트1 톤맵핑&색보정
 
Tips and experience of DX12 Engine development .
Tips and experience of DX12 Engine development .Tips and experience of DX12 Engine development .
Tips and experience of DX12 Engine development .
 
[데브루키/141206 박민근] 유니티 최적화 테크닉 총정리
[데브루키/141206 박민근] 유니티 최적화 테크닉 총정리[데브루키/141206 박민근] 유니티 최적화 테크닉 총정리
[데브루키/141206 박민근] 유니티 최적화 테크닉 총정리
 
Shadow mapping 정리
Shadow mapping 정리Shadow mapping 정리
Shadow mapping 정리
 
Niagara In UE4
Niagara In UE4Niagara In UE4
Niagara In UE4
 
[Unite2015 박민근] 유니티 최적화 테크닉 총정리
[Unite2015 박민근] 유니티 최적화 테크닉 총정리[Unite2015 박민근] 유니티 최적화 테크닉 총정리
[Unite2015 박민근] 유니티 최적화 테크닉 총정리
 
Ssao
SsaoSsao
Ssao
 

Similaire à 구세대 엔진 신데렐라 만들기 최종본 유트브2

Devtree lightmapping unity5_2_1stday
Devtree lightmapping unity5_2_1stdayDevtree lightmapping unity5_2_1stday
Devtree lightmapping unity5_2_1stdaySangYun Yi
 
Real-Time Global Illumination Techniques
Real-Time Global Illumination TechniquesReal-Time Global Illumination Techniques
Real-Time Global Illumination TechniquesJangho Lee
 
gametech 2012 Gladius project
gametech 2012 Gladius projectgametech 2012 Gladius project
gametech 2012 Gladius projectWuwon Yu
 
게임 개발을 위한 렌더링 기법 한성환
게임 개발을 위한 렌더링 기법   한성환게임 개발을 위한 렌더링 기법   한성환
게임 개발을 위한 렌더링 기법 한성환Yggdrasil610
 
[0326 박민근] deferred shading
[0326 박민근] deferred shading[0326 박민근] deferred shading
[0326 박민근] deferred shadingMinGeun Park
 
Game Visual Art Technologies
Game Visual Art TechnologiesGame Visual Art Technologies
Game Visual Art TechnologiesSangYun Yi
 
실전프로젝트 정서경 양현찬
실전프로젝트 정서경 양현찬실전프로젝트 정서경 양현찬
실전프로젝트 정서경 양현찬현찬 양
 
Unite2015 probelight(150417)
Unite2015 probelight(150417)Unite2015 probelight(150417)
Unite2015 probelight(150417)SangYun Yi
 
[0918 박민수] 범프 매핑
[0918 박민수] 범프 매핑[0918 박민수] 범프 매핑
[0918 박민수] 범프 매핑MoonLightMS
 
NDC2015 유니티 정적 라이팅 이게 최선인가요
NDC2015 유니티 정적 라이팅 이게 최선인가요  NDC2015 유니티 정적 라이팅 이게 최선인가요
NDC2015 유니티 정적 라이팅 이게 최선인가요 Wuwon Yu
 
multi plaform Full3D MMO 만들기 "삼국지를 품다"의 테크니컬 아트
multi plaform Full3D MMO 만들기 "삼국지를 품다"의 테크니컬 아트multi plaform Full3D MMO 만들기 "삼국지를 품다"의 테크니컬 아트
multi plaform Full3D MMO 만들기 "삼국지를 품다"의 테크니컬 아트JP Jung
 
9강 camera advanced light2
9강 camera advanced light29강 camera advanced light2
9강 camera advanced light2JP Jung
 
7강 shader basic lighting_배포용 삭제버전
7강 shader basic lighting_배포용 삭제버전7강 shader basic lighting_배포용 삭제버전
7강 shader basic lighting_배포용 삭제버전JP Jung
 
2015.12.10 defferd renderring_
2015.12.10 defferd renderring_2015.12.10 defferd renderring_
2015.12.10 defferd renderring_재현 최
 
크게, 아름답게,빠르게, 일관되게 만들기: Just Cause 2 개발에서 배운 교훈들 (GPU Pro)
크게, 아름답게,빠르게, 일관되게 만들기: Just Cause 2 개발에서 배운 교훈들 (GPU Pro)크게, 아름답게,빠르게, 일관되게 만들기: Just Cause 2 개발에서 배운 교훈들 (GPU Pro)
크게, 아름답게,빠르게, 일관되게 만들기: Just Cause 2 개발에서 배운 교훈들 (GPU Pro)민웅 이
 
노동진 Mega splatting
노동진 Mega splatting노동진 Mega splatting
노동진 Mega splattingdrandom
 
Depth buffershadow
Depth buffershadowDepth buffershadow
Depth buffershadowMoonLightMS
 

Similaire à 구세대 엔진 신데렐라 만들기 최종본 유트브2 (20)

Devtree lightmapping unity5_2_1stday
Devtree lightmapping unity5_2_1stdayDevtree lightmapping unity5_2_1stday
Devtree lightmapping unity5_2_1stday
 
Real-Time Global Illumination Techniques
Real-Time Global Illumination TechniquesReal-Time Global Illumination Techniques
Real-Time Global Illumination Techniques
 
gametech 2012 Gladius project
gametech 2012 Gladius projectgametech 2012 Gladius project
gametech 2012 Gladius project
 
게임 개발을 위한 렌더링 기법 한성환
게임 개발을 위한 렌더링 기법   한성환게임 개발을 위한 렌더링 기법   한성환
게임 개발을 위한 렌더링 기법 한성환
 
[0326 박민근] deferred shading
[0326 박민근] deferred shading[0326 박민근] deferred shading
[0326 박민근] deferred shading
 
Game Visual Art Technologies
Game Visual Art TechnologiesGame Visual Art Technologies
Game Visual Art Technologies
 
실전프로젝트 정서경 양현찬
실전프로젝트 정서경 양현찬실전프로젝트 정서경 양현찬
실전프로젝트 정서경 양현찬
 
Unite2015 probelight(150417)
Unite2015 probelight(150417)Unite2015 probelight(150417)
Unite2015 probelight(150417)
 
[0918 박민수] 범프 매핑
[0918 박민수] 범프 매핑[0918 박민수] 범프 매핑
[0918 박민수] 범프 매핑
 
High dynamic range
High dynamic rangeHigh dynamic range
High dynamic range
 
NDC2015 유니티 정적 라이팅 이게 최선인가요
NDC2015 유니티 정적 라이팅 이게 최선인가요  NDC2015 유니티 정적 라이팅 이게 최선인가요
NDC2015 유니티 정적 라이팅 이게 최선인가요
 
multi plaform Full3D MMO 만들기 "삼국지를 품다"의 테크니컬 아트
multi plaform Full3D MMO 만들기 "삼국지를 품다"의 테크니컬 아트multi plaform Full3D MMO 만들기 "삼국지를 품다"의 테크니컬 아트
multi plaform Full3D MMO 만들기 "삼국지를 품다"의 테크니컬 아트
 
Ndc11 이창희_hdr
Ndc11 이창희_hdrNdc11 이창희_hdr
Ndc11 이창희_hdr
 
9강 camera advanced light2
9강 camera advanced light29강 camera advanced light2
9강 camera advanced light2
 
Gametech2015
Gametech2015Gametech2015
Gametech2015
 
7강 shader basic lighting_배포용 삭제버전
7강 shader basic lighting_배포용 삭제버전7강 shader basic lighting_배포용 삭제버전
7강 shader basic lighting_배포용 삭제버전
 
2015.12.10 defferd renderring_
2015.12.10 defferd renderring_2015.12.10 defferd renderring_
2015.12.10 defferd renderring_
 
크게, 아름답게,빠르게, 일관되게 만들기: Just Cause 2 개발에서 배운 교훈들 (GPU Pro)
크게, 아름답게,빠르게, 일관되게 만들기: Just Cause 2 개발에서 배운 교훈들 (GPU Pro)크게, 아름답게,빠르게, 일관되게 만들기: Just Cause 2 개발에서 배운 교훈들 (GPU Pro)
크게, 아름답게,빠르게, 일관되게 만들기: Just Cause 2 개발에서 배운 교훈들 (GPU Pro)
 
노동진 Mega splatting
노동진 Mega splatting노동진 Mega splatting
노동진 Mega splatting
 
Depth buffershadow
Depth buffershadowDepth buffershadow
Depth buffershadow
 

Dernier

MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution DetectionMOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution DetectionKim Daeun
 
캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차캐드앤그래픽스
 
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...Kim Daeun
 
Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Wonjun Hwang
 
A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)Tae Young Lee
 
Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Wonjun Hwang
 

Dernier (6)

MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution DetectionMOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
 
캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차
 
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
 
Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)
 
A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)
 
Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)
 

구세대 엔진 신데렐라 만들기 최종본 유트브2

  • 1. 구세대 엔진, 신데렐라 만들기 비교적 구 기술 게임엔진 렌더링 시스템 생명 연장 NDC 2013
  • 2. 고경석 버티고우 게임즈, 엔진팀 만능종합 예술인을 지향 업계 경력 ㈜ 엔오지 엔터테인먼트 바이탈 디바이스 (RTS) 개발 플라스틱스 온라인 개발(MMORPG) ㈜ 아이서프 팀레볼루션 개발(MORacing) ㈜ CJ인터넷 개발 2실 엔짂 연구 개발 쿵야 어드벤쳐 개발 SK C&C E-World Project TFT ㈜ T3엔터테인먼트 워크라이 개발 ㈜ JCE 엔터테인먼트 젂략기획실 ㈜ 이누카 인터렉티브 ㈜ 버티고우 게임즈 젂략기술실
  • 3. 최재혁 NEXON Korea, 개발 4본부 HIGH QUALITY RENDERING 에 관심이 많은 사람
  • 4. 이 내용은 엔진을 선택하는 것이 아니라 선택되어진 구세대 엔진을 어떻게, 차세대 신규게임에 적용시키는가에 대한 문제점의 고민입니다
  • 5. 실제 ㈜ 버티고우 게임즈에서 사용하고 있는 GameBryo 2.0~2.6에서의 사례로 구세대 엔진에서의 차세대 그래픽스 기술 을 접목시키는 방법을 살펴보면서 여러분이 가지고 계신 구세대 엔진 혹은 코스트(자금,인력) 때문에 차세대 엔진의 구입이 어려운 힘든 상황에 미력하나마, 참고 자료가 되었으면 좋겠습니다 고경석
  • 6. 인디게임 만들면서 근사한 렌더링 하고 싶었는데, 방향을 찾지 못하는 많은 사람들에게 조금이나마 도움이 되고 작은 경험을 나누는 자리였으면.. 발표자 최재혁씨의 개인생각
  • 7. “흔한 게임브리오 엔진을 사용한 게임 스샷.JPG” 본 이미지는 무작위 검색에 의하여 특정게임의 홍보 및 다른 의도가 없음을 알려드
  • 10. UGF 구현 영상 United Graphics FoundationKyoung Seok,Ko 2012~2013 본 영상은 필자의 지인들과 본인의 남는 시간을 활용해서 제작한 리소스를 가지고 엔진 다이렉트 영상입니다 리소스의 질은 떨어질 수 있으니 , 참고바랍니다
  • 11.
  • 13. Light | 중요한 조명 처리 | 컴퓨터 그래픽스에서 가장 중요한 것은 색이 아닌 빛 Diffuse Lighting | Ambient Lighting | Light Mapping
  • 14. Light | | 추구하는 방향성 Diffuse Lighting | Ambient Lighting | Light Mapping 군더더기 없는 물리모델 기반 라이 구세대 엔진중 많은 특징들은 이쁜게 렌더링 하기 위해 Light를 Mesh나 Node에 덕지덕지 사용하는 경향이 있다. = GI Methods
  • 15. Light | | Renderer를 설계할 때 중요한 문제 한 가지는 조명처리 방식을 결정하는 것 Diffuse Lighting | Ambient Lighting | Light Mapping Forward VS Deferred 가장 무거운 연산이기도 하고.. 게임 성격에 맞게 적합하다 판단한.. 을 사용.. 복잡한 Shading Model을 쓰고 있기도 하고..
  • 17. 컴퓨터 그래픽스의 빛의 요소 Diffuse Lighting Process - 3 Channel BRDFs Lighting - Translucency Process Ambient Lighting Process For Static Object - HDR Directional Lightmaps - Global SkyLight SH Ambient Lighting Process For Dynamic Object - Global SkyLight SH - Point Clouds SH Lighting ProcessDiffuse Lighting | Ambient Lighting | Light Mapping | Light |
  • 18. Lighting을 잘 받으려면? Normal Map 개선Diffuse Lighting | Ambient Lighting | Light Mapping | Light | 물체의 표면 관련 데이터가 중요 가장 중요한 부분이 Normal에 대한 데이 보통 Normal Map에는 노이즈가 있다.
  • 19. 2-Channel Normal Map GPU친화적인 텍스처 압축을 하되,손실을 줄일 수 있는 방법 Call of Duty, Mass Effect, 언리얼 3시스템에서 사용 Radiosity Normal Map SelfShadow가 가능한 NormalMap 통상 RNMs로 불린다. Source엔진에서 처음 구현,Source엔진, 언리얼3에서 사용 Normal Map 개선 작업
  • 20. 보통 Normal Map에는 DXT1을 많이 쓰는데 DXT 포맷은 손실 압축이라서 노이즈가 많다. 노이즈 부터 제거하자
  • 21. 일반 이미지를 DXT로 압축하면 DXT 압축에 따른 결과
  • 22. 2-Channel Normal Map 구현 DXT는 하드웨어 가속을 받기 때문에 쓰긴 써야 되는 DXT가 Alpha, Green값이 덜 훼손되는 특징이 있다. 이 값들을 x, y에 저장하고 나머지 z값을 계산하여 z값 만들게 되면 원본 DXT보다 훨씬 깨끗한 Normal값을 뽑을 수 있다. 깔끔한 Normal
  • 23. 2 channel Normal Map Radiosity Normal Map Radiosity Normal Map 비교 VALVE에서 자체 음영이 가능한 방법을 개선 렌더링 품질을 올리기 위해서는 반듯이 써야 한다. 이제는 일반적인 방법 하지만 라이트맵 3장은 너무 용량이 크다.개선방향 : [NDC 2012, 가성비 좋은 렊더링 10선, 버텍스 단위 3축 조명]
  • 24. 재질이나 라이팅이 밝아질수록 Normal이 사라지는 현상이 있었다. Normal Map을 Scaling했다. 그래도 아직 모자른 감이 있었다 때때로 Normal값 강조를 위해
  • 25. 3.0f scale Normal Map Scaling 결과
  • 26. 전통적인 조명 방식에서 다음세대 조명 방식이라 생각되는 BRDF Lighting ModelsDiffuse Lighting | Ambient Lighting | Light Mapping | Light | Phong/Blinn Phong Model Micro-facet BRDFs Next Generation Lighting Model 예젂에는 느려서 사용 못하고 있었음 이젂에는 단지 빨리서 사용
  • 27. BRDF Diffuse Lighting | Ambient Lighting | Light Mapping | Light | 불투명한 물체에서의 반사율을 나타내는 다양한 기법 쉽게 말하면 표면에서 빛이 어떻게 반사 되는지를 나타내는 공식 BRDF란?
  • 28. 일단 깨끗함 48개 Lighting 모델 제공 표현하기 어려운 Material도 쉽게 가능 왜 Blinn-Phong BRDF BRDF를 쓸까?
  • 29. 사실 이 복잡한 수식을 다 알 필요는 없고 F, G, D의 요소를 이해하고 걍 쓰면 된다. 정확한 수식이 아님.. Micro-facet 방정식
  • 30. F G D – 국소면 사이의 그림자, 마스킹의 영향 – 얼마나 오브젝트가 금속처럼 보일까 – 국소면의 Noraml 값 설정 Micro-facet 방정식
  • 32. 가장 일반적으로 Diffuse 라이팅에 적용되는 공식은 Lambert 조명 Wrapped DiffuseDiffuse Lighting | Ambient Lighting | Light Mapping | Light | 하지만 사용하다 보면 너무 어둡다.
  • 33. Wrapped Diffuse Team Fortress 2팀 에서 간단한 Diffuse 계산 대신 복잡한 Diffuse 제안 Image From Team Fortress2
  • 34. 음영이 많이 생기는 기존의 Lambert를 개선하기 위해 나온 것 Diffuse vs Wrapped Diffuse
  • 36. GameBryo(Lambert) Wrapped Diffuse(factor 1.0) 다소 어두워 지는 경향이 있다. Wrapped Diffuse(factor 1.0) 보완 1.5 구현
  • 37. 알려진 Specular만으로 표현 할 수 없는 재질이 많기 때문에 사용 Fresnel Diffuse Lighting | Ambient Lighting | Light Mapping | Light | 보는 각도에 따라서 반사되는 재질이 달라진다. 그리고 모든 물체는 Fresnel을 가진다.
  • 38. Crysis Fresnel 예제 반사체를 표현하는데 있어서 프레넬 함수를 사용하는 사실적인 표면의 표현이 가능 Crysis Fresnel 패널 Crysis
  • 39. Diffuse Fresnel 지원 환경맵 Fresnel 지원 Fresnel MaskMap 지원 스펙큘러맵과 연동지원 (보다 자연스러운 결과를 연출가능) 구현범위
  • 40. Translucency MaterialDiffuse Lighting | Ambient Lighting | Light Mapping | Light | 일반적인 용어는 Sub Surface Scattering 빛이 오브젝트의 표면의 한 지점으로 투과되어 내부로 퍼져나간 후 다른 위치로 빠져나가는 현상 두께에 기반한 Sub Surface Scatterin
  • 42. 빛이 반투과 되는 피부나 식물의 입사귀, 양초같은 오브젝트 표현에 적당 어디에 사용?
  • 43. Approximating Translucency for a Fast, Cheap and Convincing Subsurface Scattering Look 경험상 괜찮은 구현 방법은 프로바이트2엔진에서 사용한 로컬 두께 맵을 이용하는 것 어떤걸 사용?
  • 44. 오브젝트의 노멀을 뒤집어 엠비언트 오클루젼 걸고 그것을 반전시키면 두께 맵이 나온다. 사람 얼굴로 치자면 코끝이나 귀 끝이 밝게 나오고 얼굴 중심으로 갈수록 어두워지는 두께맵을 얻을 수 있음 아티스트가 라이트맵을 굽는 것과 비슷하다 구현방법
  • 45. MMO에서는 이 정도까지 쓰는 건 아직까지 좀 무리인 듯 현재까지 완성된 대부분 MMORPG들은 단순히 '피부 부분에만 붉은색을 추가했다'라는 걸 봐서.. 아직까지는 대부분의 게임에서는 GPU Gems에 소개 된 Fake SSS를 많은 쓰는 듯 하지만..
  • 46. Character ShadingDiffuse Lighting | Ambient Lighting | Light Mapping | Light | 피부가 갖는 빛에 대한 투과성을 흉내 내기 위해 Translucency Material을 가져다 쓴다. Gamebryo 구현 된 것
  • 47. 피부는 플라스틱처럼 깨끗한 재질이 아니기 때문에, BeckMann Distribution과 CookTorrance Term 라이팅 모델로 제한 구현방법 추가로 Frensnel을 신경 쓰면 좋더라 Frensnel을 Diffuse와 Specular맵과 합성 그리고 추가 Frensnel Color와 가중치를 적용하면 자연스럽게 Frensnel을 적용 할 수 있다.
  • 48. 두깨맵을 내부적으로 이미시브 채널로 전송하여 SSSSS(Screen Space Sub Surface Scattering)를 구현 Character Shading
  • 49. 머리카락 표현의 경우 Anistorpic Brdf 모델을 적용 Character Shading
  • 50. 두깨맵의 퀄러티와 설정에 따라 결과 퀄러티는 달라짐 Character Shading
  • 52. 다른 물체에 반사되어 도달하는 간접광 그렇기 때문에 Ambient값을 정확하게 계산하지 못하고, Diffuse에 비해 영향이 아주 적기 때문에 보통 Ambient 값을 단순히 상수로 사용.. Ambient 란?
  • 53. Diffuse의 영향이 미치지 않는 부분에는 Ambient 영향이 절대적이라 차이가 크다. 하지만 그런데 Ambient를 실시간으로 계산하기에는 연산량이 너무 많음..
  • 54. 생각한게 고정 Ambient Lighting과 동적 Ambient Lighting 그래서 동적 Ambient Lighting은 현실 타협이 가능한 전처리 과정이 포함된 방법입니다.
  • 55. Hemisphere Lighting | Light | Diffuse Lighting | Ambient Lighting | Light Mapping 메탈기어4 에서 사용된 기술
  • 56. 물리적 정확함보다 영화적 연출을 중시한 기법 메탈기어4 Hemisphere Lighting Image From MSG4
  • 57. Hemisphere Lighting란? 디자이너의 약간의 수작업으로 Lighting 설정한다.
  • 58. 시작은 Valve에서 Irradiance Volume라는 간단한 방법으로 시작 디자이너에 의해서 음영의 의도적인 연출이 가능하게 됨 Irradiance Volume의 장점이자 단점은.. Irradiance Volume
  • 59. 하지만 Irradiance Volume은 손이 너무 많이 감. 좀 더 개선된 방법이 Hemisphere Lighting 간단히 말하면 하늘색과 지면의 색을 설정해서 반구 모델을 만들고 Surface Normal을 계산으로 -디자이너 일을 줄임 -연산 비용에 비해서 효과가 크다. Irradiance Volume개선
  • 60. 추가 개발한다면 동적으로 변화 할 수 있는 시스템도 만들 수 있을 듯 – 지형은 재질이 다르고 재질에 따른 반사광 의 색도 다르니깐.. 아이디어
  • 61. Spherical Harmonics | Light | Diffuse Lighting | Ambient Lighting | Light Mapping Global Illumination에 대한 렌더링 방정식은 모든 방향에 대해 적분을 해야 함으로 컴퓨터로 계산하기가 힘들다. PRT 및 SH.. 이에 대한 해결책으로 Spherical Harmonics Lighting이 제안됨
  • 62. From IBL 큐브맵을 가지고 Global Illumination을 흉내 낸다 현재까지 알려진 것들 중 가장 값싼 방법 Spherical Harmonics | Light | Diffuse Lighting | Ambient Lighting | Light Mapping Image Based Lighting SH
  • 63. - 환경의 평균적인 큐브맵을 사용하거나 사용해야 어색하지 않았다. - 환경에 따라 큐브맵을 교환하면 실시간 GI를 흉내 낼 수 있겠으나, 현실적으로 자연스럽게는 어렵다. 구현경험 큐브맵을 이용한 SH는 너무 정적이라 실용성이 있을까?란 의
  • 64. From Point CloudsSpherical Harmonics | Light | Diffuse Lighting | Ambient Lighting | Light Mapping Point Clouds SH 캐릭터나 차량같이 움직이는 Prop에 대해서는 격자로 된 Point Clouds SH를 미리 만들어서 대응하게 하면 됨
  • 65. 구현경험 먼저 [동적]물체를 위한 SH계수를 어떻게 얻을까 마야를 뜯어보자 터틀, 브이레이 분석 일단 터틀 SH 데이터 구조 먼저 파악한 뒤 터틀을 이용해 SH를 배치하고 베이킹하여 XML로 뽑아서 그걸 엔진 내에서는 옥트리 형태로 관리 옥트리 노드에 있는 Prop에 해당 SH데이터를 적용시킴
  • 66. 구현경험 그럼 [정적]물체를 위한 SH계수를 어떻게 얻을까 정적 물체들은 그냥 SkyLab이라는 하는 처리자를 따로 만들어서 SH를 생성하시고 적용시킴 스카이를 Render Target으로 따와서 걍 SH데이터로 바꿔 처리시킴
  • 69. 실시간 Shadow기법이 발전했지만, Light Map은 여전히 게임 분위기를 좌우하는 큰 요소 Light Mapping
  • 70. Directional Light maps | Light | Diffuse Lighting | Ambient Lighting | Light Mapping 방향성을 가지는 Light map Valve가 개발 라이트 맵에 노멀 맵을 표현할 수 있는 방법을 찾을 수 있을까? 아이디어:
  • 71. Diffuse 만으로 게임 내 빛이 닿지 않는 부분은 보이지 않는다 하지만 실제 환경은 수 많은 반사광이 존재함 실제 Light는.. 반사광이 있고 없고의 차이.. Image From Unreal3Image From Unreal3
  • 72. Directional Light map은 반사광을 시뮬레이션하기 위해 개발 됨. 즉, Direct한 빛 외에 반사되는 빛에 의한 Normal을 추가로 표현 하는 것이 목적 Light Map의 목적
  • 73. 이전 Spherical Harmonics Ambient를 사용 할 수 없다면 아마 이게 유일한 주변광 라이팅일듯. Light Map의 목적
  • 74. Source 엔진에서 처음 사용 현재, Source,Unreal3등 여러 엔진에서 보편적으로 사용 다른 게임에서 사용 예
  • 75. Metal Gear用 Fox Engine에서의 Directional Lightmap의 설명 다른 게임에서 사용 예
  • 76. 전통적으로 3방향의 라이트맵이 필요하 언리얼3와 같이 x,y축 2장의 라이트맵을 사용 위의 그림은 라이트맵만 출력한 상태 (빛이 없어도 노멀맵이 표현된다) 구현 Directional Light maps 적용
  • 79. Lightmap Calc Method | Light | Diffuse Lighting | Ambient Lighting | Light Mapping Artrmouse 노출이라는 개념을 첨가 라이트맵의 전통적인 계산 방식과는 다른 새로운 방법론을 만들고 싶었다 라이트맵을 텍스쳐의 개념보다 라이팅의 개념으로 더 보고 싶었다
  • 80. Modulate Modulate 2X Modulate 4X 보통 Diffuse Map과 Light Map을 Modulate해서 나타내는데.. 이 방법은 Light Map이 칙칙해지는 단점이 있다 Traditional Light mapping 비 오는 날씨 같은 느낌. Modulate할 수록 색은 양극화 된다
  • 81. 개선 방향 Light Map 개선하기 위해 낮은 주파수 영역, 높은 주파수 영역을 각자 연산 아티스트가 일부 수정 가능하게 파라미터로 일부 제공
  • 82. Use Diffuse Lighting Diffuse Lightmap Generate Flow Use Ambient Lighting Ambient Lightmap GenerateExpourse Ligthtmap (8bit Alpha) Artmouse Light mapping 노출 정도를 맵으로 표현해서 라이트맵의 알파채널에 넣는다(픽셀당 8비트 사용) 노출 맵과 노출 계수를 홗용하여, 주변광과 직접광 라이트맵을 만들고 라이팅 계산을 한다 색 공간 계산 대싞,감마계산을 홗용하여, 이젂에는 불가능 밝기를 실현할 수 있다
  • 83. Exposure = 1 Exposure = 2 Exposure = 3 구현 ambient light map
  • 84. Exposure = 1 Exposure = 2 Exposure = 3 밝은 색 영역만 추출(HDR 톤 맵핑과 유사) 버텍스 노멀과 빛 방향의 외적과 연산 구현 diffuse light map
  • 85. 구현 결과 최대한 중간 톤을 지키면서도 밝은 곳은 밝게 어두운 곳은 연하게 또는 강하게 조절 할 수 있었다. Modulate 4X
  • 86. 엠비언트 라이팅의 색과 디퓨즈 라이팅의 색을 다르게 준 예 구현 결과
  • 87. 하지만.. 여전히 A급 Light Map 얻는데 실패
  • 88. Light Map Beast, Unreal Light-mass의 수준에 도전해보자
  • 89. RGB채널당 16비트 혹은 32비트 float형 값을 가짐 OpenEXR이나 HDRI 포멧으로 저장 RGB채널당 0~255의 단계를 저장하거나 그 이하의 단계를 가짐 32,24비트 TGA나 16비트 DDS로 저장 Baking Light map in DCC LDR Light map Baking Light map in DCC HDR Light map HDR Light map 그런데 걍 HDR로 Light map을 만들게 되면 Light map 한 장에 수백메가..
  • 90. RGBM HDR Light map | Light | Diffuse Lighting | Ambient Lighting | Light Mapping 장점: 많은 색 영역을 확보할 수 있다 단점: 용량이 많다. 비디오 메모리에서 DXTn처럼 압축지원을 받지 못한다 HDR Light map 해결책? “RGBM Light map” PS3의 적은 메모리 덕분에 많은 연구가 진행되어 나온 결과물 중 하나..
  • 91. 전용 프로그램으로 OpenEXR에서 인코딩되며, 다른 방법보다 단순한 방법으로 Shader에서 디코딩됩니다 RGBM Format DXT5의 RGB 채널에 LDR 칼라 값을 알파채널에 휘도 값을 저장합니다 RGBM 공정 Vray or FinalRender HDR 라이트맵 베이킹 OpenEXR 포멧으로 저장 인코딩 프로그램으로 DXT5로 변홖 디코딩 In PixelShader
  • 93. RGBM Light Map의 아쉬운 점 : 명암 차이를 내기 쉽지 않다 구현 시 문제점
  • 94. 또 수정 RGBM+Artrmouse Ex Method 노출정도를 편리하게 편집가능 Artmouse Exposure Method
  • 98. 상용 Lighting엔진 Beast와 비슷하게 구현 최종 구현
  • 99. Light | 그리고 또 뭐 하면 좋은게.. | Diffuse Lighting | Ambient Lighting | Light Mapping WYSIWYG 기능 제공 1. 라이팅 모델 2. 스킨 쉐이딩 3. 라이트맵 에디팅 4. Decal,Emissive맵등 편집 5. 블렌딩 기능 편집 기능을 제한한 3D 컨텐츠 용 DCC Viewport Shader를 통해, 생산성을 증대시킨다
  • 101. Framework | Lighting Solution | Manet | SkyLab | Re-Construction of Color Pipeline | Building Emissive Glow Pipeline Graphics Framework Manet : Lighting Solution Project 인상파의 대표적 화가의 이름에서 프로젝트 명을 따옴 리소스 파이프라인에서 데이터를 받아 게임환경을 처리하고 전달. 최종적으로 Shader로 표현해주는 가장 Core한 Framework [Ambient Lighting과 Direct Lighting 정보를]
  • 102. Manet [Lighting Solution]이 해야 될 일 Module간 Connecting 기능 Asset관리 기능 환경 관리 Post Processing Special Effect
  • 103. Point Cloud Octree Based SH Basis Composite value for Sun and Ground Pre-Baking SH From Turtle Maya Sun Ray form SkyDome Ground Ray From Lightmap (아직 결정되지 않음) Shader Manet Graphics Framework Manet 구조 Dynamic SH GI SkyLight And Indirect Ground Lighting(개발 예정) SunRay(개발 예정) …… 우리는 대략 이런 식으루 구현 함
  • 104. Manet특징.. Dynamic SH GI데이터를 옥트리 형태로 가지고 있다. Unreal 3 & Enlighten
  • 107. Manet Test Build 2012-07-05 SH 처리.. Dynamic SH GI 처리 형태
  • 108. Lighting을 계산 할 때 Sky, Land의 영향이 중요하다. 주변 환경 Lighting 처리..
  • 110. Framework | Sky Process | Manet | SkyLab | Re-Construction of Color Pipeline | Building Emissive Glow Pipeline Atmosphere Env.Solution 대기 환경을 시뮬레이션하기 위해 만든 Framework 레일리 산란, 미 산란을 이용해 물리 기반 대기 Scattering을 처리 간단한 태양 처리
  • 111. Shader Manet Graphics Framework Shader SkyLab Process Sky SH Lighting Process Land Scattering Process LensFlare Effect Sky-Dome Parameter Atmosphere Shader SkyLAB 구조 진보된 스카이 ,지형 스케터링 하늘에 관련된 효과(구름의 스크롤,밤낮 구현등) Manet과 연동-Sky Light를 Manet에 연결해줌 Sun Shaft/God Ray(개발 예정)
  • 112. Basic Sky Scattering SkyLab의 구면 하늘 셰이더는 레일리,미 산란,파라메터와 구의 반경, 공기 층의 두께,노출 및 여러 가지 파라메터를 통해 결정된다
  • 113. Blend Clouds Layer | 블랜딩을 하지 않은 구름 레이어 | 수치로 조젃 가능한 블랜딩 영역을 계산 | 블랜딩 영역으로 블랜딩한 구름 레이어 구름의 경우 절차적으로 구름을 생성하는 방식이 있지만 아티스트가 그린 구름의 퀄리티를 따라 올 수는 없다. 하지만 너무 정적인데, 동적으로 할 수는 없을까? 노이즈 맵을 만들어서 구름의 수증기양을 알파값으로 조절함
  • 114. Dynamic Shape Transform 구름의 가장자리 부분이나 수증기가 적은 부분은 때때로 나타났다 사라졌다 하며, 이것은 하늘을 동적으로 변화시켜 심심하지 않게 해준 노이즈 텍스쳐가 필요하며,이것을 구름젂체 이미지와 반응시키짂 않는다 구름 농도에 상관없이 반응시킨다면, 촌스러워지며 현실감이 떨어짂다
  • 115. Dynamic Shape Transform 옅은 부분의 모양이 조금 변한 것을 볼 수 있다 스크린 샷으로는 잘 안보이니 뒤에서 동영상으로...
  • 116. Silver Lining 구름이 태양의 인접 구역에 가면 구름 외곽이 밝게 변하는 현상 실버 라이닝을 구현한 엔짂들이 많지 않다
  • 117. Silver Lining 구현 구름 레이어의 알파를 이용하여 구름 이미지의 외곽선을 추출
  • 118. Silver Lining 외곽선과 Mie Scattering과 계산함
  • 119. Silver Lining 합성: Sliver Lining 수치로 자연스럽게 조절 가능
  • 120. 태양위치에 따른 구름 색 변 [시간] 밤, 아침까지의 구름의 색 자동 변경
  • 121. Support Time of Day MMORPG프로젝트라면 Night에 대한 로직을 강화 현재로써는 Star 텍스쳐를 블랜딩 하는 것까지..
  • 122. Support to RT Cubemap And Event SH 렌더타겟으로 하늘만을 큐브맵으로 만든다. 하늘 큐브맵 이미지는 Lighting 계산에서 물이나 Frenel에 사용되고 SH화 된 데이터는 GI Ambient요소에 쓰이게 된다.
  • 123. Support to RT Cubemap And Event SH 물론 실시간은 아니고 이벤트 방식으로 SH계수화해서 사용한다 실시간이 아니기 때문에 정확도는 약간 떨어진다 맵을 로딩하거나 이벤트시간에 SH화 시켜 Ambient Color로 사용함 상수 Ambient Color는 더 이상 사용하지 말자
  • 124. Support to RT Cubemap And Event SH 구현
  • 125. Volumetric Light Scattering on a Highly Animated Scene in Real Time(nvidia GPU Gem3) Support to Light Shafts(AKA Godray) 태양 빛 산란을 만들자 기본적인 이론은 NVIDIA 문서를 참조해서 만들었다.
  • 126. 구현 스크린 공간의 태양 이미지를 방향성을 갖는 좌표 오프셋으로 여러 번 찍는 방식 그러나 어려웠던 점은 Z버퍼도 검사해야 하고 스크린 영역도 판단해야 제대로 된 차폐가 가능하다. 경험적으로 이를 위해 선형 Z버퍼를 사용하는 것이 좋
  • 127. 구현 시 문제점 구름은 이미지인데.. 어떻게 판단할까? 일단 구름을 흑과 백으로 추출한 렌더 타겟을 차폐 텍스처에 더해주는 방식으로 해결
  • 128. 태양을 추출하는 버퍼를 만들어(스크린 스페이스의 ¼크기) 구름 텍스쳐를 일단 차폐하고 뎁스 버퍼에서 추가로 차폐한다 구현 시 문제점
  • 129. Support to Light Shafts(AKA Godray)
  • 131. Framework | 컬러파이트라인의 재구성 | Manet | SkyLab | Re-Construction of Color Pipeline | Building Emissive Glow Pipeline 컬러 파이프라인의 재구성 왜 크라이시스나 언리얼로 만든 게임은 색이 깨끗이 잘나오는데 구세대 엔진에서 만든 게임은 색감이 죽는 걸까?
  • 132. HDR 라이트맵이나 HDR 톤맵핑의 차이일까 이것 말고도 감마 공간에서의 Lighting 계산에서의 차이도 있다
  • 133. 구세대 엔진들 대부분은 걍 선형공간에 대한 개념이 없다 프레임버퍼는 선형 공간에서 계산하고 있는데, 우리가 화면에 보고 있는 최종 결과물이나 텍스쳐들은 감마공간 GPU Gems 3권 24.1
  • 134. 텍스쳐 레벨(감마공간) Lighting and Material Processing(선형공간) HDR Tone-mapping(선형 ->감마 공간) Post Color Processing (감마 공간) 컬러 파이프라인 디자이너가 포토샵으로 만들어 내는 텍스처는 감마가 적용된 텍스처 텍스처를 선형공간으로 바꾼다. Lighting 계산은 모든 이미지가 선형공간에 있다고 판단하고 계산 감마 보정을 하는 이유는 주어진 대역폭 내에서 최대한의 화질을 보여주기
  • 135. 컬러 파이프라인하다보니 문제가 있었다. 선형공간에서 RGBM의 라이트맵 색 영역을 32Bit 버퍼가 버티질 못하고 손실.
  • 136. 컬러 파이프라인하다보니 문제가 있었다. 선형공간에서 Color Grading을 했는데, Color값 손실 발생
  • 137. 컬러 파이프라인 이렇게 해결 했음 텍스쳐 레벨(감마공간) Lighting and Material Processing(선형공간) HDR Tone-mapping(선형 ->감마 공간) Post Color Processing (감마 공간) 렊더 타겟을 16F포멧으로 순서를 잘 지켜야 한다
  • 138. 결과 컬러 파이프라인 문제점 수정하고 그 실패 성공
  • 139. Light Framework Post Processing | Building Emissive Glow Pipeline |
  • 140. Framework | Lighting Solution | Manet | SkyLab | Re-Construction of Color Pipeline | Building Emissive Glow Pipeline Atmosphere Env.Solution 발광 텍스쳐를 추룰해서 렌더타겟에 그리고 블러링해서 합성하는 과정 아름다운 예광탄이나 이펙트를 만들고 싶었다.
  • 141. Glow Pass HDR상에서 일정한 LDR 이상의 컬러는 어느 정도의 Emissive의 효과 얻을 수 있으나,실제적으로 특정적이고 한정된 범위를 조절하기 어렵 원하는 곳에 블러링을 하고 싶어서 Glow Pass를 만들었다. Image From Unreal3 Image From Unreal3
  • 142. Building Emissive Glow Pipeline MRT ColorOut Value 추가 MRT 버퍼 추가 ½사이즈 Normal Emissive Glow Lens Flare Emissive Glow Post Process Glow Blur LensFX
  • 143. Emissive Texture에 일반 이미시브, 렌즈 플레어 이미시브를 나눈다(기준 알파 값의 유무) Emissive Glow Pass
  • 144. 이미시브 텍스쳐 전체를 렌더링 Normal Emissive Glow Pass
  • 145. 구현하고 싶었던 것 Anamorphic Lens Flare Effect 와일드 스크린 영화에 맞게 고안된 렌즈가 Anamorphic Lens이며 그 렌즈에 flare가 나타나면 독특한 형태를 띄게 된다
  • 146. 구현하고 싶었던 것 스타트랙,트랜스포머등 영화에서 주로 사용되며, 게임엔진에서는 Cysis2,3가 대표적으로 지원한다
  • 147. Implement of Anamorphic Lens flare LensFX용의 이미시브의 추출된 패스(알파값으로 추출해서 렌더링)
  • 148. 아직 AfterEffect와 같은 툴을 사용한 CG에 부합되진 않는다 Implement of Anamorphic Lens flare
  • 149. 이미시브의 가중치를 만들어서, 각 이미시브의 가중치가 다르므로 Flare의 길이도 다르게 줄 수 있다 Implement of Anamorphic Lens flare
  • 150. 최종 구현 Full Emissive Glow Pipeline(Basic+LensFX emissivePass) + Anamorphic Lesn flare + Chromatic Aberration Lens Effect
  • 152. Screen Space Effect Post Processing Screen Space Ambient Occlusion Screen Space Sub Scattering Screen Space Decal Screen Space GI ETC.. 이미지 포스트 프로세싱 이펙트로 아래 내용을 써보니깐 괜찮았다.
  • 153. 장점 화면 중심으로 효과를 처리하기 때문에, 질 좋은 효과를 빠르게 표현 할 수 있다 단점 RenderToTexture를 기반으로 하기 때문에, 메모리를 많이 소모한다 Deferred Rendering 방식이 아니면, 사용이 거의 불가능하다 장단점
  • 154. 최근의 Screen Space Effect는 많은 부분이 Deffered Rendering의 요소인 Screen Surface Normal과 위치 그리고 선형 z버퍼를 이용 구현
  • 155. Crysis Screen Space Effect가 다른 게임에서 쓰인 사례
  • 156. Gears of War2 Screen Space Effect가 다른 게임에서 쓰인 사례
  • 157. Deferred의 시작 ViewSpace Normal Surface Normal 게임브리오 2.X 버전은 Deferred Rendering이 지원되지 않는다!!!!
  • 158. SSAO Vew-Space Normal, Position Map/Depth Map 지원을 받아 SSAO구현
  • 159. SSAO SSAO 적용 중첩되는 오브젝트가 있을 경우 함몰된 부분이 광원효과를 덜 받게 된다.
  • 160. Screen Space Global Illumination 스크린 스페이스에서 모든 물체가 발광한다 전제한다. 스크린 노멀과 뎁스 버퍼를 이용해 프레임버퍼의 컬러를 계산
  • 161. Screen Space Global Illumination SSGI 적용 화면상에 나타나 있는 모든 오브젝트들은 빛을 반사하여 발광
  • 162. Screen Space Global Illumination SSGI는 프레임버퍼의 색을 스크린 서페이스 노멀을 사용해 인접된 색을 섞어줍니다 SSGI 적용
  • 163. HDR Tone mapping Post Processing Tone Mapping은 엔진을 개선하는데 있어서 가장 중요하게 여겨지는 요소 중 하나 HDR Image 를 모니터로 표시하기 위해 출력 가능한 휘도 범위의 LDR(0~255) 로 바꾸는 과정입니다
  • 164. Linear Tone Mapping의 단점은 색 영역의 제한이 생긴다 경험상 추천 하는 방식은 Reinhard 방식과 Filmic 방식의 톤 맵핑의 혼합방식입니다 DirectX와 GameBryo가 대표적으로 Linear Tone Mapping을 채용
  • 165. Tone Mapping 비교 Reinhard’s 방법으로 Color영역을 더 많이 지킬 수 있 Linear Tone Mapping Reinhard’s Tone Mapping Gamebryo (MidKey:0.72, BloomScale:0.5*0.5, Dlight Mul:100) Gamebryo (MidKey:1.0, BloomScale:0.5*0.5, Dlight Mul:100) UnitedHDR (MidKey:0.72, BloomScale:0.5*0.5, Dlight Mul:100) UnitedHDR (MidKey:1.0, BloomScale:0.5*0.5, Dlight Mul:100)
  • 166. 그런데 어째 좀 어두웠다. 그래서 Filmic Tone Mapping의 추가 채택 영화에서 사용하는 필름 커브를 이용합니다 Uncharted 2에서 처음 개발CryEngine 3.4.0 버전에 채택 Image From Uncharted Image From CRY ENGINE
  • 167. + Filmic 방식 Reinhard 방식 Reinhard 방식 + Filmic 방식 Reinhard 방식
  • 168. + Filmic 방식Reinhard 방식 Linear Tone 색이 날아가다 Reainhard Tone 색은 지키는데 밝은 곳이 밝은 느낌이 아니다 Reainhard + Filmic 색 영역을 지키면서 밝은 곳은 밝게, 암부도 단계가 풍부하다
  • 169. Color Grading Post Processing Image From Unreal3 영화에서는 후반 색 보정은 당연하게 사용
  • 170. Look Up Texture 를 이용한 Color Grading은 Post Effect로서의 색 보정 역할 뿐만 아니라 개별 사물이나 캐릭터에도 적용이 가능 Actor의 Shader Code마지막에 Look Up Texture 관련 함수만 적용해주면 완성 게임에서는 Look Up Texture를 이용해서 빠르게 적용합 기본 텍스쳐는 RGB값을 컨버팅한 UV좌표에 정확히 자기의 Color를 가지고 있는 상태
  • 171. 추가 텍스쳐 제작 없이도 Look Up Table만 만들어 놓으면 다양한 색의 사물이나 몬스터, 이펙트를 다량으로 생성할 수 있 대량 생산도 가능
  • 172. Valve 방식 소스 엔진의 경우 헤머 툴에 포함
  • 173. 룩업 텍스쳐는 포토샵으로 작업해도 되지만 베가스나 에프터이펙트로 작업을 하는게 효과적 게임 환경 구석구석을 돌아다니면서 맞춰야 하니깐 다른 툴 이용
  • 175. Bleach Bypass Post Processing [라이언 일병 구하기] 을 통해 대중에 알려진 필름 기법
  • 176. Bleach Bypass 낮은 채도와 강한 콘트라스트로 인해 실사보다 더한 샤프니스가 두드러진다
  • 177. 컬러 무드등 여러가지 컬라 조정기능 In Game Bleach bypass = 0.0 Bleach bypass = 1.0
  • 178. Bokeh DOF Without VTF Post Processing 카메라로 Depth Of Field를 적용하면 렌즈에 따라 Bokeh가 발생합니다
  • 179. Bokeh DOF 게임 브리오에서 제공하는 선형 DOF는 차세대에서 쓰기 좀 그렇다
  • 180. 버텍스 펫치를 쓰지 않고도 Bokeh를 지원한다 포커스는 기본 스크린 서페이스의 중심이며, 포커스 영역을 지정할 수 있다 구현
  • 182. Pseudo Lens Flare Post Processing Image From BattleField3(EA,DICE) 태양이나 라이트의 렌즈 플레어는 전통적으로 게임의 환경을 꾸미는 역할을 담당
  • 183. VS 구현 방식 비교 스프라이트 기반 렌즈 플레어 -명시적으로 배치 할 수 있다 -언제나 정적인 모습으로 비현실적으로 보인다 물리 기반 SS 렌즈 플레 어 -비용이 스프라이트 기반 렌즈 플레어에 비해 비싸다 -현실적이고도,이미지와 복합적으로 사용 할 수도 있다
  • 184. Downsample + 임계 값 Flip horizontally + vertically 수평 뒤집기 + 수직 Generate lens flare features 렌즈 플레어 기능을 생성 Upscale + modulate with a 'dirt' texture + blend with original image 고급 +는 '흙'질감으로 조절 + 조화를 원본 이미지와 함께 구현 방법
  • 185. Add Chromatic Halo Ring Add Dirty Lens Surface 영상
  • 186. Anti Aliasing Post Processing 지금까지 구현된 것은 루카츠아츠에서 드미트리기 제안한 DL MSAA를 지양하고 Shader AA를 구현한다 FXAA
  • 187. Directionally Localized Anti-Aliasing Post Processing 다른 관점에서 안티 알리아싱 (GDC 2011 Dmitry Andreev, LucasArts)에서 소개 가로 세로 높은 주파수의 엣지를 샘플링 하여 블러링 한다
  • 188. 자신의 방향성을 따라 Blur 된 Edge 아이디어
  • 190. Optimizing Section Post Processing GameBryo Default Shader 보다 훨씬 많은 일들을 하고, 고급 조명효과를 제공한다 GameBryo Default Shader 보다 무겁다 Shader Optimizing
  • 191. Shader Optimizing 가장 부하가 심한 라이팅 계산의 Skipping 픽셀 라이팅 스피킹 Vertex Shader에서 기본라이팅을 계산 (대싞 좀 넓은 영역으로) 0.5*N dot L+0.5 라이트맵의 일정 명도 이하의 값과 리얼타임 쉐도우의 영역을 추출 픽셀 쉐이더에서의 라이팅 계 산
  • 193. Diffuse Light 요약 BRDF Wrapped Diffuse Frensnel Transiucency Material Ambient Light Hemisphere Lighting Spherical Harmonics From IBL Spherical Harmonics From Point Cloud Light Mapping Directional Lightmap HDR Lightmap Framework Manet SkyLab Re-Construction of Color Emissive Glow Post Processing Screen Space Effect HDR Tone mapping Color Grading Bleach Bypass Bokeh DOF Without VTF Pseudo Lens Flare DLAA
  • 194. 물리기반 라이팅 모델사 용 결론 정적,동적 SH,Hemi 시스템으로 엠비언트 라이팅 시스템 강화Sub Surface Scattering/ SSSSS 산란기법 사용 최신 라이팅 솔루션에 근접한 라이트맵 구현 마네,스카이랩등 미들웨어급 프레임 웍 구현 으로 모듈간 연결 고리 구축부분적 디퍼드 시스템 채용과 컬러 재 구 축,HDR톤 맵핑 구축으로 인한 차세대 컬러 구현
  • 196. References Wrap diffues : http://blog.stevemcauley.com/2011/12/03/energy-conserving-wrapped-diffuse/ http://engineroom.ubi.com/energy-conserving-wrapped-diffuse/ Normal Map : http://www.ozone3d.net/tutorials/bump_map_compression_p5.php http://www.valvesoftware.com/publications/2007/SIGGRAPH2007_EfficientSelfShadowedRa BRDF : Background: Physically-Based Shading (Naty Hoffman): http://renderwonk.com/publications/s2010-shad Practical Implementation of Physically-Based Shading Models at tri-Ace (Yoshiharu Gotanda): http://rend Crafting Physically Motivated Shading Models for Game Development (Naty Hoffman): http://renderwon Physically-based lighting in Call of Duty: Black Ops: http://advances.realtimerendering.com/s2011/Lazaro Microfacet Models for Refraction through Rough Surfaces:http://www.cs.cornell.edu/~srm/publications/E http://www.rorydriscoll.com/2009/01/25/energy-conservation-in-games/ http://seblagarde.wordpress.com/2011/08/17/hello-world/ SH : http://developer.amd.com/media/gpu_assets/Tatarchuk_Irradiance_Volumes.pdf http://www2.ati.com/developer/gdc/D3DTutorial10_Half-Life2_Shading.pdf
  • 197. References Directional Light map : http://www.decew.net/OSS/References/sem_ss06_07-Independant%20Explanation 기타 : http://maddieman.wordpress.com/2009/06/23/gamma-correction-and-linear-colour-space-simplifi http://www.slideshare.net/leemwymw/gamma-and-linear-colorspace
  • 198. 기술 구현 및 협력 버티고우 게임즈 고경석 책임연구원 artmouse@hotmail.com http://twitter.com/artmouse_ko