나는 다음과 같은 애니메이션을 구현할 수있는 애니메이션 클래스를 정의 할 물론 위에 나열된 애니메이션 기술 중 하나는 개체에 대한 일반적인 액세스가 필요합니다. 클래스.
로토 번역 애니메이션은 에 액세스해야합니다. 개체 모델보기 매트릭스; KeyFrame 애니메이션을 사용하려면 모델 정점 버퍼에 액세스해야합니다. 스키닝 애니메이션은 개체 (셰이더 특성 및 프로그램 또는 확장명을 사용하는 정점 특성)의 렌더링 상태에 액세스해야합니다.
외피 스키닝에서는 보간 수식 (genpfault로 연결된 것이 좋음)을 사용하여 값을 변경하기 위해 일반 값 (실수, 벡터 또는 행렬)의 보간을 구현해야합니다. 그래서 인터폴 레이터 클래스는 새로운 보간 방정식의 도입을 쉽게 할 수 있어야한다.
애니메이션 클래스는 인터폴 레이터 인스턴스 집합을 사용하여 애니메이션을 실행합니다 (보간 할 값 변경). 값이 choosed, access 및 modified (범위)는 Object 클래스로 정의됩니다.이 시점에서
는 보간 값을
애니메이션 인스턴스 (혹은 단일
보간 인스턴스) 트리거 (실제 일을하지 않을 수) 경과 시간을 정의하는
타임 라인 클래스가 있어야합니다 중간 값을 전진시킨다.
애니메이션 인스턴스가 타임 라인 클래스에 대기하는, 그래서 인스턴스가 활성화되어있는 애니메이션 알고있다. 정품 인증은 사용자 입력 또는 내부에서 생성 된 이벤트를 프로그래밍 방식으로 사용하여 발생할 수 있습니다. 애니메이션 실행을 종료하기 위해, 애니메이션 클래스는 IsTerminated 방법은 시간축 인스턴스 ( 백 루프 애니메이션이 연속 된 애니메이션을 가질 수 아마도 애니메이션)에서 큐잉되는 순서이다 정의 할 수있다.
물론 모든 것이 실제 필요에 따라 다릅니다.
애니메이션 계산에 많은 시간이 걸리는 경우 전체 모델 데이터를 캐시하고 분리 된 스레드로 애니메이션을 실행할 수 있습니다. 일단 종료되면 모델은 렌더링 루프를 차단하여 업데이트 될 수 있습니다.
그러나 셰이더 프로그램에 적절한 데이터를 발행하여 애니메이션 처리를 고려하면 빠른 계산이 가능하므로 시스템 성능이 향상 될 수 있습니다.
와우, 아이디어에 대한 자세한 설명에 감사드립니다. – Tigran