4. 이 내용은
엔진을 선택하는 것이 아니라
선택되어진 구세대 엔진을
어떻게, 차세대 신규게임에
적용시키는가에 대한 문제점의 고민입니다
5. 실제 ㈜ 버티고우 게임즈에서 사용하고
있는 GameBryo 2.0~2.6에서의 사례로
구세대 엔진에서의 차세대 그래픽스 기술
을 접목시키는 방법을 살펴보면서
여러분이 가지고 계신 구세대 엔진 혹은
코스트(자금,인력) 때문에
차세대 엔진의 구입이 어려운 힘든 상황에
미력하나마,
참고 자료가 되었으면 좋겠습니다
고경석
6. 인디게임 만들면서
근사한 렌더링 하고 싶었는데,
방향을 찾지 못하는 많은 사람들에게
조금이나마 도움이 되고
작은 경험을 나누는 자리였으면..
발표자 최재혁씨의 개인생각
7. “흔한 게임브리오 엔진을 사용한 게임 스샷.JPG”
본 이미지는 무작위 검색에 의하여 특정게임의 홍보 및 다른 의도가 없음을 알려드
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 개선 작업
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값 강조를 위해
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 방정식
37. 알려진 Specular만으로 표현 할 수 없는
재질이 많기 때문에 사용
Fresnel Diffuse Lighting | Ambient Lighting | Light Mapping
| Light |
보는 각도에 따라서
반사되는 재질이 달라진다.
그리고 모든 물체는 Fresnel을 가진다.
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
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데이터로 바꿔 처리시킴
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의 목적
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비트 사용)
노출 맵과 노출 계수를 홗용하여,
주변광과 직접광 라이트맵을 만들고 라이팅 계산을 한다
색 공간 계산 대싞,감마계산을 홗용하여,
이젂에는 불가능 밝기를 실현할 수 있다
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
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(개발 예정)
……
우리는 대략 이런 식으루 구현 함
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(개발 예정)
113. Blend Clouds Layer
| 블랜딩을 하지 않은 구름 레이어 | 수치로 조젃 가능한 블랜딩 영역을 계산 | 블랜딩 영역으로 블랜딩한 구름 레이어
구름의 경우 절차적으로 구름을 생성하는 방식이 있지만
아티스트가 그린 구름의 퀄리티를 따라 올 수는 없다.
하지만 너무 정적인데, 동적으로 할 수는 없을까?
노이즈 맵을 만들어서 구름의 수증기양을 알파값으로 조절함
114. Dynamic Shape Transform
구름의 가장자리 부분이나 수증기가 적은 부분은 때때로 나타났다
사라졌다 하며, 이것은 하늘을 동적으로 변화시켜 심심하지 않게 해준
노이즈 텍스쳐가 필요하며,이것을 구름젂체 이미지와 반응시키짂 않는다
구름 농도에 상관없이 반응시킨다면, 촌스러워지며 현실감이 떨어짂다
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는 더 이상 사용하지 말자
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. 태양을 추출하는 버퍼를 만들어(스크린 스페이스의 ¼크기) 구름
텍스쳐를 일단 차폐하고 뎁스 버퍼에서 추가로 차폐한다
구현 시 문제점
131. Framework |
컬러파이트라인의 재구성
|
Manet | SkyLab | Re-Construction of Color Pipeline | Building Emissive Glow Pipeline
컬러 파이프라인의 재구성
왜 크라이시스나 언리얼로
만든 게임은 색이 깨끗이
잘나오는데 구세대 엔진에서
만든 게임은 색감이 죽는 걸까?
133. 구세대 엔진들 대부분은
걍 선형공간에 대한 개념이 없다
프레임버퍼는 선형 공간에서 계산하고 있는데,
우리가 화면에 보고 있는 최종 결과물이나
텍스쳐들은 감마공간
GPU Gems 3권 24.1
134. 텍스쳐 레벨(감마공간)
Lighting and Material Processing(선형공간)
HDR Tone-mapping(선형 ->감마 공간)
Post Color Processing (감마 공간)
컬러 파이프라인
디자이너가 포토샵으로 만들어 내는 텍스처는
감마가 적용된 텍스처
텍스처를 선형공간으로 바꾼다.
Lighting 계산은 모든 이미지가
선형공간에 있다고 판단하고 계산
감마 보정을 하는 이유는 주어진 대역폭 내에서 최대한의 화질을 보여주기
135. 컬러 파이프라인하다보니 문제가 있었다.
선형공간에서 RGBM의 라이트맵 색 영역을 32Bit
버퍼가 버티질 못하고 손실.
137. 컬러 파이프라인
이렇게 해결 했음
텍스쳐 레벨(감마공간)
Lighting and Material Processing(선형공간)
HDR Tone-mapping(선형 ->감마 공간)
Post Color Processing (감마 공간)
렊더 타겟을 16F포멧으로
순서를 잘 지켜야 한다
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
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버퍼를 이용
구현
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
170. Look Up Texture 를 이용한 Color Grading은
Post Effect로서의 색 보정 역할 뿐만 아니라
개별 사물이나 캐릭터에도 적용이 가능
Actor의 Shader Code마지막에 Look Up Texture 관련 함수만 적용해주면 완성
게임에서는 Look Up Texture를 이용해서 빠르게 적용합
기본 텍스쳐는 RGB값을 컨버팅한 UV좌표에
정확히 자기의 Color를 가지고 있는 상태
171. 추가 텍스쳐 제작 없이도 Look Up Table만
만들어 놓으면 다양한 색의 사물이나
몬스터, 이펙트를 다량으로 생성할 수 있
대량 생산도 가능
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 고급 +는 '흙'질감으로
조절 + 조화를 원본 이미지와 함께
구현 방법
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톤 맵핑 구축으로 인한 차세대 컬러
구현