73
필드에 빛을 입히다. Lightmapping Yi SangYun unity3D 엔진을 통해 알아보는 lightmapping Ver 2.5

Devtree lightmapping unity5_2_1stday

Embed Size (px)

Citation preview

Page 1: Devtree lightmapping unity5_2_1stday

필드에 빛을 입히다.

Lightmapping

Yi SangYun

unity3D 엔진을 통해 알아보는 lightmapping

Ver 2.5

Page 2: Devtree lightmapping unity5_2_1stday

- Contents -

1일차 - Lightmapping의 기본 개념의 이해

- Unity3D lightmapping Menu의 이해와 용어의 이해 (Unity 4-5 ) - Light의 종류와 활용 - Unity Surface Shader의 이해

- 간단한 Lightmap 작성 실습(3D 오브젝트를 배치한 레벨 구성)

Page 3: Devtree lightmapping unity5_2_1stday

2일차 - 전일 내용에 대한 복습 및 Surface shader의 이해

- 공간 연출에 있어서 조명의 역할 - scene 연출을 위한 lightmapping 실습 (예제 scene을 활용한 scene 구성) - Lightmapping UV 작업을 위한 Tip

Page 4: Devtree lightmapping unity5_2_1stday

3일차 - 전체 Lightmapping 관련 용어 및 복습 - Light / Reflection Probe 의 이해 - Light / Reflection Probe 제작 실습 - Light Probe 활용 예제 살펴보기 - 총정리

Page 5: Devtree lightmapping unity5_2_1stday

1 일 차

Page 6: Devtree lightmapping unity5_2_1stday

Lightmapping의 이란?

정적 메쉬(static mesh : 움직임이 없는 오브젝트)에 배치되어진 빛 경로를 계산하여 원본 texture에 추가

로 덧붙여 화면에 그려내는 방식으로 빛을 표현하는 방법.

Lightmapping Off Lightmapping On

Defense Technica stage 08 for steam

Page 7: Devtree lightmapping unity5_2_1stday

3DS MAX 2nd UV Lightmapping texture Scene

Unity3D에서는 scene 파일이 생성되지 않은 경우 lightmapping texture가 생성되지 않는다. 우선

scene 파일을 만들고 bake 할 것.

Unity 4에서는 Beast Unity 5 부터는 Enlighten 탑재

Page 8: Devtree lightmapping unity5_2_1stday

Lightmapping을 쓰는 이유

3D graphics에서 그림자를 실시간으로 계산할 경우 매 프레임(보통 초당 30-60프레임)마다 계산하게 되어 매우 많은 부하

가 걸리게 된다. 이를 줄이기 위해 별도의 lightmapping texture를 미리 생성해 mesh 내부의 lightmap UV에 이를 덧붙여

그려줌으로써 효율적이면서도 보다 좋은 퀄리티의 Environment art를 구축하기 위해 사용된다.

생성된 lightmapping texture Lightmapping texture(2048x2048) EXR Format. 7.5MB Defense Technica stage 08 for steam

Page 9: Devtree lightmapping unity5_2_1stday

Indirect lighting에 의한 동적 그림자와 lightmapping 결과물의 비교

Indirect lighting

Using lightmapping UDK3 lightmapping 문서

Page 10: Devtree lightmapping unity5_2_1stday

Lightmap texture로써 생성되는 EXR 파일 포맷에 대해.

HDR이미지를 위해 많이 쓰이는 포맷으로 채널당 32비트의 정보량

을 가진다

(일반적인 디지털 이미지인 트루컬러의 경우 채널당 8bit : TGA의

경우 RGB각 8bit 24bit이미지 + alpha 8bit = 32bit)

RAW포맷처럼 넓은 컬러값을 가지기 때문에 빛에 대한 정보를 담

아내기 위한 lightmapping texture로 사용되기 좋은 특성을 가진

다.

실제 태양의 광원은 Luminance(밝기/광도)의 비가 100,000:1까지 나는 경우가 있기 때문에 일반적인

디저털 이미지의 LDR(Low Dynamic Range : 보통 0~255)로는 표현이 불가능하다. 이를 위해

HDR(High Dynamic Range)를 지원하는 이미지 포맷이 필요

16bits FP(부동 소수점) 컬러 컴포넌트를 가지는 HDR 파일 포맷이다.

High Dynamic range와 색상 정밀도가 기존의 8bit 10bit 파일 포맷보다 크다.

Page 11: Devtree lightmapping unity5_2_1stday

Defense Technica Stage 08

Steam Ver lightmap texture

압축되지 않은 lightmap texture

일반 PC/콘솔 버전과 달리 Mobile에서는 ETC 4bit로 압축되기 때문에 실제 적용된 밝기가 PC 뷰포트

에서 보는것과 다를 수 있다. 타겟 디바이스에 빌드 후 느낌을 확인하는 것이 중요~!

Defense Technica Stage 08

Android Ver lightmap texture

Android에서 압축된 lightmap texture

Page 12: Devtree lightmapping unity5_2_1stday

MJT Project Territory01 PC build setting

MJT Project Territory01 Android build setting

동일 texture의 lightmap의 platform별 밝기 변화(Android build setting 기준)

Page 13: Devtree lightmapping unity5_2_1stday

Lightmapping baking이 빠르고 시간대비 괜찮은 수준의 결과를 보여줌.

G.I를 표현하는데 한계가 존재.(Extention plug-in으로 어느정도 해결 가능)

Offset 및 lightmap index 편집이 자유롭기에 외부 lightmap 사용이 편리한 확장성

Unity 4.X – Autodesk Beast

Page 14: Devtree lightmapping unity5_2_1stday

Mode : lightmapping 방식을 결정한다.

Quality : low, high 두가지 옵션이 있으며 이에 따라 FG값이 200,

1000으로 바뀐다. 렌더 시간을 줄이기 위해 low로 전체 분위기를

잡아가면서 최종 라이팅 빌드에서 high로 작업하는 방식을 쓰게

된다. 주로 AO와 shadow 품질에 영향을 많이 준다.

Bounce : 빛이 반사되는 횟수

Sky Light : 필드에 방향에 관계없는 전역 조명 설정과 컬러를 지

정해 줄 수 있다.

Interpolation : 보간 관련 옵션, 빛의 반사에 따른 간접광의 횟수.

높여주면 색의 혼합이 심해지기 때문에 부드러워지나 톤 자체가

제대로 표현이 안될 수 있다.

Lightmapping Menu(unity 4.X)

Page 15: Devtree lightmapping unity5_2_1stday

Ambient Occlusion : 간접광과 간섭광에 의한 음영을 위한 옵션. 이 옵션과

Bounce옵션이 활성화 되어야 G.I가 제대로 lightmapping에서 표현된다.

- Max Distance : 빛이 반사되어 가는 정도를 설정

- Contrast : 명암대비의 강도 설정

LOD surface Distance : LOD가 적용된 프랍의 lightmap baking시 거리를 지

정해주는 옵션.

Lock Atlas : lightmap UV를 고정함. Generate UV 옵션을 체크할경우 바로

앞에 baking되면서 생성된 lightmap UV를 그대로 사용하게 되며 Generate

UV 옵션이 꺼져있을 경우 mesh내부의 lightmap UV를 사용한다. 이 때, Lock

Atlas 체크시에 생성된 lightmap의 해상도를 그대로 사용하게 된다.

Resolution : texels per world unit이라는 말 그대로 픽셀당 사용하게 되는

lightmap의 사이즈를 결정하게 된다. 서브 옵션의 show resolution으로 뷰

포트에서 직접 모자익 텍스쳐로 확인이 가능하다.

Padding : 배치된 lightmap UV의 padding값을 지정해줄 수 있다.

Page 16: Devtree lightmapping unity5_2_1stday

Lightmapping Extended(unity 4.X)

Beat의 확장옵션 사용하기

Asset store에서 무료로 다운로드 가능.

NDC 2015 유니티 정적 라이팅 이게 최선인가요?

유우원님의 slideshare에 잘 정리되어 있습니다.

http://www.slideshare.net/wuwonyu/v05-

48442055

Page 17: Devtree lightmapping unity5_2_1stday

PBS 기반의 Realtime GI. 향상된 lightmapping Quality.

Unreal Engine 및 유명 게임 타이틀(battle field 3등)에 사용된 검증된 미들웨어

Unity 5.X – Geomerics - Enlighten

Page 18: Devtree lightmapping unity5_2_1stday

- 제어할수 있는 옵션이 늘어났다

- 늘어난 옵션만큼 bake time이 오래 걸린다.

- Realtime은 mobile에서 쓸수 있을 것인가?

Unity3D forum image. - Too late and wrose than unity 4

Page 19: Devtree lightmapping unity5_2_1stday

Unity 5의 이슈들

단일 메쉬의 사이즈가 유니티 스케일 약 100x100 사이즈 이상일 경우 lightmap process가 중간에 멈추는

현상이 있음. 프로젝트별 이 기준을 넘어서지 않는 방식으로 제작해야 함.(현재 유니티 코리아를 통해서 위

내용은 전달한 상황)

Page 20: Devtree lightmapping unity5_2_1stday

Gamma color space 영역에서 light probe가 필요 이상으로 밝게 보이는 현상(현재 enlighten의 계산 오

류로 인해 수정중) >> 고쳐진것 같음…

Page 21: Devtree lightmapping unity5_2_1stday

Lighting Menu(unity 5.X)

Unity 5에서는 unity4의 render setting의 항목들이 대거

lighting menu에 통합되면서 lightmapping에서 lighting으로 이

름이 변경되고 scene내의 환경 변수를 대부분 이 menu에서 설

정할 수 있게 되었다.

Environment Lighting : scene의 기본적인 환경을 설정

Skybox : scene에 사용되는 skybox material을 설정한다.

Sun : scene에 배치된 light중 하나를 주 광원(태양)으로 설정

* point light의 경우 방향을 가지지 않지만 주 광으로 설정할 때

는 skybox에서 주 광원의 위치가 변경되는것을 확인 할 수 있다.

Page 22: Devtree lightmapping unity5_2_1stday

Ambient Source : Ambient에 영향을 주는 source를

결정한다.

Skybox : skybox material을 그대로 사용한다.

Gradient : Sky(하늘), Equator(적도), Ground(대지) 색

상을 임의로 지정할 수 있다.

Color : 단색으로 지정(unity4의 옵션과 동일)

Ambient Intensity : 세기를 결정한다.

Ambient GI : Precomputed realtime GI가 활성화된 경우 실시간(realtime)으로 표시할지 cache에 bake된

이후에 보여줄지 결정(baked). Realtime lighting 환경에서만 동작한다.

Page 23: Devtree lightmapping unity5_2_1stday

Ambient Light : 그림자 색상(Unity 4.x)

Render setting에 포함된 Ambient color옵션

암부의 톤을 결정하는 옵션. Fog와 함께 scene

분위기를 결정하는데 가장 중요한 요소.

환경에 따라 빛의 세기와 그에 따른 그림자 값

이 달라지므로 scene concept에 맞추어 조절

해줘야 한다.

또한 Probe light의 영향을 받는 mesh의

ambient color에도 영향을 준다.

UDK3 역시 비슷한 옵션을 조명에서 지정해줄 수 있다.

Page 24: Devtree lightmapping unity5_2_1stday

Reflection source : standard shader(PBR)에 영향을 주는 간접광의 source를 결정한다.

skybox : scene에 설정된 skybox를 사용한다

cubemap : cubemap을 사용한다.

resolution : 사용되는 source의 해상도를 결정한다.

Reflection Intensity : Reflection source의 강도를 결정한다.

Reflection bounces : Reflection source의 반사 횟수를 결정한다

Skybox(Shader) cubemap None(Unlit lightmap)

Page 25: Devtree lightmapping unity5_2_1stday

Skybox shader의 값만으로도 lightmap을 bake한 결과물

Standard shader에서 reflection intensity를 0으로 낮출경우 완전히 검게 화면에 그

려지지만 lightmap만을 사용하는 shader의 경우 lightmap에 GI의 값을 반영해 bake

한 결과를 확인 할 수 있다.

GI baked by skybox(standard) GI baked by skybox(Unlit lightmap shader)

Page 26: Devtree lightmapping unity5_2_1stday

Bake GI(Global illumination)

Unity4의 Lightmapping menu와 유사한 역할을 하는 항목

Lightmap bake를 위해 제어하게 되는 옵션을 포함하고 있다.

Baked Resolution : bake 되는 texture에서 static mesh의 texel per unit size를 결정한다.

Baked Padding : bake되는 unit 간의 간격

Compressed : 필요한 공간을 절감하고 성능을 향상시키는 옵션. Texture compressed option에 영향을

미친다.

Indirect Resolution : 동적 라이팅 환경에서의 resolution 설정(설정값이 precomputed realtime GI 값과

같이 연동되어 바뀐다)

Page 27: Devtree lightmapping unity5_2_1stday

Compressed 옵션 체크에 따른 texture compression의 변화

1024x1024 texture 기준(Compressed 체크 해제시)

PC platform : ARGB 32bit 5.3MB

Android platform : RGB 24bit 4.0MB

1024x1024 texture 기준(Compressed 체크 해제시)

PC platform : DXT5 1.0MB

Android platform : ETC 4bit 0.7MB

Page 28: Devtree lightmapping unity5_2_1stday

Android Texture Compressed 옵션에 따른 texture 품질 비교(512X512)

128kb 0.5MB 0.5MB

1.0MB 128kb 256kb

ETC2 4bit 1 alpha의 경우 128kb. ETC2 format은 OpenGL ES 3.0을 지원하는 경우에만 사용 가능

Page 29: Devtree lightmapping unity5_2_1stday

Ambient Occlusion : 간접광과 간섭광에 의한 음영을 위한 옵션. 이 옵션과 Bounce옵션이 활성화 되어야

G.I가 제대로 lightmapping에서 표현된다.

- Contrast 옵션이 사라지고 A.O 자체를 제어하는 바로 변경. 기존과 같이 AO의 강도를 결정한다.

- Max Distance : 빛이 반사되어 가는 정도(길이)를 설정

Max distance 옵션에 따른 AO 강도의 변화

Page 30: Devtree lightmapping unity5_2_1stday

Final Gather(FG) : FG를 사용할 것인지 체크한다.

Ray count : FG 연산에 필요한 광원의 수를 결정한다. 4에서 low, high로 조절하는 옵션이 사라지고 직접 수

치를 입력하는 방식으로 변경(low 200, high 700-1000권장)

Unity 4에서 Final Gather 옵션 조절 항목

Page 31: Devtree lightmapping unity5_2_1stday

Global illumination

오브젝트간의 반사, 굴절, 그림자와 같이 다른 오브젝트에 의해 반사되거나 투과, 굴절해서 오브젝트 표면에

영향을 미치는 빛에 의한 결과들을 만들어 내는것. 흔히 전역 조명이라 하며 local illumination의 반대 개념

으로 생각하면 된다.

사용되는 알고리즘은 Ray tracing이나 Radiocity, Final Gather Rays등이 있다.

Radiosity : 제한된 빛의 경로를 추적하여 빛 역시 에너지의 일부로서, 거

리에 따라 감쇄된다는 점을 이용하여 소멸되는 빛은 계산에서 제외하여

계산량을 줄여 표현하는 방식.

Photon Map을 이용한 Ray Tracing

Page 32: Devtree lightmapping unity5_2_1stday

Final Gather : 카메라 뷰를 기점으로 빛의 산란을 표현하며, 오브젝트에 가리거나 카메라 뷰에서 보이지 않

는 빛의 산란을 계산하지 않는다. 빠른 렌더링 시간과 더불어 Photon mapping(Mental Ray에서 사용되는 GI

알고리즘)과 비슷한 효과를 내기에 독립적으로 사용되기도 하지만 사실적인 빛의 산란을 계산하는 photon

mapping과 함께 사용되어 각각의 단점을 보완하는 형태로 사용되기도 한다.

Ray per FG Point : 빛의 값으로 간접광을 계산하는데 이 수치를 말한다. 빛의 양이 많을수록 빛이 융합되면

서 보다 부드럽고 사실적인 간접광이 된다.

Interpolation Points : 입력된 거리만큼의 FG Pint 사이

의 평균값을 내어 결정된 색상값을 간접광으로 표현하는

것. 주변의 빛과 색상에 대한 평균값을 결정하는 것이기

때문에, 노이즈가 많은 씬에서 값을 높여주면 색상값이

스무딩 되므로 노이즈가 제거된 깨끗한 이미지를 얻을

수 있으나 지나치게 높일 경우 오히려 스캔라인처럼 이

미지의 선명함을 해칠 수 있다.

Page 33: Devtree lightmapping unity5_2_1stday

Directional Mode : 기존의 lightmapping mode가 변경. Dual lightmapping이 빠지고 Directional specular

모드가 추가되었다

• Non directional(Single lightmapping) : 가장 기본적인 lightmap baking 방식. 추출된 Texture를 해당

texture에 입힘으로써 조명 연산에 대한 부하를 줄여주는 가장 기본적인 방식. 가장 가볍고 빠르게 굽힌

다. 단점은 역시나 심플하기 때문에 음영과 컬러를 표현하는 정도만 가능.. 가장 많이 쓰이고 널리 쓰인다.

• Directional(Directional lightmapping) : 하프라이프에서 선보였던 lightmapping 방식으로 라이트 맵 생

성시 한장의 라이트 맵과 한장의 노멀 라이트 맵이 생성된다. 즉, 빛을 받는 부분에 대한 노멀에 대한 그

림자까지도 표현하기에 보다 사실적이고 풍부한 라이트맵을 만들 수 있다.

General GI : lightmapping 방식을 결정한다

Page 34: Devtree lightmapping unity5_2_1stday

LightmapColor-0.exr LightmapScale-0.exr

• Directional Specualr : bake된 lightmap에서 shader상의 specular가 표시된다.

Page 35: Devtree lightmapping unity5_2_1stday

Indirect Lighting에서의 결과 비교

Light mapping에서의 결과 비교

Page 36: Devtree lightmapping unity5_2_1stday
Page 37: Devtree lightmapping unity5_2_1stday

Fog : scene에 쓰이는 안개를 설정한다.

Page 38: Devtree lightmapping unity5_2_1stday

Indirect Intensity : Scene내에 배치된 모든 라이트의 계산의 총합에 영향을 미칩니다(Bounce, ambient

lighting, emission등)

Bounce Boost : Scene 내의 빛의 반사된 결과값의 세기(정확히는 표면에 반사되어 합쳐지는 Albedo값의

밝기)를 결정합니다.

Default parameters : lightmap bake를 위한 설정을 결정한다.

Atlas size : lightmap texture size를 결정한다.

Page 39: Devtree lightmapping unity5_2_1stday

Bounce : 빛이 반사되는 횟수와 반사되는 강도

Bounce : 1, Intensity : 1, boost : 1

빛은 가산혼합 방식으로 계산되기 때문에 반사되는 횟수와 강도가 세질수록 백색에 가까워진다.

난반사가 일어날 경우가 아니면 옵션값 높이는 부분에 대해서는 주의할 필요가 있다.

연산해야 할 정보량 자체가 늘어나기 때문에 렌더시간이 대폭 늘어남.

Bounce를 0으로 둘 경우 빛의 반사가 일어나지 않으므로 Final Gather Rays 옵션이 비활성화 된다

Bounce : 4, Intensity : 5, boost : 4

Page 40: Devtree lightmapping unity5_2_1stday

출처 : forum.unity3D.com. Simple global illumination

Page 41: Devtree lightmapping unity5_2_1stday

Parameters setting을 Create New로 설정시에 임의로 세부 옵션을 지정할 수 있다.

Default-Low Resolution과 Hight의 경우 bake time에서 꽤 차이가 난다. Enlighten으로 바뀐 이후로

체감할 수 있을정도로 시간이 늘어났기 때문에 기초 라이팅 작업에서는 옵션을 낮추어 사용하기를

권장.

Create New를 선택할 경우 세부 옵션을 별도로 지정하여 사용할 수 있다.

Page 42: Devtree lightmapping unity5_2_1stday
Page 43: Devtree lightmapping unity5_2_1stday

Precomputated Realtime GI

실시간 라이팅을 위한 세부 옵션들.

Baked GI

Blur Radius : 흐림반경

Anti-aliasing Sample : 픽셀간의 경계를 부드럽게 처리할

때 샘플로 채취할 숫자를 정한다.

Direct Light Quality : 직선광의 퀄리티

Bake Tag

Pushoff : 원치않는 광원을 밀어내는 수치. AO와 light에 영

향을 미쳐 shadow 품질에 영향을 준다.

Baked AO

Quality

Anti-aliasing Sample

Page 44: Devtree lightmapping unity5_2_1stday

Other settings

Defense Technica Stage 20

Halo : Light가 있는 위치에 Range 범위

에 따라 alpha texture를 그려준다.

빛이 위치하고 있는 위치를 알 수 있는

용도 및 실시간 라이팅에서 효과를 주는

정도로 사용 가능.

(동적 라이팅을 사용하지 않는 scene에

서는 쓸일이 없다)

Halo texture : texture를 지정한다

Halo Strength : halo의 세기를 결정

Page 45: Devtree lightmapping unity5_2_1stday

Shadow : 그림자

Hard Shadow Soft Shadow

그림자 해상도 설정

Low >> Medium >> High >> Very High

퀄리티 옵션이 올라감에 따라 render 시간도 같이 늘어난다.

Strength : 그림자의 강도를 결정한다.

Page 46: Devtree lightmapping unity5_2_1stday

Mesh renderer 항목에 그림자에 대한 옵션을 지정해 주어야

만 scene 그림자를 표시할 수 있다.

Cast shadow : 그림자를 그릴 것인가에 대한 옵션

Receive shadow : 그림자를 드리울 것인가에 대한 옵션

UDK3도 비슷한 옵션을 가지고 있다.

(UDK3의 Domestic light의 property창)

UE4에서는 lightmass color에서 제어

Page 47: Devtree lightmapping unity5_2_1stday

Shadow Angle

Soft Shadow에서 그림자 끝부분의 번짐을 조절하는

옵션

Keijiro Takahashi - shadow angle test facebook posting

Page 48: Devtree lightmapping unity5_2_1stday

Unity 5 Object Menu

Scene filter : Hierachy에 표시되는 오브젝트를 선택한 카테

고리별로 보여준다.

Lightmap static : lightmap에 사용하는 mesh의 설정.

Inspector에서 체크해도 표시된다.

Scale in lightmap : lightmap texture에서 차지하는 면적을

결정. Scene에 배치된 unit scale의 절대값에 영향을 받는다.

Preserve Uvs : 만들어진 라이트맵 UV를 유지합니다.

Important GI : 선택된 메쉬를 GI 계산에 좀 더 강하게 영향을

미침

Advanced Parameters : 메쉬별 parameter 항목을 개별로

지정 할 수 있다.

Page 49: Devtree lightmapping unity5_2_1stday

Unity 4 Object Menu

Scene filter : Hierachy에 표시되는 오브젝트를 선택한 카테

고리별로 보여준다.

Lightmap static : lightmap에 사용하는 mesh의 설정.

Inspector에서 체크해도 표시된다.

Scale in lightmap : lightmap texture에서 차지하는 면적을

결정. Scene에 배치된 unit scale의 절대값에 영향을 받는다.

Atlas : 선택된 mesh가 사용할 lightmap의 번호(Index)와

lightmap에서의 UV좌표(Offset)값을 지정 할 수 있다.

Lightmapping bake 모드에서 Lock Atlas를 체크하고 이 옵

션을 조절하면 원하는 위치에 mesh의 lightmapping을 bake

할 수 있다.(2장이상의 lightmap을 나누어 bake 할 경우와

texture 한장에 모든 UV를 편 경우 사용한다)

Unity5에서는 제어할 수 없다.

Page 50: Devtree lightmapping unity5_2_1stday

Light Probes : baked된 Probe 파

일을 나타낸다.(probe를 bake하지

않았다면 none으로 표시)

Array size : 표시할 lightmap

texture의 수

하단에 bake된 lightmap type과

size, color space 설정을 나타낸

다.

Unity 4 Unity 5

Page 51: Devtree lightmapping unity5_2_1stday

Defense technica stage 26 lightmap texture

Atlas를 고정하지 않은 상태에서 lightmap

을 bake할 때에는 Unity3D가 알아서

lightmap 위치를 결정하게 된다. 이 경우

설정한 resolution을 벗어날경우 면적이

남더라도 무조건 lightmap texture가 한장

추가된다.

따라서 Scale in lightmap과 resolution 설

정값을 조절해 적절히 사이즈를 맞추어 주

어야 효율적으로 bake할 수 있다.

또한, multi-sub로 attack된 mesh의

lightmap UV는 하나의 mesh로 인식한다.

내부 프랍이 잘개 쪼개진 경우 보다 촘촘하

게 baking하기가 수월하다.

Page 52: Devtree lightmapping unity5_2_1stday

Unity 4 Lightmap Display

Unity3D menu에서 Window>>lightmapping Menu를 활성화

시키면 뷰포트 오른쪽 아래에 나타나는 창(lightmapping 창

이 떠있지 않으면 보이지 않는다.)

Use lightmaps : lightmap을 끄고 켠다.

Shadow Distance : 동적 라이팅에서 그림자를 그리는 거리

를 지정해준다.

Show Resolution : lightmap texture에서 차지하는 면적을

check무늬로 표시해준다.

Show Probes : baking된 probe를 보여준다.

Show Cells : probe 사이의 연결을 노란색 선으로 보여준다

Page 53: Devtree lightmapping unity5_2_1stday

Unity 5 Lightmap Display

상단 Baked 메뉴에 Baked 옵션을 선택하

고 Show lightmap Resolution을 체크하면

확인 할 수 있다.

Probe는 scene 배치된 상태에서 확인 할

수 있으며 Cells는 light probe를 사용하는

오브젝트를 선택하면 자동으로 활성 화 된

다.

Page 54: Devtree lightmapping unity5_2_1stday

Lightmapping에 사용되는 광원의 종류

Page 55: Devtree lightmapping unity5_2_1stday

1) Directional light : 한 방향으로 같은 양을 무한대로 투사하는 광선. 쉽게 생각해서 태양광을 생각하면 쉽

다. 방향성을 가지며 배치한 사용자에 의해 방향 및 강도와 색상을 지정할 수 있다.

Image : http://galawana.com

색상, 강도를 통해 scene의 분위기를 결정하는 중요한 조명이다. 주광의 용도로 주로 사용되며

shadow option을 끈 여러 종류의 directional light를 이용해 다양한 연출을 할 수 있다

Page 56: Devtree lightmapping unity5_2_1stday

Image : http://digitalcameraworld.com

Page 57: Devtree lightmapping unity5_2_1stday

Unity3D Directional light

UDK3 Dominant Directional light

Page 58: Devtree lightmapping unity5_2_1stday

2)Point light : 광원의 중심에서 주변으로 퍼져나가는 빛으로 쓰이는 조명

주로 scene의 부가적인 조명 효과와 연출을 위해서 많

이 쓰이며 그외에 특정 영역에 focus를 주기 위해서도

많이 쓰인다.

주광원이 없는 닫힌 공간(던젼, 실내)을 연출할 경우

point light만으로도 연출이 가능하다.

Page 59: Devtree lightmapping unity5_2_1stday

Unity3D Point light

Unity 4.x 대부터 viewport에 지정된 색상이 아이콘에 표시

UDK3 Point light

Page 60: Devtree lightmapping unity5_2_1stday

Defense Technica stage 27 for mobile(1st DLC patch ver). Several Point light + 3 directional light + fog

Unlit lightmap texture shader(do not use illumination shader) + addiitive shader(effect)

Point light를 활용한 scene 분위기 연출

Page 61: Devtree lightmapping unity5_2_1stday

3) Spot light : 방향성을 가지며 range와 spot angle에 따라 조명이 닿는 범위를 지정해 줄 수 있다.

대상에 foucus를 맞추는 scene에 적절히

사용하면 좋은효과를 낼 수 있다.

Page 62: Devtree lightmapping unity5_2_1stday

Unity3D Spot light UDK3 Spot light

Page 63: Devtree lightmapping unity5_2_1stday

Spot light와 point light에 의한 조명 연출의 비교

Page 64: Devtree lightmapping unity5_2_1stday

4) Area light : 오직 lightmap bake에서만 사용할 수 있으며 노란색 실선 방향으로 지정한 색상

을 bake한다. 면적에 대한 lighting을 수행할 경우에만 사용

Page 65: Devtree lightmapping unity5_2_1stday

5) Surface Emission : texture의 컬러값을 그대로 lighting에 쓸 수 있는 light.

Standard shader의 parameter

에서 볼 수 있듯 realtime과 bake

를 지정할 수 있고 지정된 색상을

그대로 lighting으로 사용

Texture에 color값이 포함되어

있을경우 컬러값을 그대로

lighting에 쓸 수 있다.

Shader의 o.emission값만으로는

활성화 되지 않는다.

Page 66: Devtree lightmapping unity5_2_1stday

주광원이 있을 경우와 emssive texture만으로 조명 연출의 비교

뷰포트에서 미리보기는 enlighten에서 지원하는 옵션이기 때문에 precomputed realtime

GI가 활성화 되어야 할 수 있다.

Page 67: Devtree lightmapping unity5_2_1stday

Unity5 shader

Standard shader(Standard specular)의 이해

기존의 specular 방식과 PBS 처리가 가능한 metallic 입력을 받는 shader 두가지를 사용 할 수 있

다.(smoothness로 조절).

Metallica : 0 = non metallic, 1 = Metallic Smoothness : 0 = roughness, 1 = smoothness

Page 68: Devtree lightmapping unity5_2_1stday

Rendering Mode : Opaque, Cutout(Alphatest), Fade, Transparent(Alphablend)

o. Albedo : diffuse texture

o.Specular : specular texture. Smoothness로 intensity 설정 가능

o.Normal Map : normal texture

o.Occlusion : Occulsion texture(A.O map)

o.Emission : emissive texture(Global illumination 설정은 realtime과 bake 로 설정 가능)

Detail mask : Detail texture or blend로 활용 가능. Masking 설정이 가능하다.

Secondary map : Detail or blend로 사용할 texture 및 UV channel 설정

Page 69: Devtree lightmapping unity5_2_1stday

5) 색상에 따른 광도(luminosity) : 시각이 인지하는 색상의 정도에 따른 밝기값은 각각의 다른 밝기

값을 가진다. 이에 따라 scene의 색상값에 따라 조명의 intensity를 조절해줘야 적절한 결과물을

얻을 수 있다.

출처 : PBS roughness guide image

Page 70: Devtree lightmapping unity5_2_1stday

출처 : PBS roughness guide image

Page 71: Devtree lightmapping unity5_2_1stday

출처 : PBS roughness guide image

Page 72: Devtree lightmapping unity5_2_1stday

게임 3D 배경 아티스트 - https://www.facebook.com/groups/3Dbackground/

Page 73: Devtree lightmapping unity5_2_1stday

Yi SangYun(3D Environment / Technical Artist

[email protected]

+82 01 9313 0583

수고하셨습니다 終