d opengl custom vs странность матрицы с фиксированным конвейером - PullRequest
3 голосов
/ 05 мая 2011

Я недавно работал над тем, чтобы перейти к управлению своими матричными элементами управления, чтобы мой движок был готов перейти к контексту 4.0+, , хотя в настоящее время я использую контекст 2.1 с Derelict ,Я перепробовал все виды матричных вызовов и, похоже, ничего не работает с моим шейдером (ничего на экране, кроме счетчика FPS, если только я не переключаюсь обратно на fixed-pipe или если я переключаю vs на set gl_Position = vec4 (position, 1.0);).Даже когда я беру значения, которые обычно устанавливает OpenGL, и помещаю их в него, я получаю то же самое.

Я добавил распечатку как из моей матрицы, так и из той, которую фиксированный конвейер возвратил к вызовам отрисовки, и вывод был ИДЕНТИЧНЫМ.Я уже проверил и дважды проверил свой код шейдера, так что я довольно растерялся, откуда эта ошибка.

Это происходит как в OSX, так и в Windows.У меня есть glGetError() проверка каждого звонка и я не получаю никаких ошибок.Шейдеры связываются и проверяются без предупреждения или ошибки.

код для равномерной загрузки:

glUniformMatrix4fv(ModelViewLoc,1, GL_FALSE ,modelview);
glUniformMatrix4fv(ProjectionLoc,1, GL_FALSE ,projection);

Вершинный шейдер:

#version 120

//layout(location = 0) in vec3 position;
attribute vec3 position;

uniform mat4 ModelView;
uniform mat4 Projection;

void main()
        {
                mat4 mvp = Projection*ModelView;
                gl_Position = mvp * vec4(position,1.0);
                //gl_Position = vec4(position,1.0);
        }

Фрагмент шейдера:

#version 120

uniform float slider;

        void main()
        {
                vec4 diffuse = vec4(vec3(slider),1.0);

                gl_FragColor = diffuse;
        }

отладочный вывод:

Модель 1:

OpenGL ModelView: [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -2, -2, -8, 1]
mine:             [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -2, -2, -8, 1]

OpenGL Projection:[1.30323, 0, 0, 0, 0, 1.30323, 0, 0, 0, 0, -1.0002, -1, 0, 0, -0.20002, 0]
mine:             [1.30323, 0, 0, 0, 0, 1.30323, 0, 0, 0, 0, -1.0002, -1, 0, 0, -0.20002, 0]

Модель 2:

OpenGL ModelView: [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 2, 2, -8, 1]
mine:             [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 2, 2, -8, 1]

OpenGL Projection:[1.30323, 0, 0, 0, 0, 1.30323, 0, 0, 0, 0, -1.0002, -1, 0, 0, -0.20002, 0]
mine:             [1.30323, 0, 0, 0, 0, 1.30323, 0, 0, 0, 0, -1.0002, -1, 0, 0, -0.20002, 0]

* ОБНОВЛЕНИЕ * Iвыпустили код для матрицы lib @ github.com/mclark4386/DMath Посмотрите что-нибудь там? ^^;

...