Я недавно работал над тем, чтобы перейти к управлению своими матричными элементами управления, чтобы мой движок был готов перейти к контексту 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 Посмотрите что-нибудь там? ^^;