• Like
구세대 엔진 신데렐라 만들기 최종본 유트브2
Upcoming SlideShare
Loading in...5
×

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

  • 4,440 views
Uploaded on

 

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
4,440
On Slideshare
0
From Embeds
0
Number of Embeds
1

Actions

Shares
Downloads
141
Comments
0
Likes
23

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

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