Difference between revisions of "Slerp"
Jump to navigation
Jump to search
m (broken lsl tags) |
m |
||
Line 7: | Line 7: | ||
The following slerp algorithm uses '''a''' and '''b''' for ends and '''t''' for the interpolation parameter.<br> | The following slerp algorithm uses '''a''' and '''b''' for ends and '''t''' for the interpolation parameter.<br> | ||
To continue the rotation past the ends use a value for '''t''' outside the range ''' | To continue the rotation past the ends use a value for '''t''' outside the range '''{{interval|gte=0|lte=1|center=t}}'''. | ||
<source lang="lsl2">rotation slerp( rotation a, rotation b, float t ) { | <source lang="lsl2">rotation slerp( rotation a, rotation b, float t ) { |
Revision as of 19:00, 30 March 2015
-
Slerp is shorthand for spherical linear interpolation, introduced by Ken Shoemake in the context of quaternion interpolation for the purpose of animating 3D rotation. It refers to constant speed motion along a unit radius great circle arc, given the ends and an interpolation parameter between 0 and 1.
The following slerp algorithm uses a and b for ends and t for the interpolation parameter.
To continue the rotation past the ends use a value for t outside the range [0, 1].
rotation slerp( rotation a, rotation b, float t ) {
return llAxisAngle2Rot( llRot2Axis(b /= a), t * llRot2Angle(b)) * a;
}//Written collectively, Taken from http://forums-archive.secondlife.com/54/3b/50692/1.html
Source: http://forums-archive.secondlife.com/54/3b/50692/1.html