Проблемы с просмотром /проекцией камеры

Я сделал простую программу OpenGL, но могу понять, почему камера не работает, вот маленький фрагмент класса Camera:

public Matrix4f getView() { // initializes the view matrix
    return new Matrix4f().lookAt(
            new Vector3f(0f, 0f, 1f), // camera position at 0,0,1
            new Vector3f(0f, 0f, 0f), // camera target at 0,0,0
            new Vector3f(0f, 1f, 0f)); // up axis set to "worldUp" (0,1,0)
}

public Matrix4f getProjection() {
    return new Matrix4f().perspective(
            (float) Math.toRadians(fieldOfView), // the fov has a value between 0f and 180f, by default I set it to 90° 
            viewportAspectRatio, // the aspect ratio is equal to 1024 / 960 (screen height / screen width)... even if I've not understood what is it...
            0.1f, 1000f); // I've not really understood what near and far planes are...
}

public Matrix4f getMatrix() { // with this function I obtain the final camera matrix
    return getView().mul(getProjection());
}

И так я обрабатываю матрицу камеры в GLSL, созданную с помощью camera.getMatrix():

gl_Position = camera * model * vec4(position, 1.0);

Без камеры все в порядке: вот программа, использующая gl_Position = model * vec4(position, 1.0);:

 lol

(Да, это куб)

Но используя камеру так, как я показал вам раньше, увеличивая FOV, я получаю следующее: введите описание изображения здесь

Может ли кто-нибудь взглянуть на мой код и рассказать мне, где я ошибаюсь? Я был бы очень доволен ... D:

4 голоса | спросил lory 16 MarpmWed, 16 Mar 2016 20:38:54 +03002016-03-16T20:38:54+03:0008 2016, 20:38:54

1 ответ


1

Я решил, проблема была в getMatrix. Имеет Jon сказать, что мне нужно было перевернуть getView().mul(getProjection()), чтобы получить getProjection().mul(getView()). Сначала я, хотя это ничего не изменит, но я ошибся. Спасибо Jon !

ответил lory 17 MarpmThu, 17 Mar 2016 18:34:41 +03002016-03-17T18:34:41+03:0006 2016, 18:34:41

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132