본문 바로가기
유니티 엔진

유니티 신 버전 라이트맵 사용하기 1 ( Using Unity 2017 Lightmap - 1)

by 대마왕J 2017. 12. 12.

예상치 않게 은근히 라이트맵 모르시는 분들이 많아서...

학교에서 가르치는 것을 대충 정리해 봅니다. 

학교에서 가르치는건 이것보다 좀 더 심도깊지만 그걸 글로 전부 쓰는건 넘나 힘들어요. 



일단 커널 박스 (https://en.wikipedia.org/wiki/Cornell_box) 로 이런 걸 만들었다 칩시다. 별 거 아니예요. 큐브 몇 개 가지고 장난친 겁니다. 바닥에는 플렌 하나 깔고. 아, 주전자는 맥스에서 가져왔어요. 


일단 그냥 리얼타임 라이트이죠. 


그럼 여기다가 일단 라이트맵을 구워볼까 합니다. 



그 전에, 


라이트맵을 왜 쓰나요???



이거 중요합니다. 라이트맵을 안써야 할 상황에 억지로 라이트맵을 쓰는것처럼 멍청한 일이 없지요. 

라이트맵을 써야 할 상황에서만 라이트맵을 써야 하는 겁니다. 


하여간 좋아요. 라이트맵을 왜 쓰나요?



두 가지 이유에서입니다. 


1. 가벼울라고 


2. 이쁠라고 



이 두 가지 외에선 안씁니다. 아니 써서는 안됩니다. 

저 두 이유가 있고 정확히 두 이유가 부합하지 않은 상태에선 써선 안돼요. 오히려 더 마이너스입니다. 




그럼 일단 볼까요 


가벼울라고 - 뭐가 가볍습니까? 

바로 조명 연산을 조금이라도 없애기 위해서입니다. 조명을 텍스쳐로 Bake 해서, 조명 연산이 필요없게 만들려는 것입니다. 조명이 텍스쳐가 된다 - 즉 텍스쳐 메모리는 늘어나고 라이트가 실시간으로 움직일 수 없다는 단점을 마다하고, 실시간 조명 연산을 최대한 줄이고자 하는 일입니다. 실제로 실시간 조명은 엄청 무거운 연산이니까요 



그럼 두 번째 

이쁠라고 - 뭐가 이쁩니까?

다이나믹 라이트에서는 할 수 없는 GI (글로벌 일루미네이션) 연산을 하고 싶어서입니다. 

아니 정확히 말해서 '평범한' 다이나믹 라이트에서는 이겠군요. 최근에는 실시간 GI가 슬슬 고개를 들고 있어서, 

슬슬 그럴 시대가 올 것 같습니다만, 아직 한동안은 멀었군.. 이란 겁니다. 


GI를 모르시겠다라는 분은 없으실 것 같지만, 그래도 모르겠다라는 분은 여기서 참고.

이 용어는 이제 당연하게 아신다 하고 넘어가겠습니다 . 

https://ko.wikipedia.org/wiki/%EA%B8%80%EB%A1%9C%EB%B2%8C_%EC%9D%BC%EB%A3%A8%EB%AF%B8%EB%84%A4%EC%9D%B4%EC%85%98



뭐 그래서 이 두 조건 중 하나만 충족해도 라이트맵을 쓰는 이유는 충분합니다만, 

보통은 이래서 쓰죠 


가볍고 이쁠라고 



... 그래요 알겠어요. 간단하군요. 

그럼 이제 시작해 봅시다. 라이트맵을요 




1. 라이트맵 준비하기



오브젝트가 있으면, 라이트맵이 구워질 녀석을 준비시켜야 합니다. 

일단 라이트맵이 영향받을 녀석들을 전부 선택해 주십시오 

바닥까지도 해야 해요. 바닥까지 꼭. 



그렇게 전부 선택한 상태에서, Static을 눌러줍니다. [각주:1]





그러면 오른쪽 아래에 뭐가 슉 지나가게 되고 




오옷 라이트맵이 구워지게 됩니다. 


뭐 뭔지 모르지만 일단 GI가 보입니다. 


원본 이미지와 비교해 볼 때 상당히 다릅니다. 

왼쪽에 녹색 판에서 묻어나온 색이 바닥을 때리고 있고, 안쪽은 이전보다 훨씬 더 어둡군요. 

박스 안쪽에 약간 이상한 그림자가 보입니다만 어쨌거나 훨씬 좋아 보입니다. 


이렇게 하면 라이트맵을 구운게 된 것입니다. 












하면 좋겠죠? 아닙니다. 이제 시작이예요. 

시간날때마다 연재해 보죠 


  1. 사실 저 중 라이트맵 스테틱만 눌러줘도 되지만 보통 라이트맵 구을 녀석들은 다른 것도 스테틱일 확률이 크니 걍 눌러줍시다. [본문으로]
반응형

댓글