我有一个使用 OpenGL 创建的 960x540 窗口。在这里渲染一个纹理并使用imgui实现一个滑块,让我在运行时平移 x、y 和 z 位置。
int window_width = 960;
int window_height = 540;
window = glfwCreateWindow(window_width, window_height, "Object Oriented OpenGL", NULL, NULL);
首先,我设置滑块默认值。
glm::vec3 model_matrix_translation(200, 200, 0);
稍后在我的循环中,只要窗口打开,逐帧渲染对象位置,我将ImGui::SliderFloat3 v_min和v_max参数设置为窗口的尺寸。看起来所有 3 个滑块 x、y 和 z 都使用这些值,但是有没有办法为每个滑块设置一个范围?如您所见,我的 y 轴滑块可以超过 540。
while (!glfwWindowShouldClose(window))
{
    // renderer and other code before this point
    {
        ImGui::SliderFloat3("Model Matrix Translation", &model_matrix_translation.x, 0.0f, 960.0f); 
    }
    ImGui::Render();
    ImGui_ImplGlfwGL3_RenderDrawData(ImGui::GetDrawData());
    glfwSwapBuffers(window); 
    glfwPollEvents();
}
