我有一个使用 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();
}