本文整理汇总了C++中TransformComponent::world_matrix方法的典型用法代码示例。如果您正苦于以下问题:C++ TransformComponent::world_matrix方法的具体用法?C++ TransformComponent::world_matrix怎么用?C++ TransformComponent::world_matrix使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类TransformComponent
的用法示例。
在下文中一共展示了TransformComponent::world_matrix方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: updateGlobalUniforms
void Shader::updateGlobalUniforms(const TransformComponent & transform)
{
for(unsigned i = 0; i < m_global_uniforms_names.size(); ++i)
{
auto uniform_name = m_global_uniforms_names[i];
auto uniform_type = m_global_uniforms_types[i];
switch(uniform_type)
{
case GL_FLOAT_MAT4:
{
if (G_MVP == uniform_name)
{
auto view = CoreServices::getRenderer()->getCamera()->m_view;
auto projection = CoreServices::getRenderer()->getCamera()->m_projection;
auto mvp = projection * view * transform.world_matrix();
setUniform(G_MVP, mvp);
}
else
if (G_MODEL_MATRIX == uniform_name)
{
setUniform(G_MODEL_MATRIX, transform.world_matrix());
}
break;
}
case GL_FLOAT_MAT3:
{
if (G_NORMAL_MATRIX == uniform_name)
{
setUniform(G_NORMAL_MATRIX, transform.normal_matrix());
}
break;
}
case GL_FLOAT_VEC3:
{
if (G_CAM_POS == uniform_name)
{
setUniform(G_CAM_POS, CoreServices::getRenderer()->getCameraTransform()->position());
}
}
}
}
}