• 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    미해결

애니메이션 쉐이더에서 행렬보간 부분에 대해 질문드립니다

22.08.30 12:38 작성 조회수 109

0

애니메이션 소스코드를 보면 animator에서 현재 프레임과 다음 프레임에 대한 ratio를 g_float_0에 담아서 애니메이션 쉐이더파일을 실행하는데

ratio를 구하는부분이 static_cast<float>(_frame - _frame)으로 되어있고 이러면 항상 0이 되는 값이 나오는 것처럼 보이는데도 애니메이션이 잘 작동해서, g_float_0을 항상 0으로 보내버리거나, animation.fx 파일에 있는

float4 scale = lerp(g_bone_frame[idx].scale, g_bone_frame[nextIdx].scale, ratio);

float4 rotation = QuaternionSlerp(g_bone_frame[idx].rotation, g_bone_frame[nextIdx].rotation, ratio);

float4 translation = lerp(g_bone_frame[idx].translation, g_bone_frame[nextIdx].translation, ratio);

이 부분을 아예 보간처리를 없애서 아래와 같이 만들어도 잘 작동이 되더라구요.

float4 scale = g_bone_frame[idx].scale;

float4 rotation = g_bone_frame[idx].rotation;

float4 translation = g_bone_frame[idx].translation;

애니메이션이 초 당 프레임이 24프레임정도 되는 것같은데 그저 지나가는 속도가 빨라서, 조금 더 딱딱해진 동작임에도 불구하고 제가 그냥 눈치를 못채는걸까요?

답변 0

답변을 작성해보세요.

답변을 기다리고 있는 질문이에요.
첫번째 답변을 남겨보세요!