라이트맵 궁금증 by 김윤정

1. 라이트맵을 사용하게 되면, 어쩔 수 없이 파일 개수가 엄청 늘어나게 되는데, 괜찮을까요? 아님 아틀라스 텍스쳐라도 만들어서 해결하는것이 좋을까요?

2. 라이트맵의 해상도를 낮추면 번짐 현상 - 어두워야 하는 면에 밝은 부분이 침범 - 등이 나타나는데 이걸 최소화 할 수 있는 방법은?

3. 역시 라이트맵을 구으면 검은 똥 (-_-) 얼룩이 가끔 생기는데 이걸 최소화하거나 없애는 방법은 없을까요?

4. 기타 라이트맵을 하면서 고려해야 할 것이 무엇일까요?

덧글

  • 왕풍뎅이 2010/05/28 03:45 #

    해비맵을 만들어보아요.
  • 디카스테스 2010/05/28 10:00 #

    클라이언트의 용량을 무제한으로 상정하면 만사오케이!! (어이...)
  • 김윤정 2010/05/28 11:28 #

    예이
  • 그레이오거 2010/05/31 13:18 #

    http://game.watch.impress.co.jp/docs/series/3dcg/20090410_110682.html
    소닉 언리쉬드의 그래픽 기법입니다. 예전 번역된걸 본 기억이 있는데 링크가 깨져서... 원문이니 구글 번역기 추천합니다;;
    이미지들은 클릭하면 크게 열립니다. 라이트 관련해서, 특히 라이트 맵 부분은 일본의 장인정신에 대해 느낄 수 있습니다.
    (주의. 참조만 하시고 만들어달라고는 하지 마세요. 싸움납니다. ㅡㅡ;)
  • 김윤정 2010/05/31 15:42 #

    '니시카와 젠지' 를 검색하면 좌악 나오지요. http://jacking.tistory.com/353 에서도 번역문을 볼 수 있고요. :)
    이쪽 얘기를 분석해서 렌더팜 고려를 했던 것입니다. 물론 콘솔게임과 비교하면 안되겠지요. 차기작 정도라면 이정도 하자! 라고 얘기나눴던 글입니다.
  • penlir77 2010/06/02 11:12 #

    1. 배경 오브젝트를 어떻게 나누는가 따라서 달라질수 있습니다.
    가령 A라는 마을에 모양이 다른 집 5체가 있다고 가정해본다면 두가지로 갈수 있는데요.
    각 집마다 그집에만 쓰이는 라이트맵을 구워서 줄수 있구요
    아님 A라는 마을을 단위로 삼아 A마을 전체의 라이트맵을 구워서 줄수 있겠습니다.
    당연히 전자는 작은 사이즈(256이나 512 사이즈)의 맵 5장이 들어가는 거고 후자는 큰 사이즈(최소 1024 이상)의 맵 한장
    정도로 끝낼수 있겠죠. 두번째 방법이 합리적일수는 있는데 문제는 지역이 커지면 결국 그 지역을 나누어야 하고 그 나눈
    경계면 표시가 보이기 쉽다는 문제가 있습니다. 아무리 해상도나 uv를 잘 잡아도 어쩔수 없는 부분이지요.
    그리고 가령 A마을의 집 A`가 B마을에도 쓰인다고 한다면 B마을의 상황에 맞춰 다시 라이트맵을 구워야 합니다.
    큰 구조물인 경우 주위 오브젝트에 의해 드리워지는 그림자나 GI가 눈에 보이는 비주얼에 꽤 영향을 주기 때문에 면수나 모양이나 맵소스가 변하지 않는 동일 오즈젝트여도 결국 심는 수 만큼 라이트맵을 구울수 밖에 없습니다. 다만 일반적으로 필드나 마을이나 어디든 박는 나무나 기타 공용 소품들은 주위에 상관없이 무난한 라이트 셋팅후 라이트맵을 구워야 합니다. 그래야 어디든 심어도 크게 어색해지지 않으니깐요.

    요약하자면 오브젝트 단위로 할꺼냐 지역 단위(섹터)로 할꺼냐에 장수가 차이나고 복수로 심는 동일 오브젝트여도 배치되는 지역에 따라서 다시 라이트맵을 제작해야하며 그와 별도로 공용으로 많이 배치되는 오브젝트인 경우 주위와 상관없는 셋팅에서 따로 라이트맵이 필요합니다.

    2. 3. 어느정도는 넘어가야 하는 부분입니다. 다만 라이트맵 전용 uv를 필때 그림자가 깨끗이 떨어져야하는 부분이나 그렇지 않은 부분 고려해서 uv를 펴야하겠죠. 그림자가 지나가더라도 부드럽게 넘어가는 부분은 버텍스 붙여주시고 건물과 그에 붙는 기둥같이 경계가 확실한 부분은 따로 떨어뜨려 놓고요. 뭐 기본적인 겁니다. 그리고 해상도가 낮은 맵이 될수 밖에 없기에 렌더시 페더값도 적당한 수치 테스트후 uv간격과 같이 어느정도 가이드 라인 만들어 놓으시면 좋겠죠. 잡티나 얼룩도 어느정도는 생기고 완저히 안나오는 경우는 잘없더군요. 크게 눈에 띄지 않는 한 무시하시거나 그냥 사용자가 일일이 수정할수 밖에 없습니다.

    4. 라이트맵 단독으로 음영을 완전히 주기엔 어려운 일이구요. 어느정도 보조적인 걸로 사용한다고 생각하는게 나은 거 같습니다. 표현해야 하는 영역의 크기에 비해 라이트맵에 할당된건 사이즈가 작으니깐요. 라이트맵을 주되 약하게 준후 디퓨즈맵을 만드실때 옵클루젼 맵을 적용을 시키는 방법도 있구요.(다만 이방법은 공용 오브젝트에선 좀 힘듭니다.)
    이전에 넥슨에서 제라 만들땐 라이트맵이 쓸만하다고 생각한건 지형 오브젝트였습니다. 큰절벽위에 큰 풀밭이 있을때 풀밭은 타일맵 수정해서 최대한 평범하게 가구 라이트맵에서 칼라와 응영을 주어서 변화를 주니 꽤 괜찮았거든요. 그밖에 약한 반사광이나 역광 등을 렌더후 나온 라이트맵에 바디 페인트같은 3D페이팅 툴로 그려서 표현했는데 적절했던 기억이 나네요.
    즉 큰 오브젝트의 대략적으로 드리워진 음영을 표현하고 거기에 클라이언트에서 주기 힘든 부분에 3D페이트로 작업자가 포인트를 주기 좋은거 같았습니다. 건물등에 쓸때 경계면이라든지 번지는 그림자는 완벽하게 콘트롤 하긴 힘들고 그냥 전체적인 음영을 주는 정도로 생각이 듭니다. 그럴걸 수정할려면 2048 사이즈 맵 써도 결국 1픽셀의 도트작업을 3D페인팅에서 할수 밖에 없거든요. 작업자 노력에 비해 결과도 너무 작구요.
    결론은 라이트맵은 만능이 아니며 라이트맵 단독으로 생각하는 거보단 다른 부분들과 합쳤을때 어떻게 쓰느냐가 중요하다고 생각이 듭니다. 노말맵과 스펙큘러맵이 적절히 들어간 상태에서 과거에 노말맵 이전의 디퓨즈 맵처럼 디퓨즈맵에 과다한 묘사나 음영값은 오히려 중첩이 되어서 외곽부분이 도드러지게 강조되어 입체감은 나되 그림같은 느낌이 더 강해질수 있는거처럼요 라이트맵과 같이 쓰는 것이 어떤것을 같이 쓰냐에 따라서 줄이거나 강조할수도 있구 그림자 음영외에 다른 부분을 보조할수도 있으니깐요.
  • 김윤정 2010/06/02 11:36 #

    오오 감사합니다 !! 엄청 도움이 되었습니다!!!!
  • 착한곰 푸릉이 2011/11/11 23:32 #

    안녕하세요 폴리곤 아트 박진국이라고 합니다.

    www.polygonart.co.kr 제 회사 홈피고 blog.naver.com/purupuru1027 제블로그입니다. 전에 타라 작업하신거 올리신분 아니신지요?? 아주 잘봤습니다.

    라이트맵에 대한 해상도 문제가 상당히 이슈입니다. 라이트맵은 고정적인 라이트에 대해서 거의 완벽한 솔류션으로 생각하고 있습니다. 라이트맵 + 레이트레이싱이 사실상 90년대에서는 얻을수 잇는 최선의 렌더링 퀄리티였죠..

    라이트맵에 대한 해상도가 커져야하는데 이점에 대해서는 디자이너 분이 해결할수가 없고 엔진 프로그래머가 현재 비주얼이 가까운부분부터 밉맵형태로 만들어서 심리스처럼 백그라운드로 로딩하는 구조를 가져야합니다. 이런식의 구조라면 상당한 용량의 라이트맵이 가능해서 여러모로 크게 도움이 됩니다. 그리고 말씀하신 텍스츄어 아틀라스는 사실 기본적으로 요구되는 사항이기도 합니다.


    검정색으로 깨지는점은 사실상 텍스츄어 사이즈의 문제가 젤크지 않을까 싶고 프로그램의 부동소숫점 오차가 문제가 아닌가 싶습니다.

    라이트맵에 있어서 번짐이나 경계선에 대한 문제는 텍스츄러를 이분하여서 하나는 색 (낮은 해상도 3칼라) 하나는 경계면에 대한 정보 이런식으로 이분하여 압축한뒤 쉐이더에서 다시 풀어내는 과정이 좀도움이 되지 않을까 싶네요 퀘이크 엔진의 노말맵 압축을 보시면 도움이 되지 않을까 싶습니다.

    근데 이것도 프로그래머의 도움을 받아야하는게 좀 문제입니다.
  • 김윤정 2011/11/13 08:32 #

    퀘이크 엔진의 노말맵! 대충 어떤 건지 알겠습니다. ㅎㅎ 감사합니다. 다행히 지금은 이 문제들을 거의 해결해서 괜찮게 되었습니다. 타라... 는 뭔가요 제가 잘 모르겠습니다 ;;; 제가 올려놓고 잊어버린건가..
    폴리곤 아트는 전부터 관심이 있던 회사였습니다. 게임엔진 튜닝과 때깔개선 (?) 작업을 주로 하시던데 제가 하는 일과 꽤 비슷하거든요 ㅎㅎ 와주셔서 감사합니다.
※ 로그인 사용자만 덧글을 남길 수 있습니다.


MyADD

<script> (adsbygoogle = window.adsbygoogle || []).push({}); </script>