2017-01-26 2 views
-1

Ich habe ein Problem mit der Größenanpassung des Fensters. Momentan ändere ich immer die Werte in GLU.gluPerspective(), wenn ich die Fenstergröße ändere.So ändern Sie die Größe eines LWJGL-Fensters, ohne gerenderte Objekte zu verzerren


In diesen beiden Beispielen habe ich diese Werte für die Perspektive GLU.gluPerspective(70F, this.windowWidth/this.WindowHeight, 0.05F, 1000.0F) und nur geändert, um die Fenstergröße verwendet.

LWJGL Window size = 1920x1080

LWJGL Window size = 1080x1080

Wie Sie es sieht einfach gut aus, wenn die Fenstergröße 1080x1080 Pixel ist zu sehen. Aber ich möchte die Werte nicht jedes Mal ändern, wenn ich eine andere Fenstergröße wollte.

Ich hoffe, Sie können mich verstehen und wissen, was ich will.

Antwort

1

Die Lösung ist ziemlich einfach. 1920/1080 wird 1, weil Sie Integer-Division machen. Aus diesem Grund sieht 1080 x 1080 gut aus, weil das Seitenverhältnis tatsächlich 1 ist.

Was Sie wollen, ist:

GLU.gluPerspective(70F, 1920F/1080F, 0.05F, 1000.0F) 

Es ist typisch nicht das Seitenverhältnis zu codieren, sondern die Werte aus dem Fenster ziehen:

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

diese Weise das Seitenverhältnis korrekt keine ist Egal wie groß das Fenster ist.

Verwandte Themen