Получить матрицу камеры игрока

Версия Minecraft
1.7.10
API
Forge
250
12
24
Делаю отрисовку моделей через шейдер, со всякими картами и прочим, все получается без проблем, кроме одной вещи - матрица камеры игрока.
Пытался подбирать различные параметры, но получался вобще бред.
Поэтому пришел сюда чтобы кто нибудь из осведомленных подсказал.
Видос прикладываю для понимания в чем именно проблема и как искажается модель при повороте либо перемещении
ВИДЕО

В данный момент выглядит код создания матрицы так:

createViewMatrix:
public static Matrix4f createViewMatrix()
{

    cameraPitch = RenderManager.instance.playerViewX;
    cameraYaw = RenderManager.instance.playerViewY;

    float x_fix = -(float)RenderManager.renderPosX;
    float y_fix = -(float)RenderManager.renderPosY;
    float z_fix = -(float)RenderManager.renderPosZ;

    Matrix4f matrix = new Matrix4f();
    matrix.setIdentity();
    Matrix4f.rotate((float) Math.toRadians(cameraPitch), new Vector3f(1,0,0), matrix, matrix);
    Matrix4f.rotate((float) Math.toRadians(cameraYaw), new Vector3f(0,1,0), matrix, matrix);

    Vector3f negCamPos = new Vector3f(
        -x_fix,
        y_fix,
        -z_fix);

    Matrix4f.translate(negCamPos, matrix, matrix);

    return matrix;

}
 

tox1cozZ

aka Agravaine
8,455
598
2,892
Тебе она не нужна. В шейдере есть gl_ModelViewProjectionMatrix с уже готовой матрицей.
gl_Position = gl_ModelViewProjectionMatrix * vec4(in_position, 1.0);

P.S Версия шейдера должна быть 130 или ниже, в новых версиях это удалено.
 
250
12
24
Если я буду использовать 130, там отсутствует некоторая часть функций, например inverse, которая только со 150 доступна.
Пока только она во всем шейдере, но кто знает что мне понадобится в будущем
 
Сверху