본문 바로가기
유니티 엔진

유니티 5.6 라이트맵 변화 연구3 - 믹스드 라이트맵(Mixed lightmap)1

by 대마왕J 2017. 7. 26.

Mixed Lightmap


이번 유니티버전에서 가장 크게 변한 기능 중 하나인 믹스드 라이트맵 기능입니다. 

믹스드 라이트맵은 뭐 굳이 설명할 필요도 없지만... 어차피 나만 볼 문서라서.. 웅엥웅... 


리얼타임 라이트맵은 클러스터를 구워서 GI를 시뮬레이팅하는 거라면

베이크드 라이트맵은 라이트와 GI와 셰도우를 모두 텍스쳐로 한 번에 구워서 라이트 계산을 완전히 날려버리는 기능입죠 


당연히 베이크드가 압도적으로 연산양이 가벼울 수 밖에 없지만.. 다이나믹인 캐릭터 같은경우 이럴때 라이트를 못받는다는 문제가 있습니다. 그래서 나온것이 짬뽕형. 믹스드 라이트...


믹스드로 처리하면, 스테틱인 놈들은 베이크드 라이트맵으로 구워지고, 다이나믹인 놈들은 걍 다이나믹으로 처리해 버리는 녀석입니다. 그런데 이 녀석이 이전까지는 좀 문제가 없지 않았던게.. 


베이크로 된 놈하고 다이나믹으로 된 놈하고의 연결 문제입니다. 자연스럽게 연결이 되지 않았어요. 


그래서 이 문제를 해결하고자 기능을 수정한 모양입니다. 



그럼 뭐 설명따윈 귀찮고 일단 옵션으로 직접 보면 되니까.. 



우선 첫 번째 옵션인 베이크드 인다이렉트 기능입니다 


Baked Indirect


이름에서도 알 수 있듯이, 인다이렉트 라이트 (간접광) 만 굽는 기능입니다. 즉 GI만 구워짐. 

나머지는? 올 리얼타임!!! 

보통 셰도우가 가장 연산에서 무거우니까 이게 라이트맵에서 가장 무겁겠네요 


굽게 되면 아래와 같아 집니다. 




뭐가 달라진 걸까요 


여기서 잠깐 ----------------


뭐 그동안 안했지만, 라이트맵 구우시고 저 결과로 나올거면 라이트맵 왜 굽나요 -_- 아 가볍게 할라고? 뭐 이해는 됩니다만.. 그래도 적어도 GI를 좀 강조하거나 그래야 구운 보람이 있지. 


그래서 한 번 강조해 봤습니다 


이렇게 AO나 GI가 좀 강조 되어야 굽는 의미가 있지요. 안보이면 뭐하러 시간들여 굽습니까. 


에 뭐 다른 얘기로 잠시 새었는데.. 샌 김에. 


그래서 베이크드 라이트로 구웠을때 가능한, 저 부드럽게 퍼지는 그림자는 믹스드 라이트때 못만들지요. 

저건 베이크드 라이트 전용입니다.


잠깐은 끝. ------------------- 워낙 연결된게 많아서 이걸 말로 정리하기 참 힘들어요. 


어쨌건. 



하여간 이렇게 믹스드 라이트의 베이크드 인다이렉트 기능으로 라이트맵을 구우면, 보시다시피  GI밖에 안구워집니다. 


이건 재밌는건데, 거의 리얼타임의 모든 기능과 부하를 그대로 유지한채 + GI를 한다는 겁니다. 붉은 캡슐도 지금 붉게 안 구워졌잖아요. 이건 베이크드랑 비교하면 쉽게 알 수 있습니다. (오른쪽의 디렉셔널리티는 디렉셔널 모드 끄면 안나오는건 아시죠) 


어찌보면 리얼타임 GI와도 작동 기전이 비슷합니다. 단 리얼타임 GI는 색이나 강도 정도는 조절할 수 있는데 이건 불가능하다는 것 정도? 


그래서 보시면 알겠지만, 캡슐에 스페큘러도 먹는게 보입니다. GI 외엔 전부 리얼타임이거든요. 



Subtractive 


이 옵션의 믹스드 라이트맵은 구형 버전의 믹스드 라이트맵과 똑같습니다! 


스테틱 오브젝트는 완벽한 베이크드 라이트로 돌아가고, 

추가로 다이나믹 오브젝트는 따로 추가 연산되는 방식입니다. 


보시면 알겠지만 스테틱 라이트는 완벽히 베이크드로 돌아가고 있습니다. 그림자를 보시면, 구별하기 편하게끔 그림자에 앵글을 줘 봤습니다. 


겸해서 다이나믹 오브젝트에게도 영향을 끼치고 있습죠. 


라이트맵을 보시면, 엠비언트와 그림자, AO와 GI (인다이렉트 라이트) 까지 한 번에 구워지고 있습니다. 


여기에 다이나믹 오브젝트의 실시간 조명과 그림자가 첨부되는 것이지요. 


아마도 이 옵션이 믹스드에서 가장 가벼운 옵션이라고 할 수 있을 것 같습니다. 

베이크드 다음쯤 될듯요 


그런데 이 방법은 문제가 좀 있지요. 


그림자가 그냥 텍스쳐로 발라져 있는 상태이기 때문에, 다이나믹 오브젝트가 스테틱 오브젝트 뒤에 숨었을때 그림자를 받지 못한다는 것입니다. 뭐 당연하죠. 스테틱 오브젝트는 더이상 라이팅을 받지 못하고 있으니..


그래서 예전의 해결책은 라이트 프로브를 저 부분에 집중적으로 구워서 음영을 처리하는 방법을 쓰곤 했었습니다. 부정확했지만 그게 그나마 싼 해결책이었지요 


그 외의 꼼수도 있지만 그건 좀 말하기 그렇고.. 



하여간 그래서 만든게 다음에 설명할 셰도우맵 기능입니다 



반응형

댓글