Показать сообщение отдельно
Старый 11.02.2007, 09:30   #5
jimon
 
Сообщений: n/a
Re: анимация и FPS

ну принципы интерполяции не куда не денутся ... или я в блице давно не прогал

код интерполяции который обычно в irrlicht юзается
	f32 dt = ( (timeMs-StartTime) * Speed );
	s32 idx = static_cast< s32 >( 0.001f * dt ) % Points.size();
	f32 u = 0.001f * fmodf( dt, 1000.0f );

	p0 = Points[ clamp( idx - 1, Points.size() ) ];
	p1 = Points[ clamp( idx , Points.size() ) ];
	p2 = Points[ clamp( idx + 1, Points.size() ) ];
	p3 = Points[ clamp( idx + 2, Points.size() ) ];

    // hermite polynomials
    f32 h1 = 2.0f * u * u * u - 3.0f * u * u + 1.0f;
    f32 h2 = -2.0f * u * u * u + 3.0f * u * u;
    f32 h3 = u * u * u - 2.0f * u * u + u;
    f32 h4 = u * u * u - u * u;

    // tangents
	t1 = ( p2 - p0 ) * Tightness;
	t2 = ( p3 - p1 ) * Tightness;

    // interpolated point
	p = p1 * h1 + p2 * h2 + t1 * h3 + t2 * h4;
 
Ответить с цитированием