本文整理汇总了C++中camera::get_up方法的典型用法代码示例。如果您正苦于以下问题:C++ camera::get_up方法的具体用法?C++ camera::get_up怎么用?C++ camera::get_up使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类camera
的用法示例。
在下文中一共展示了camera::get_up方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: update_shader_mvp
void rasterized_color_triangle_app::update_shader_mvp()
{
matrix4x4 const local_to_world_transform{
matrix4x4::rotation_around_x_axis(m_triangle_rotation.x) *
matrix4x4::rotation_around_y_axis(m_triangle_rotation.y) *
matrix4x4::rotation_around_z_axis(m_triangle_rotation.z) *
matrix4x4::translation(m_triangle_position.x, m_triangle_position.y, m_triangle_position.z)};
matrix4x4 const camera_rotation{
m_camera.get_right().x, m_camera.get_up().x, m_camera.get_forward().x, 0.0f,
m_camera.get_right().y, m_camera.get_up().y, m_camera.get_forward().y, 0.0f,
m_camera.get_right().z, m_camera.get_up().z, m_camera.get_forward().z, 0.0f,
0.0f, 0.0f, 0.0f, 1.0f};
matrix4x4 const camera_translation{
1.0f, 0.0f, 0.0f, 0.0f,
0.0f, 1.0f, 0.0f, 0.0f,
0.0f, 0.0f, 1.0f, 0.0f,
-m_camera.get_position().x, -m_camera.get_position().y, -m_camera.get_position().z, 1.0f};
matrix4x4 const world_to_camera_transform{camera_translation * camera_rotation};
matrix4x4 const camera_to_clip_transform{
matrix4x4::clip_space(
m_camera.get_horizontal_fov(),
m_camera.get_vertical_fov(),
m_camera.get_near_plane_z(),
m_camera.get_far_plane_z())};
matrix4x4 const local_to_clip_transform{
local_to_world_transform * world_to_camera_transform * camera_to_clip_transform};
if (m_shader_option == shader_option::color)
{
m_color_shader.set_mvp_matrix(local_to_clip_transform);
}
else
{
m_texture_shader.set_mvp_matrix(local_to_clip_transform);
}
}