2012-10-18 6 views
5

Box2d 뼈대에 매핑되는 2 차원 문자 아트가 있습니다. 예를 들어 캐릭터의 팔은 팔꿈치에서 관절로 연결된 2 개의 물리 사각형 일 수 있습니다. 각 사각형에는 해당 아트 스프라이트가 있습니다. 아래 팔의 예술은 완전히 직사각형이 아닐 것이다. 직사각형 png 소스 일 수도 있지만 팔이 반드시 그려지지 않은 많은 음의 공간이 있습니다.OpenGL을 사용하여 2D 아트를 삼각형으로 분할하는 방법

제 질문은 2D 아트를 삼각형으로 분해하는 가장 좋은 방법은 무엇입니까? 모든 평면 스프라이트를 2 개의 삼각형으로 이루어진 간단한 사각형으로 처리해야합니까? 많은 알파 공간을 남기고 있습니까? 또는 모양을 여러 삼각형으로 나누고 실제 모양 (아마도 삼각형 팬)을 일치 시키려고합니까? 각 접근법의 장단점은 무엇일까요? 캐릭터에 다양한 일이 일어나기 때문에 텍스처를 업데이트 할 것입니다.

img

답변

1

적은 형상은 보통 (붉은 광장은 물리학 모양이고, 파란색 선은 가능한 삼각형의 구성이다) : 여기

내가 무슨 말을하는지의 그림입니다 성능 향상 (왼쪽에서 세 번째).

"정확한"삼각 측량 (왼쪽에서 4 번째)은 고 충실도의 충돌 감지 (반짝이는 소행성에서 반사되는 레이저?)에 유용합니다.

자주 텍스처를 업데이트 할 때주의하십시오. glTexSubImage2d()은가는 길입니다.

GL 구현에서 지원하는 경우 비동기 업로드 using PBOs을 사용할 수 있습니다.

+0

감사합니다. 나는 충돌 탐지를위한 실제 예술 형태를 고려하지 않고있다. 아마 모든 것은 물리 모델로 끝날 것입니다. 추가로 렌더링 된 알파 공간이 2 삼각형 솔루션의 단순함의 이점을 제거하는지 궁금합니다. 특히 텍스처가 사각형이 아니고 음수 공간이 더 많이 사용될 때 . 유성 텍스처처럼 무언가 원형은 직사각형 텍스처에 많은 음의 공간을 가지고 있습니다. 서로 위에있는 알파 = 0 영역 중 몇 개가 겹쳐지면 약간의 부정적인 영향을 주어야합니다. 맞습니까? –

+2

실제 알파 블렌딩 (추가 된 대상 픽셀 읽기로 인해 더 많은 메모리 대역폭이 필요함)이 필요하지 않으면 [알파 테스트] (http://www.opengl.org/wiki/Transparency_Sorting#Alpha_test) 알파 값이 특정 임계 값 아래에 있으면 들어오는 픽셀을 단순히 버립니다. 실제로 블렌딩 및 알파 테스트를 결합하여 두 세계의 장점을 모두 얻을 수 있다고 생각합니다. 낮은 임계 값을 사용하면 순수한 픽셀이 조기에 (블렌딩 전에) 컬링되고 오브젝트의 가장자리에서 멋진 알파 페이드를 만들 수 있습니다. – genpfault

+0

위대한 ... 그것은 많은 의미를 가지며, 매우 도움이됩니다. –

관련 문제