unite2015 probelight(150417)

41

Upload: sangyun-yi

Post on 17-Jul-2015

1.468 views

Category:

Software


1 download

TRANSCRIPT

Page 1: Unite2015 probelight(150417)
Page 2: Unite2015 probelight(150417)

를 활용한

모바일 플랫폼에서의

게임 환경 구축

Page 3: Unite2015 probelight(150417)

1. Sample project 및 speaker 소개

2. Light Probes ?

3. How to make light probes

4. Project에서 Light Probes의 활용 예시 및 장점

5. Light Probes 작업에서 주의할 사항

6. 총평 및 전망

7. Q & A

Page 4: Unite2015 probelight(150417)
Page 5: Unite2015 probelight(150417)
Page 6: Unite2015 probelight(150417)

Lightmapping은 scene의 입체감을 주지만 비정적인 오브젝트가 덜

조명을 받지 못하는 문제가 있습니다. 이를 보완하기 위해 scene에

배치된 구체에 빛의 정보를 기록하여 오브젝트에 덧씌워 빛이

있는것 처럼 보여주는 방법입니다. 동적 라이팅에 비해 빠르게

동작하기 때문에 가볍게 쓸 수 있습니다.(unity manual 내용에서)

Unity 4.X 에서는 Pro 버전에서만 사용할 수 있었으나 Unity 5. 버전부터는 버전 제약 없이 사용 가능

Page 7: Unite2015 probelight(150417)

빈 componet를 생성하고 Light Probe Group을 선택하면 Light Probe Group Component가 추가된다.

Page 8: Unite2015 probelight(150417)

Probe가 배치되면 노란색 실선(Cells)으로 각 구체간의 영향을 알 수 있게

나타낸다. (최소 4개가 되어야 동작)

Unity3D 4.x 버전에서는

lightmap display의 show

probes와 Cells를 체크해야

확인 할 수 있었지만,

Unity3D 5.x 버전에서는

probe light를 사용하는

오브젝트를 선택시

자동으로 보여준다.

Page 9: Unite2015 probelight(150417)

Mesh의 Use Light Probes 체크를 해주어야만 사용할 수 있다.

Unity 5에서는 Reflection probes option이 추가되었다

Page 10: Unite2015 probelight(150417)
Page 11: Unite2015 probelight(150417)

Unity5에서는 light probe를 사용하는 오브젝트를

클릭하면 자동으로 활성화 된다.

Page 12: Unite2015 probelight(150417)

Scene bake를 위한 lighting prefab

Probe bake를 위한 lighting prefab

scene bake 결과물에 비해 밝게 나오기 때문에 probe

bake를 위해서 별도의 prefab을 만들어 관리

Probe를 배치한 prefab.

의 관리

Page 13: Unite2015 probelight(150417)

Lightmapping menu에서 Bake Probes 항목이 제거됨으로 다양한 방법을 고심중

Shader에서 albedo 값을 낮춘다던가 light probe만을 위한 lighting으로 baking후

snapshot 파일 합친다던가…

Page 14: Unite2015 probelight(150417)

에서 를 활용한 이유와 장점

Unlit shader를 사용한 고정된 texture 느낌의 scene을 단조롭지 않게 표현 할 수 있지 않을까?

- 50 vs 50의 다대다 전투 컨셉의 게임 디자인에 어울릴 수 있는 방식이라 판단

lightmapping에서 조금만 더 신경을 쓰면 작업할 수 있다(작업 소요가 크지 않음)

- scene을 주-야로 lighting만을 바꾸어서 사용할 경우 같은 배경을 그대로 사용 할 수 있다

- 배경 담당자가 컨셉-모델링-TA까지 해야하는 상황

저사양 모바일 디바이스에서도 퍼포먼스 저하가 크지 않게 구동 가능(Defense Technica에서의 경험)

Page 15: Unite2015 probelight(150417)

Lighting 조절만으로 각기 다른 stage 연출이 가능.

단순히 stage 분위기만 바뀌는것이 아닌 유닛들도

스테이지 분위기에 어울리는 톤으로 보여줄 수 있다.

Page 16: Unite2015 probelight(150417)

주.야 probe 설정에 따른 유닛의 밝기 변화 비교

Page 17: Unite2015 probelight(150417)

Draw call과 batching 포함 최대 1000을 넘는 call이 발생

Skinned mesh가 최대 55 vs 55(말 포함)의 전투

유닛이 말을 탄경우 최대 100 vs 100을 넘는 전투 구현

Page 18: Unite2015 probelight(150417)

Target Device

Samsung Galaxy S3

4.8인치 1280x720(HD)

엑시노스 4412

Quad-core 1.4G, MP4

440MHz

2G RAM

(출시 국가 및 세세한 모델이

따라 스펙 차이 존재)

Android

IOS

Apple iphone 5

4인치 1136x640

A6(Dual Core – 1.3G +

PowerVR SGX543 3 Gpu

cluster)

1G RAM

Page 19: Unite2015 probelight(150417)

다대다(50vs50) 전투가 가능했던 이유

디바이스에 전송 결과 반영 유닛 연산 서버로 전송 결과 산출

Game Art

Character Environment

Effect

UI Game Logict

서버에서 연산의 많은 부분을 처리해주는 구조로 인해 화면에 그려줄 수 있는 코스트에 여유가 생김

타겟 디바이스에 빌드한 Light Probes 테스트에서 무리없이 구동 가능

Page 20: Unite2015 probelight(150417)

다양한 shader를 test

작은 유닛의 표현은 톤을 보완하는 정도로도 효과적인데 크게

나오는 경우는 이 정도로는 아쉽다..

>> Rim Light shader 사용.

Wrap Diffuse와 Lambert 두가지 조명방식중 WrapDiffuse 사용

Page 21: Unite2015 probelight(150417)

작은 유닛의 표현은 톤을 보완하는 정도로도

효과적인데 크게 나오는 경우는 이 정도로는 아쉽다..

>> Rim Light shader 사용.

Page 22: Unite2015 probelight(150417)

좌 : Probe light / Lambert

우 : Probe light + Rim light / Wrapdiffuse

Page 23: Unite2015 probelight(150417)

Light를 사용하는 shader를 사용해야 하며(Unlit

기반 shader에서는 활성화 되지 않는다)

CGPROGRAM의 noambient 파라메터가 있을경우

적용을 받지 못한다.

Page 24: Unite2015 probelight(150417)

단점 및 주의사항

유사 동적 라이팅

- 빛의 방향에 따른 표현은 아쉽다…

- 빛의 색상(톤)과 강도만으로 분위기를 연출할때 보조하는 역할 정도만…

면의 Normal 방향에 영향을 많이 받는다.

- 면이 아래로 향할경우 ambient color가 어둡게 설정 혹은 bake 되었다면 어둡게 표현

- 조명의 채도를 임의로 강하게 주지 않았을때 티가 잘 나지 않는다.(임의로 조절해줘야 함)

Page 25: Unite2015 probelight(150417)

빛의 톤이 변화하거나 음영이 크게 변하는 경우

probe 배치를 보다 밀도있게 해주어야 의도한 빛

변화 및 느낌의 톤을 구현할 수 있다.

Page 26: Unite2015 probelight(150417)

X, Y 축으로 움직이는 오브젝트 보다

Z축까지 3차원으로 움직이는

오브젝트에서 주로 발생하는 문제

갑자기 이유없이 Frame rate가

떨어지거나 유닛이 검게 혹은 깜빡이는

증상이 나타난다.

probe가 유닛 경로에 적절히 배치되지

못해 생기는 문제.

유닛을 cells를 켜서 확인할경우 한 줄만

길게 물리는 것처럼 보인다.

Frame rate drop 증상 외

Page 27: Unite2015 probelight(150417)

Smoothing group을 제대로 설정하지 않았을경우 normal 값에 영향을 받기 때문에 제대로

표현이 되지 않는다.

(면의 방향에 상관없이 모두 smoothing group을 1로 설정한 경우와 Normal과 Tangent 값을 Calculate로 조절한 경우)

Page 28: Unite2015 probelight(150417)

Bake 된 뒤라도 ambient color 값에 영향을 받는다. Light probe bake 이후에 scene에

적합한 ambient color를 조절해줘야 한다.

Page 29: Unite2015 probelight(150417)

Unity5 에서는 Ambient color를 변경해도 bake 된 이후에는 영향을 받지 않음.

Page 30: Unite2015 probelight(150417)

Light Probe를 사용할 경우 Dynamic batching이 적용되지 않는다.

Scene에 그려지는 Skinned meshes 수를 줄이기 위해서 mesh animation으로 만든 말은 light

probe를 받지 않도록 함(scene lighting에 따라 texture를 교체하는 방법을 사용)

영웅유닛용 말

스킨된 메쉬로 구성

Drawcall : 1

Probe light 사용으로 Batching 불가. 최대 scene에 5unit 등장.

병사유닛용 말

Mesh animation 사용

Drawcall : 12

결전맵에서 최대 50unit까지 등장. Light Probes를 사용하지 않음

Page 31: Unite2015 probelight(150417)

유니티 개발자 커뮤니티에 이상원님이 올려주신 스샷

Page 32: Unite2015 probelight(150417)

Linear color space에서는 타는 증상이 좀 덜하게 발생함. 단, mobile platform에서는 linear

color space 항목이 활성화 되지 않음

Page 33: Unite2015 probelight(150417)

Scene baking을 위한 lighting 값을 그대로 사용할경우 원래

좀 밝게 타는 편이지만 unity5에서는 꽤 심하게 밝게 탐.

Albedo 0.13~0.17 사이 값을 shader에서 곱해줬을때 원하는

결과와 유사하게 나옴.

Lightmapping texture 밝기는 4.X대 결과와 동일하게 bake 됨

Page 34: Unite2015 probelight(150417)

실제 육안으로 확인 할 수 있는 구체의 밝기와 scene에서 light probes 에 영향을 받는

Albedo에 곱해지는 값에도 차이가 남.

Page 35: Unite2015 probelight(150417)

Standard specular shader에서는 밝기가 제대로 적용 됨

Standard shader에서 specular는 alpha channel의 값을 적용 받음

>> Mobile platform에서는???

Page 36: Unite2015 probelight(150417)

저사양 디바이스에서도 충분히 구현할 수 있다.(안무겁다~!!)

- 이전 Target device : Samsung Galaxy S2(Android), iphone 4(IOS)

- 현재 Target device : Samsung Galaxy S3(Android)), iphone 5(IOS)

Resource를 제작하는 담당 개발자에게(3D artist) texture 제작에 주의할 부분에 대해 가이드를 마련해 줄 것.

가이드 scene을 제공하면 더욱 좋고 project가 진행된 뒤에는 scene의 light probe 값을 조절.

Shader를 손볼수 있다면 좀 더 다양한 활용이 가능하지 않을까…

Bake probe 메뉴 부활좀….

Light probe를 scene에 종속시키지 말고 독립적으로 작동이 가능하다면 보다 다양한 연출이 가능할것 같은데..

개발을 마무리 한 이후 총평

Page 37: Unite2015 probelight(150417)

사족이지만

Sprite lamp : 2D Dynamic lighting 이 가능하도록

sprite texture의 normal map을 생성(UE4의

imposter와 유사)

2D 게임에서도 라이팅 표현이 가능

Page 38: Unite2015 probelight(150417)

영상

Page 39: Unite2015 probelight(150417)

게임 3D 배경 아티스트(Game 3D Environment Artist)

http://www.facebook.com/group/3Dbackground

Page 40: Unite2015 probelight(150417)

Page 41: Unite2015 probelight(150417)