페이지

2016년 3월 21일 월요일

Lightmapping

Unity Lightmapping



texture : image
shader : 화면에 어떻게 그려줄지를 정의한 코드
material : texture, shader 를 포함하는 것
Lightmapping : 빛을 담아내는
Lightmapping 이유: 실시간으로 삧의 경로를 계산하는 것이 부하를 없애기위해 빛에 비추어진 씬화면을 이미지화 해서 만들어줌.

라이트매핑을 하면 exr 파일 포맷이 생김. 채널당 32비트(rgba) 값을 갖는다.
모든 texture는 설치 플랫폼에 맞게 변환이 된다. 엔진내부에서 게임으로 나갈대 변환된다.
그런데 플랫폼에 따라 텍스추어에 비춰진 빛효과가 다르게 나타난다.
그래서 모든 플랫폼 출시시에 조정 필요함.

- Autodesk beast
Unity4 에서 사용한 라이트 매핑 플러그인
굉장히 빠르고 시간대비 괜찮은 수준의 결과를 보여준다.

예) Lightmapping extended (unity4.x 용 라이트맵 에셋스토어)

- Geometrics
실시간은 모바일에서 쓰기 힘들정도로 실시간GI가 힘듬.
Unity5 에서 사용하는 플러그인은 다른 것인데
아직 안정화 안되어 있음


ambient color : 그림자 톤, 색감
ambient occlusion(AO) : 간접광과 간섭광에 의한 음영을 위한 옵션. 이게 활성화 되면 무거워진다.
final gather (FG) : 깔끔하고 이쁘게 나옴.
photon mapping : 얼룩지는 현상 나옴.

Global Illumination : 오브젝트간의 반사, 굴절, 그림자와 같이 다른 오브젝트에 의해 반사되거나 투과, 굴절빛의 횩과를 연출한다.
Drawcall :material 을 mesh 에 옯겨서 그리는 것 화면에 그리는 횟수
같은 material을 사용하는 것을 한번에 그리는 것을 batching 이라고 한다.

batches, saved by batching:

512 2장보다는 1024 한장으로 사용하는 것이 좋다.

static batching
player setting -> static batching 을 모두 static 으로 적용


Directional light
cast shadow : 그림자를 그릴것인가에 대한 옵션
receive shadow : 그림자를 드리울것인가에 대한 옵션

Directional Light를 3개 사용할 경우,
주 광원 :0.8, 사이드 광원: 0.2 , 아래 광원: 0.1  정도의 intensity 값으로 조정한다.
눈으로 보면서 이쁜것을 채택하면 된다.

baked lightmap
Tilling x : 몇번 반복할 것인지
Offset x : 몇번째것을 쓸것인지

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



라이트 맵 예
1. 씬저장
2. 오브젝트 선택하고 inspector 우측 상단 "static" 에서 'Lightmap Static' 선택하기
3. Skybox 생성. procedual 머터리얼 생성 속성값 조정
4. Skybox를 씬에 적용
5. Precomputed realtime GI 끄기  ( 라이트맵 적용할 경우 실시간 불필요 )
6. Baked GUI : 한정에 꽉 채우는 것이 좋다
Baked Resolution : 라이트맵 텍스츄어가 한장을 넘어서면 Baked resolution 값을 조정하여 한장으로 나오게 하자.
Compressed : unchecked.

7. General GI
Directional Mode : Non directional
Default Parameter : default-lowResolution

Directional light 를 제외한 라이트들은 베이크된 이후에는 씬에서 삭제해준다.



Shader
(Matcamp shader)
모바일에서는 Diffuse Shader, Transparent Shader만 가지고도 충분한 효과를 볼수 있다.




댓글 없음:

댓글 쓰기