如何在不扭曲渲染对象的情况下调整LWJGL窗口的大小

时间:2017-01-26 16:38:15

标签: java opengl window lwjgl

我在调整窗口大小时遇到​​问题。 目前,我总是在更改窗口大小时更改GLU.gluPerspective(70F, this.windowWidth/this.WindowHeight, 0.05F, 1000.0F)中的值。

在这两个示例中,我已将这些值用于Perspective set hive.execution.engine=tez; ,并且仅更改了窗口大小。

LWJGL Window size = 1920x1080

LWJGL Window size = 1080x1080

正如您所看到的,当窗口大小为1080x1080像素时它看起来不错。 但是,每当我想要一个其他窗口大小时,我都不想改变这些值。

我希望你能理解我,知道我想要什么。

1 个答案:

答案 0 :(得分:1)

解决方案非常简单。 1变为1,因为您正在进行整数除法。这就是1080 x 1080看起来不错的原因,因为该宽高比实际上是GLU.gluPerspective(70F, 1920F/1080F, 0.05F, 1000.0F)

你想要的是:

GLU.gluPerspective(70F, (float)width / (float)height, 0.05F, 1000.0F)

通常不对硬盘长宽比进行硬编码,而是从窗口中拉取值:

foreach ($tableArray as $locationTab) {
    $loc = array_search($locationTab, $tableArray);
    unset($tableArray[$loc]);
    echo '<p>' . $loc . '</p>';
}

无论窗口大小如何,宽高比都是正确的。