gpt4 book ai didi

java - OpenGL 根据窗口大小转换对象

转载 作者:行者123 更新时间:2023-12-01 09:44:34 26 4
gpt4 key购买 nike

我正在尝试创建一个窗口,其中所有对象都移动相同的相对距离,无论分辨率如何。我将视口(viewport)设置为 -1, 1, 1, -1 的边界,并通过

计算像素距离
int number_of_pixels = 10;
float x_pixel_value = (1f / (window.getWidth() / 2));
float move_x_value = x_pixel_value * number_of_pixels;

float y_pixel_value = (1f / (window.getHeight() / 2));
float move_y_value = y_pixel_value * number_of_pixels;

距离似乎正确缩放,但当我以很小的分辨率移动对象时,与分辨率较大时相比,它的移动速度要快得多。例如,在 720p 分辨率下,对象需要 2 秒才能在屏幕上一直向下移动,但在 100x100 分辨率下,则需要 0.3 秒。

我尝试实现帧限制器以确保它不会因滞后而导致移动速度变慢,但没有任何效果。

Larger resolution

Smaller resolution

最佳答案

使用不依赖于窗口尺寸的常量值。

裁剪体积不关心每个方向有多少个像素; (-1,-1) 处的对象始终位于左下角,(1,1) 处的对象始终位于右上角。这同样适用于速度。如果您确实想使用窗口尺寸,请调用 glOrtho 来更改裁剪体积。

关于java - OpenGL 根据窗口大小转换对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38172306/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com