Featured image of post 텍스쳐 스플레팅 방식에서의 전이타일 구조 개선을 위한 연구

텍스쳐 스플레팅 방식에서의 전이타일 구조 개선을 위한 연구

겨우 결론이군요. 이제 정리하고 추가 / 첨삭하고 , 참고문헌 찾고.. 하면 어찌어찌 정리되겠죠. 

이전 글과 이어서 보시고 싶으시면 아래 순서대로 보시면 됩니다.
논문용이니까 퍼가시면 곤란곤란.

  1. 듄2 타일구조연구
    http://chulin28ho.egloos.com/4808111

  2. 워크래프트2 에서 사용된 타일 구조 연구
    http://chulin28ho.egloos.com/4810001

  3. 워크래프트3 에서 사용된 타일 구조 연구
    http://chulin28ho.egloos.com/5097822

  4. 텍스쳐 스플레팅 방식을 이용한 배경 타일 제작
    http://chulin28ho.egloos.com/5100052

심리스 MMO에서는 SLOD 사용해야 하므로 사용하지 못할 방법이긴 하지만
존 로딩 방식에서는 못 사용할 것도 없는 방식입니다. 누가 사용 하려고나 할지 문제지만 (ㅎㅎㅎ)

이게 좀 애매한게요… 아무래도 TAD 경향의 논문이다보니 국내에서는 애매한 논문으로 취급받게 생겼단 말이죠. 
그래픽 논문도 아니고 그래픽스 (프로그래밍) 논문도 아닌 논문이 되어버렸어요. 뭐 이건 어쩔 수 없지만. 
그래서 Pixel Shader 코드를 마지막에 첨부해야 하나 하다가
그래도 이건 그래픽스라기보단 그래픽 논문이니까 라는 생각에 안 넣었습니다. 간단히 공식만 넣고. 
게다가 넣어도 그래픽 교수님은 못알아봐요 (…)
프로그램 교수님은 코드야 알아보지만 거기까지 온 경로를 못알아보실테고 (…) 그래서 뭐가 좋다는 건데? 라면 O망 … 

자아 힘내서 정리해야겠습니다. 9일날 발표도 있어서 두근두근하네요.  

===========================================================================
이 방식은 전이 마스크의 연결 포인트 부분의 개수를 증가시켜 전이마스크를을 보다 현실적이고 보다 프렉탈한 구조에 가깝게 생성되도록 하는 것이다.

각 타일은 옆 타일과 연결되기 위하여 일정한 ‘포인트’ 를 지키도록 강요받는다. 이것은 같은 연결점을 지닌 전이 타일이라면 연결 부분은 언제나 같은 위치여야 하기 때문에 나오게 되는 단점이다.

[그림 ] 2점 점유 방식의 전이 타일의 도식적인 예

그러므로 이 연결점을 기존보다 늘려 준다면, 보다 자연스러운 표현이 가능하게 된다.

[그림 ]연결포인트가 3개소로 늘어난 전이 타일의 구조

즉, 이 방법은 기존의 14개 종류를 기본으로 하는 전이 타일의 개수를 증가시켜 보다 다양한 조합 타일을 생성하게 하는데, 이것은 필연적으로 기존의 14개 전이타일 종류보다 훨씬 많은 양의 자원을 필요로 할 수 밖에 없다.

만약 14개 전이타일의 연결 포인트를 기존의  3개소로 증가시킨다면 필요한 전이타일의 양은 (12 * 9) +(2*81) = 270개가 되며,  필요한 텍스쳐 사이즈 또한 기존의 전이타일보다 약 19배의 양이 필요하게 된다. 이것은 용량의 급격한 증가와 함께 전이타일을 제작해야 하는 아티스트들의 자원이 필요하게 됨으로써 제작 기간의 증가를 유발하게 되는 요인이 될 수 있다.

 

[그림 ]연결 포인트를 3개소로 증가시킨 타일의 도식화

 

[그림 ]연결 포인트를 3개소로 증가시킨 12개의 1점, 2점, 3점 전이타일 (108개)

[그림 ]연결 포인트를 3개소로 증가시킨 2개의 확장 2점 전이타일 리스트 (162개)

때문에 추가적인 기술적 방법의 적용으로 이러한 용량의 급격한 증가를 제어할 수 있는데, 이 방식은 텍스쳐 스플레팅을 위한 알파 채널을 Pixel shader 단계에서 Alpha Channel 의 블렌딩을 이용하여 실시간으로 데이터를 생성하는 것이다.

이 방식은 우선 필요한 270개의 전이타일 중에서 2점 점유 타일에 해당하는 9개의 전이타일 Alpha 를 제작한다.

[그림 ] 3개의 연결 포인트를 가진 2점 점유 타일

이 9개의 전이타일 Alpha는 Rotation 연산을 통해 실시간으로 총 36개의 Alpha로 변화시킬 수 있다.1)

 

[그림 ]Alpha Blending을 위한 2점 점유 전이타일 Alpha

이 알파 채널은 각각 2점 점유 방식의 타일로써, 필요시에는 한 쪽 방향의 9개의 전이타일만 제작하여 각각을 회전시켜 사용할 수도 있다. 그렇게 되면 36개의 전이타일이 아니라 9개의 전이타일만으로도 동일한 효과를 낼 수 있게 된다.

이렇게 제작된 2점 점유 타일을 이용하여, 1점 점유 타일을 제작하는 법은 다음과 같다.

[그림 ]2점 점유 타일간의 연산에 의한 1점 점유 타일의 제작 방식의 예2)

 

이 방식은 각 픽셀간 알파의 뺄셈 공식으로, 원하는 1점 전이타일을 제작해 낼 수 있으며, 위의 계산 방식을 공식으로 나타내면 다음과 같게 표현할 수 있다.

A33 - B11 = E31

A33 - B22 = E32

A33 - B33 = E33

A11 - B11 = E11

A11 - B22 = E12

A11 - B33 = E13

A22 - B11 = E21

A22 - B22 = E22

A22 - B33 = E23

또한, 위의 예시에서는 단순히 평행한 접점을 가지는 2점 점유타일을 기초로 연산하였으나, 한 방향의 2점 점유타일은 총 9개의 조합을 가지므로 실제로 제작할 수 있는 경우의 수는 최대 9*9 까지 늘어날 수 있다.

또한 이와 동일한 방법으로 계산을 달리하여 3점 타일을 제작할 수도 있다.

 

[그림 ]2점 점유 타일간의 연산에 의한 3점 점유 타일의 제작 방식의 예

 이 방식 역시 알파 채널간의 덧셈 공식에 의해 제작된 3점 타일로, 위의 계산된 타일을 공식으로 표현하면 다음과 같다.

A33 + B11 = F13

A33 + B22 = F23

A33 + B33 = F33

A11 + B11 = F11

A11 + B22 = F12

A11 + B33 = F13

A22 + B11 = F12

A22 + B22 = F22

A22 + B33 = F32

이 방법 역시 평행한 2점 타일만으로 계산한 것이므로, 실제 표현할 수 있는 최대의 경우의 수는 9*9 배이다.

또한, 2점 타일의 확장형인 추가된 2점 전이타일도 동일한 방법으로 생성할 수 있다.

[그림 ]2점 점유 타일간의 연산에 의한 추가된 2점 점유 타일의 제작 방식의 예

이와 같이 모든 경우의 타일을 2점 기본 타일의 연산만으로 제작할 수 있으며, 위 그림의 공식은 다음과 같다.

(A33 - B22) + (C22 - D22) = G2232

이 방법을 이용하면 처음의 36개 (혹은 9개) 의 전이타일만으로도 생성할 수 있는 전이 타일의 수가 최소 270개이며, 전이타일의 블렌딩 시 각 방향별 9종의 전이타일이 존재하므로 2방향의 전이타일 조합 공식은 81종의 변화가 나오게 된다. 그러므로 최대로 응용할 수 있는 전이타일의 수는 이론적으로

((12*3)*81)+(12*3)+((12*3)*81) +((2*81)*81*81) = 1,068,750

개가 된다. 그러나 실제로 각 전이타일별 차이점을 느낄 수 있을 정도로 표현되는 갯수는 이보다 제한적이 될 것이다.

그리고 위 계산에 의해 제작된 실제 전이타일과 이를 적용한 타일의 모습은 다음과 같다.

[그림 ]전이타일의 3점 포인트 방식에 의해 제작된 전이타일용 알파 텍스쳐

 

[그림 ]전이타일의 1점 포인트 방식에 의해 제작된 전이타일과 3점 포인트 방식에 의해 제작된 전이타일의 비교

Ⅳ. 결론

본 논문에서는 현재 온라인 게임에서 사용되는 텍스쳐 스플레팅을 이용한 지형 제작 방식을, 전통적인 14개 전이 타일을 확장 이용하여 표현하는 방법에 대해 연구하고 제시하였다.

이 방법은 전통적인 14개의 전이 타일의 연결 부위를 다수로 확장하여 전이 타일의 개수를 늘이는 방법이며, 단순히 전이 타일을 3개 부위로 확장했을 때에는 270개의 전이 타일을 제작해야 하며, 이는 기존의 14개 전이 타일을 이용해 타일을 제작할 때보다 약 19배의 텍스쳐 사이즈가 필요하며, 그만큼의 제작 자원을 소비해야 한다는 것을 의미한다.

그렇지만 기본적인 2점 전이 타일 9종을 제작 후 pixel shader 를 이용하여 전이타일용 알파 채널을 연산하면 최소 270개의 전이타일을 생성할 수 있으며, 이것으로 모든 전이타일을 완성할 수 있게 된다.

이러한 방법을 이용하면, 텍스쳐 스플레팅을 이용하는 지형 구조의 보다 품질높은 전이타일을 제작할 수 있게 될 것이다.

이 방법의 문제점은 일방적인 방향성의 디자인을 지니고 있는 전이타일일 경우에 어울리지 않을 수 있으며, 또한 타일 구조는 보통 각 폴리곤마다 UV 좌표를 가지고 있으므로 지형의 각 청크마다 폴리곤이 유동적으로 변해야 하는 SLOD (Static Level of Detail) 을 지원하는 심리스 (Seamless) 방식의 대형 MMORPG의 지형에는 적합하지 않다는 점이다.

그러므로 이 방식은 존 로딩(Zone Loading) 방식을 지원하는 MO /MMO 또는 캐주얼 게임등에서 유용하게 사용될 수 있을 것이다.

Hugo로 만듦
JimmyStack 테마 사용 중