resume lookat what to change in furture
This commit is contained in:
parent
15baf1ecbd
commit
a29a35ecea
@ -75,6 +75,13 @@ namespace hgl
|
|||||||
float aspect_ratio,
|
float aspect_ratio,
|
||||||
float znear,
|
float znear,
|
||||||
float zfar);
|
float zfar);
|
||||||
|
/**
|
||||||
|
* 产生一个lookat变换矩阵
|
||||||
|
* @param eye 眼睛位置
|
||||||
|
* @param target 目标位置
|
||||||
|
* @param up 向上向量
|
||||||
|
*/
|
||||||
|
Matrix4f lookat(const Vector3f &eye,const Vector3f &target,const Vector3f &up);
|
||||||
|
|
||||||
inline Matrix4f translate(const Vector3f &v)
|
inline Matrix4f translate(const Vector3f &v)
|
||||||
{
|
{
|
||||||
|
@ -102,4 +102,33 @@ namespace hgl
|
|||||||
0.0f
|
0.0f
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Matrix4f lookat(const Vector3f &eye,const Vector3f &target,const Vector3f &up)
|
||||||
|
{
|
||||||
|
Vector3f forward=normalize(target-eye);
|
||||||
|
Vector3f right=normalize(cross(forward,up));
|
||||||
|
|
||||||
|
Vector3f nup=cross(right,forward);
|
||||||
|
|
||||||
|
return Matrix4f( right.x,
|
||||||
|
nup.x,
|
||||||
|
-forward.x,
|
||||||
|
0.0f,
|
||||||
|
|
||||||
|
right.y,
|
||||||
|
nup.y,
|
||||||
|
-forward.y,
|
||||||
|
0.0f,
|
||||||
|
|
||||||
|
right.z,
|
||||||
|
nup.z,
|
||||||
|
-forward.z/2.0f,
|
||||||
|
0.0f,
|
||||||
|
|
||||||
|
-dot(eye,right ),
|
||||||
|
-dot(eye,nup ),
|
||||||
|
dot(eye,forward),
|
||||||
|
1.0f
|
||||||
|
);
|
||||||
|
}
|
||||||
}//namespace hgl
|
}//namespace hgl
|
||||||
|
Loading…
x
Reference in New Issue
Block a user