본문 바로가기
코드

빌보드 및 폰트 표시 테스트

by ehei 2006. 6. 29.

현재 구상 중인 게임에서 구 안에 숫자를 표시해야 한다. 최초에는 배경을 두고 거기에 텍스트를 표시하려 했다.
이를 위해 Ogre3D에 쓸 수 있는 MovableText(
 http://www.ogre3d.org/wiki/index.php/MovableText)를 시험했다.



1151582332_makeBall.zip

(Ogre 1.21 필요)


※ 참고: MovableText에는 어떤 문제가 있다. 즉 어떤 특정한 글자 또는 짧은 문장이 표시되지 않는다는 점. Ogre3D 포럼에 어떤 한국사람도 질문했다. 일단 이 문제를 해결하는 건 간단. 표시할 문장 앞에 공백을 하나만 붙여주면 된다. MovableText는 버텍스버퍼를 직접 조작하여 각 문자마다 폴리곤 2개를 만들고, 폰트를 텍스처처럼 u, v 값을 얻어와서 매핑한다(u, v값은 미리 설정되는데, 어디서 되는지는 아직 안 찾아봤음). 그런데 이 버텍스의 위치를 직접 조작하는 과정에서 문제가 있는 것으로 보인다. 직접 수정하기 위해 코드를 한참 살폈으나, 수정하지 못했다... 

그러나, 내 게임의 특성은 게임 화면을 완전히 뒤로 돌릴 수 있다는 점이다. 이 때문에, 텍스트 간의 가독성을 확보하기 위해 배치한 배경에 가려져 숫자 자체가 보이지 않는 현상이 있었다. 이를 해결하려면 복잡한 트릭을 사용해야 하므로, 숫자를 표시하는 텍스처를 쓰기로 하였다.

여기에서 문제는, 구 안에 숫자 텍스트가 빌보드에 표시된다는 점. 이 때문에 텍스트는 원형으로 표시되어야 했다(구를 2차원으로 보면 원형). 알파값을 적용하기 위해 material script를 보고 이것저것 테스트하느냐 많은 시간을 보냈다. 결국 알아낸 것은 투명 레이어가 있는 png 포맷의 텍스처를 사용하고, alpha_rejection 명령에서 표시하지 않을 알파값 단계를 설정해야한다는 것. 

이른바 0번 칼라(게임 내에 표시하지 않을 색)로 적용해보려다 몇 시간을 보냈으나 별 성과를 얻지 못했다. 다만 텍스처간의 재질 연산에 대한 많은 삽질은 나중에 도움이 될 듯.