효율적인 스켈 레탈 애니메이션


11

RTS 게임에 골격 애니메이션 형식 ( 여기에서 프롬프트 됨 )을 채택하려고 합니다. 화면에 표시된 각 모델의 개별 표현은 작지만 많은 모델이 있습니다!

골격 애니메이션, 예를 들어 MD5 파일에서 각 개별 정점은 임의의 수의 관절에 부착 될 수 있습니다.

GLSL에서 보간을 수행하는 동안 어떻게 이것을 효율적으로 지원할 수 있습니까? 아니면 엔진에서 애니메이션이 CPU에서 수행됩니까?

또는 엔진이 정점 당 최대 조인트 수에 임의의 제한을 설정하고 최대 수를 사용하지 않는 조인트에 대해 nop 곱셈을 호출합니까?

RTS와 같은 설정에서 골격 애니메이션을 사용하는 게임이 있습니까? 따라서 통합 그래픽 카드에서 뼈 경로로 갈 때 걱정할 것이 없다는 것을 증명합니까?


+1, 이것은 좋은 질문입니다. 나는 항상 애니메이션이 음영 언어 또는 CPU에서 수행되어야하는지 궁금했습니다.
James

EA의 SAGE 엔진 (C & C 3 이상, BFME 시리즈)을 사용하는 RTS 게임은 골격 애니메이션을 사용하지만 정점은 하나의 뼈에만 바인딩됩니다 (최소한 BFME)
Bart van Heukelom

답변:


6

뼈의 영향을 제한하는 것이 일반적입니다. 사용되지 않은 0 개의 가중치를 적용하거나 건너 뛰기 / 루프 아웃 메커니즘을 사용할 수 있습니다.

그것이 RTS에서 작동하는지 여부에 대해서는 참조가 없지만 화면에서 많은 수의 문자로 작업하고 해당 문자가 작은 경우 LOD가 필요하다고 생각합니다.

LODing 스켈 레탈 캐릭터는 LODing과 거의 동일하지만 메시뿐만 아니라 뼈의 영향과 스켈레톤을 LOD하고 싶을 것입니다.

예를 들어, 상세 수준이 낮을수록 정점 당 가장 큰 영향을주는 단일 뼈만 사용할 수 있습니다 ( "하드 스키닝"이라고도 함).

LOD 모델이 낮은 경우 골격의 뼈 수를 제한 할 수도 있습니다.

마지막으로 - 당신이 여부를 고려 확대 문자를 렌더링 할 필요가있다. 가장 가까운 뷰 거리에 대해 캐릭터를 모델링, 스킨 및 애니메이션 처리하고 싶을 것입니다. 물론 모든 런타임 데이터를 렌더링보다 훨씬 높은 해상도로 저장하고 싶지는 않습니다. 아주 기본적인 골격과 상황에 따라 정점마다 몇 가지 영향이 필요하지 않을 수도 있습니다.


또는 뭔가, 나는 누군가가 "이 모델 대신 기능 링크 된 것으로 MD3을 고려하여 조각이 작은 경우에 당신이 정말 RTS의 포탑에 대한 뼈를 원하지 않는다"말할 수 바라고 있었다

그런 종류의 상황에서 이런 종류의 메시에 스키닝을 사용하지는 않지만 "뼈"는 계층 적 변환의 멋진 이름 일뿐입니다. 정점에 가중치를 부여하는 대신 메쉬를 메쉬에 연결하는 것을 막을 수있는 것은 없습니다. 즉, 터릿의 경우 뼈와 메쉬 두 개만 있고 스키닝 / 가중이 전혀 없을 수 있습니다.
JasonD

2

골격 애니메이션이 RTS 게임에 좋다고 생각하지 않습니다. 스켈 레탈 애니메이션은 모든 캐릭터에 추가 프로세스가 필요하지만 키 프레임 애니메이션은 더 많은 메모리를 소비하지만 많은 캐릭터에 동일하게 사용할 것입니다 .rts 게임은 캐릭터 당 작은 애니메이션이 필요합니다

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.