본문 바로가기
유니티 엔진

유니티 5.0 라이트맵

by 대마왕J 2015. 3. 10.

기본적으로 유니티 5.0의 라이트맵은 Lighting에 통합되었습니다

GI 가 가동됨에 따라 엠비언트 라이트에 큰 변화가 있었는데요. 어찌보면 당연하겠네요

 

 

 

 

아직 공식 메뉴얼이 나오지 않아서 확실하게 알기는 힘들지만, 짐작컨데 기존 데이터의 작업 방법을 유지하면서 실시간 Global illumination 을 추가한 것을 알 수 있습니다.

 

일단, standard shader에서 커넬 박스를 만들어 테스트 해 봅니다

 

static으로 만들기만 하면 실시간 GI가 가동되기 때문에,

모든 옵션을 꺼 봤습니다.

 

 

 

옵션을 끄니까 원래 유니티 모습이 보이는군요. 예전 4.x대의 모습 말입니다.

 

간접 조명을 보고 싶으니까 직접 조명은 꺼 보겠습니다.

 

 

 

직접 조명을 끄자 , 엠비언트 라이트만 보입니다. 이제 여기에는 라이트가 전혀 없습니다.

 

물론 유니티5의 엠비언트 라이트는 이전처럼 단색 칼라가 아니라, shybox를 반사하는, 일종의 언리얼의 skylight 같은 것입니다.

녹색 과 붉은색, 천장의 조명은 Emission 을 1로 해 놓아서 밝습니다.

 

물론 단색 칼라로 ambinet light를 바꿀 수도 있습니다.

 

 

엌ㅋㅋ 단색 엠비언트로 바꾸니까 캡슐이 사라져 ㅋㅋㅋㅋ 진짜로 이게 옛날 유니티네요.

여러분 이렇게 엠비언트가 위험합니다. 엠비언트를 죽입시다.

 

유니티5의 가장 큰 특징 중 하나가 이렇게 엠비언트 칼라가 스카이 칼라라는 것입니다. (이제서야!!!)

 

 

 

 

 

이제 가장 최근에 추가된 실시간 GI - 인라이튼을 가동시켜 보겠습니다.

 

 

가동시키자 잠시 후에 미리 계산된 리얼타임 Gi가 나타났습니다. 다시 한 번 말씀드리지만 여기 현재 라이트가 없습니다.

 

이 녀석은 빛의 경로와 반사 위치를 미리 계산해 놓고 있다가 적용하는 것으로, 언리얼의 스테이셔너리 라이트 처럼 동작시킬 수 있습니다. (2017년 업데이트 : 비슷한 느낌일 뿐 전혀 다른 원리입니다)

즉 위치만 변하지 않으면, 색상과 밝기 정도는 실시간으로 바꿀 수 있다는 말이지요!!!

대신 위치를 변화 시키면 빛의 경로가 바뀌었으므로 다시 계산하게 됩니다.

 

(2017년 업데이트 : 여기에 라이트를 추가해도 동작합니다. 단 리얼타임 옵션의 라이트 말입니다. 라이트를 추가하면, 라이트가 튕겨서 다른 면에 영향을 끼치는 효과가 가동됩니다. )

 

 

 

위 이미지들은 실시간으로 색상을 바꾼 겁니다. 추가 계산이 없습니다.

 

물론 물체를 옮기게 되면 재 계산을 하며, RealTime Resolution을 높이면 더 오래 걸리고 품질이 좋아집니다.

 

 

 

이번엔 실시간 GI가 아닌  BakedGI를 가동시켜 보겠습니다.

 

 

일단 BakedGI는 기존에 사용하던 라이트맵과 같습니다. 원리도 같고 결과물도 거의 동일한 느낌이랄까요.

Precomputed Realtime GI는 약간 디퍼드 렌더링처럼, 미리 라이트 경로 등만 버퍼에 계산해 놓고 런타임때에 실시간으로 GI를 그려주는 '절반의 동적' 라이트인데 비해, 이건 아예 구워 놓는 것이라 저사양이나 모바일에서도 사용 가능합니다.

 

 

 

 

 

결과물도 예전 라이트맵인 비스트와 비슷합니다.

 

AO도 켜지 않았는데, 좀 더 칙칙하다고 해야 하나.. 눌러진 느낌이 납니다. 리얼타임  GI는 좀 밝은 느낌이었는데 이건 좀 더 눌러진 느낌.

 

 

 

당연히 밝기 같은걸 수정하면 리얼타임이 아니라 다시 계산해야 합니다.

자동 업데이트를 켜 놓으면 조명(처럼 보이는 그냥 판떼기) 의 색이 바뀌는 순간 저렇게 되고, 다시 Baking에 들어가게 됩니다.

 

 

 

옵션도 약간 바뀌어서, Directional Specular라는 GI모드가 있습니다. 그리고 듀얼 라이트맵이 사라졌어요.

Directional Specular 가 뭔지는 테스트 좀 해봐야겠지만, 일단 쉐이더 모델 2.0에서 사용 불가능하고, 하드뒈어가 GLSL2.0일 때에도 안돌아갑니다. (고급 기능이라 관심이 좀..)

 

(2017년 업데이트 : 지금은 너무나도 당연한 원리네요 ㅎ 라이트맵이 구워진 상태에서 스페큘러가 작동되게 되는 원리죠. )

 

 

일단 Directional Specular를 사용하니까, 실제로 라이트맵을 구웠는데도 불구하고 스페큘러가 생기네요.

PBS에서의 스페큘러를 위해 사용되는 기능인듯 합니다.

 

 

옵션낮으면 지글대는 것도 그대로.

 

 

 

그렇지만 AO도 가동시킬 수 있습니다.

물론 AO를 켜는 순간 베이킹 시간이 급 증가...

 

 

 

 

 

..

.

.

.

한참 걸리네요. 멈췄나...

 

 

아아 과연. 옵션 잘 맞춰야 오류가 적은 옛날 라이트 맵 그대로네요.

UV 심 보이고... 칙칙하고... 후후후 AO는 진짜 맨 나중에 켜야 겠습니다. 제 구린 노트북에서는 너무 오래 걸리네요

일단 그럼 AO를 끄고..

 

 

 

 

 

 

 

 

 

 

 

이번에는 그래서 리얼타임 GI와 베이킹 GI를 동시에 써 보겠습니다.

혹시 둘이 같이 쓰면 더 퀄리티가 올라간다던가..??? 멘탈레이에서의 FG와 GI를 같이 쓰는 것 처럼 말입니다???

 

 

 

일단 위 그림은 그냥 Baked GI 입니다. UV seam이 보이고... 하여간 옛날 방식입니다.

 

 

그리고 이게 리얼타임 GI 입니다. 이 둘을 확인한 다음.

 

 

 

둘을 동시 가동시켰습니다. 뭔가 변...했나???

 

 

 

 

 

아닙니다. 사실은 아무것도 변하지 않았습니다. 리얼타임 GI가 가동되면 Baked GI가 가동되지 않습니다. 오호라...

 리얼타임 GI가 가동되면 Baked GI가 가동되지 않습니다.

 리얼타임 GI가 가동되면 Baked GI가 가동되지 않습니다.

 리얼타임 GI가 가동되면 Baked GI가 가동되지 않습니다.

 리얼타임 GI가 가동되면 Baked GI가 가동되지 않습니다.

 * 이 부분은 좀 더 연구가 필요합니다. 

 

* 2017년 업데이트 : 가동 됩니다. 라이트 종류에 따라서요저거 처음 쓸 때는 암것도 몰랐군요 .
아무것도 안보이는 이유는, 저기에 라이트가 없어서 그렇습니다. 단순히 맵핑의 Emission만 가지고 라이트맵을 구은거라 영향이 없어 보이는 겁니다. 라이트를 Baked 옵션으로 하고 구우면 Baked GI 에 구워지고, 라이트를 RealTime으로 하면 이미 구워진 RealTimeGI의 경로에 따라 영향을 주변에 끼치고 다닙니다.

이거 아마 따로 쓴 글이 있을텐데... 이건 너무 옛날 글이라 오해를 줄이기 위해서 업데이트를 좀 해봤습니다.

 

 

이것 참... 괜찮으면서도 귀찮은 녀석이군요.

어쨌거나 리얼타임 GI는 실시간 연산이 들어갑니다. 당연 베이킹 GI보다 무겁구요

 

*2017년 업데이트.

이 글과 함께 연결된 다음 연구를 보시는게 좋습니다.

유니티 리얼타임 라이트맵 : http://chulin28ho.tistory.com/282

유니티 베이킹 라이트맵 : http://chulin28ho.tistory.com/283
유니티 리얼타임 라이트맵과 베이킹 라이트맵을 같이 쓰기 http://chulin28ho.tistory.com/284

 

 

반응형

댓글