네 1부에서는 라이트맵의 긍정적인 면만 부각시켜 보았습니다. 분명 라이트맵은 많은 장점을 가지고 있습니다만, 역시 만만치 않은 단점도 가지고 있습니다. 이번엔 라이트맵의 어두운 부분 얘기와 함께 그걸 극복하고자 하는 방법에 대한 시간입니다.
- 파일 갯수와 텍스쳐 사이즈 (부하량)
라이트맵은 이전 시간에 말했듯 분명 라이트 계산이 빠르고 퀄리티가 좋은 면이 있습니다만, 그에 반해 파일 갯수가 많아진다는 치명적인 단점을 가지고 있습니다.
즉 같은 건물이고 같은 텍스쳐를 사용한다고 해도, 그림자와 빛 효과는 건물의 위치와 각도에 따라 천차만별이기 때문에 이 텍스쳐는 같을 수가 없습니다. 그러므로 그림자의 개수는 건물이 출력되는 갯수 만큼 따로 만들어져야 하며, 이것은 대단히 큰 파일 갯수를 의미합니다.
또한 그렇게 텍스쳐의 중복 사용이 불가함에 따라,텍스쳐의 사이즈도 도마 위에 올라오게 됩니다. 텍스쳐의 갯수도 많은 데다가 텍스쳐의 사이즈도 크다면 이건 더더욱 문제겠지요.
갯수 문제는 아직 해결책을 찾지 못했습니다. 아틀라스 텍스쳐와 같은 기술을 사용하는 방법도 있습니다만, 이것은 지금 고려할 단계가 아니며 이 부분에 대한 해결책은 지속적으로 찾아볼 생각입니다.
또 하나의 문제인 파일 사이즈의 문제는, 다른 많은 게임에서와 마찬가지로 라이트맵을 낮은 해상도로 만드는 방식을 사용하고자 합니다. 이걸 얼마나 줄일 지는 여전히 관심을 두고 지켜 봐야할 문제지만, 일단 굉장히 낮춰야 하는 것은 규정된 상황입니다.
아래는 이전 1부에 나왔던 멋진 라이트맵의 이미지로, 각 이미지가 1024로 되어 총 8장이 쓰인 거대한 용량입니다.

물론 제한된 영역만 렌더링하면 되는 1인용의 콘솔 게임이라면 이 정도로 어떻게 해보겠지만 (사실 그런 게임도 다 줄입니다)
일단 우리 게임에 들어갈 것이라 예상되는 사이즈로 줄여 보겠습니다.
그 사이즈는 무려 128 pixel 로, 1024 pixel의 1/64 의 크기입니다. 실제로 이 정도 사이즈로 들어갈 것이 확실합니다!! (더 줄일지도 모릅니다)
짜잔….
네 이것이 현실입니다. 하지만 생각보다 이상하지 않죠?
그건 좀 멀리 떨어져서 보는 데다가, 그림자는 원래 산란 때문에 선명하게 보이지 않더라도 이상하지 않기 때문입니다.
때문에 그림자는 무조건 가장 최하의 퀄리티로 뽑아내곤 하죠.

물론 가까이 보면 문제가 좀 있습니다.
경계선 부분의 빛샘 현상. 그리고 절단면 현상.
아래 그림을 보시면 벽 안쪽의 천장 부분이 간접조명이라도 켠 듯 빛나는데요, 이것은 라이트맵 사이즈를 줄이면서 빛 부분이 침범해 오는 현상입니다.
또한 기둥도 보시면 절단면이 칼같이 끊어지는 곳을 볼 수 있으실텐데요, 이것 역시 라이트맵 사이즈를 줄이면서 나오는 현상입니다.
그 외에도 근본적으로 레디오시티 렌더러는 여러 사소한 문제들을 가지고 있습니다.
빛이 꼬여서 생기는 검뎅이 현상이라던가
너무 작은 면은 계산에서 아예 제외되어 버리는 현상 등 말입니다.
사실, 이런 사소한 문제들은 지금 신경 쓸 단계가 아닙니다. 일단 중요한건 그림자가 나오긴 해야 한다는 거고, 라이트맵의 그림자 색을 연하게 한다던가 블러링으로 적당히 흐리면 우회적으로 해결할 수 있는 문제이기도 하기 때문이지요.
무엇보다 중요한건 빛은 사람이 그렇게 쉽게 예측할 수 없는 관계로, 조금 오류가 있더라도 괜찮게 보고 넘어가는 부분이라는 겁니다. 라이트에서 중요한 것은 국지적인 부분의 퀄리티가 아니라, 전체적인 영역의 분위기이기 때문이지요

어쨌건 전반적으로 멋지지 않습니까?
- 캐릭터와의 부조화
물론 또 단점이 남아 있습니다. (헥헥…)
그것은 고정된 조명이기 때문에, 캐릭터와 전혀 다른 조명체계를 가진다는 것입니다. 즉 캐릭터는 움직이는 물체이므로 미리 조명을 Baking 할 수가 없고, 때문에 자칫 잘못하면 캐릭터만 붕 떠버리게 됩니다. (어떤 면에서는 캐릭터가 구별이 잘되어서 좋을 수도 있습니다만) 때문에 다른 최신 게임에서는 주변의 색을 따 와서 가상의 조명을 만들어 캐릭터에게 쏴 주는 등의 방식을 사용하기도 하는데,
<마비노기 2에 사용하는 Per vertex Defferred Light>from 데브켓
아시다시피 우리 프로젝트에서 추구하는 기술의 레벨은
“다른 게임의 70%수준의 기술접근으로 90% 의 눈속임을!!!” 입니다.
그렇게 최신의 기술을 도입할 시간도 없고, 이미 도입한 것을 안정시키는 것만으로도 벅찰 지경입니다.
그러므로 이 부분은 어느 정도 눈속임으로 넘어갈 예정입니다. 그 얘기는 나중에…
- 움직이지 않는 그림자
파헤롯사에 나오는 거대한 풍차 - 같은 경우가 이 방식의 최대 걸림돌입니다. 라이트를 구워 버리는 이 방식은 분명 퀄리티가 높지만, 실시간으로 움직이는 것에는 전혀 대응하지 못하는 단점을 가지고 있습니다.
살랑거리는 나무의 그림자, 풍차와 물레방아의 돌아가는 그림자 등을 표현할 수 없습니다.
물론 콘솔 게임등에는 정적 그림자와 함께 동적 그림자를 추가 생성하여 해결하곤 합니다만… 그건 다음 프로젝트에…
그러므로 그럴 경우에는 그냥 어쩔 수 없이 포기하고 넘어갑니다. 그래서 다른 프로젝트에서도 라이트맵을 연하게 처리하는 겁니다. (아이온이나 그라나도 에스파다 같은 경우겠군요)
연하면 눈에 안 띄고, 그냥 넘어갈 수 있기 때문이지요.
저희도 좋은 방법을 생각해야 할 텐데요. 지금으로써는 그냥 무시하고 가는 걸 생각하고 있습니다. (약간 무책임하지만)
- 미래
물론 이 방법을 획기적으로 개선하는 , 동적라이팅과 정적 라이팅을 동시에 사용하는 하이브리드 방식이 있긴 합니다.
앞으로는 동적 라이팅과 정적 라이팅을 조합한 방식을 도입해야겠지요. (이번 프로젝트는 아닙니다. 다음 프로젝트에요…)
이 부분에 대한 연구도 계속 진행하고 있습니다.
거기에 관련된 하이브리드 조명 관련 내용은 여기에 …
http://jacking.tistory.com/353
앞으로의 우리 조명의 모습이겠지요.