@ -19,10 +19,9 @@ struct Vertex : Shader::OutputVertex {
/ / Linear interpolation
/ / factor : 0 = this , 1 = vtx
/ / Note : This function cannot be called after perspective divide
void Lerp ( float24 factor , const Vertex & vtx ) {
pos = pos * factor + vtx . pos * ( float24 : : FromFloat32 ( 1 ) - factor ) ;
/ / TODO : Should perform perspective correct interpolation here . . .
quat = quat * factor + vtx . quat * ( float24 : : FromFloat32 ( 1 ) - factor ) ;
color = color * factor + vtx . color * ( float24 : : FromFloat32 ( 1 ) - factor ) ;
tc0 = tc0 * factor + vtx . tc0 * ( float24 : : FromFloat32 ( 1 ) - factor ) ;
@ -30,12 +29,11 @@ struct Vertex : Shader::OutputVertex {
tc0_w = tc0_w * factor + vtx . tc0_w * ( float24 : : FromFloat32 ( 1 ) - factor ) ;
view = view * factor + vtx . view * ( float24 : : FromFloat32 ( 1 ) - factor ) ;
tc2 = tc2 * factor + vtx . tc2 * ( float24 : : FromFloat32 ( 1 ) - factor ) ;
screenpos = screenpos * factor + vtx . screenpos * ( float24 : : FromFloat32 ( 1 ) - factor ) ;
}
/ / Linear interpolation
/ / factor : 0 = v0 , 1 = v1
/ / Note : This function cannot be called after perspective divide
static Vertex Lerp ( float24 factor , const Vertex & v0 , const Vertex & v1 ) {
Vertex ret = v0 ;
ret . Lerp ( factor , v1 ) ;