d opengl自定义与固定管道矩阵怪异

d opengl自定义与固定管道矩阵怪异,opengl,matrix,d,Opengl,Matrix,D,我最近一直在努力转换到自己处理矩阵控件,这样我的引擎就可以转换到4.0+上下文,尽管目前我使用的是2.1上下文和Derelict。我尝试过各种矩阵计算,但我的着色器似乎都不起作用(屏幕上除了FPS计数器之外,什么都不起作用,除非我切换回固定管道,或者如果我切换vs以设置gl_Position=vec4(Position,1.0);)。即使我获取OpenGL通常设置的值并将它们放入其中,我也会得到相同的结果 我添加了我的矩阵和固定管道返回到draw调用的矩阵的打印输出,输出是相同的。我已经检查并再

我最近一直在努力转换到自己处理矩阵控件,这样我的引擎就可以转换到4.0+上下文,尽管目前我使用的是2.1上下文和Derelict。我尝试过各种矩阵计算,但我的着色器似乎都不起作用(屏幕上除了FPS计数器之外,什么都不起作用,除非我切换回固定管道,或者如果我切换vs以设置gl_Position=vec4(Position,1.0);)。即使我获取OpenGL通常设置的值并将它们放入其中,我也会得到相同的结果

我添加了我的矩阵和固定管道返回到draw调用的矩阵的打印输出,输出是相同的。我已经检查并再次检查了我的着色器代码,所以对于这个bug来自何处,我非常困惑

这在OSX和Windows上都会发生。我有一个
glGetError()
检查每个draw调用,没有收到任何错误。着色器链接并验证,不显示警告或错误

均布荷载规范: 顶点着色器: 片段着色器: 调试输出: 模式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]

*更新*我已经发布了matrix lib@github.com/mclark4386/DMath的代码,看到了吗?^

操作系统?GL实施供应商?驱动程序版本?很难说没有看到更多的代码。你是在调用
glGetError()
来确保没有发生什么奇怪的事情吗?我确实在每次调用draw时都会调用它。您需要查看代码的哪些部分?很高兴能提供更多信息,我只是不想一开始就让帖子内容过多。请显示你提供制服矩阵的代码。OpenGL希望您能做到这一点!(OpenGL-2提供标准制服,绑定到标准矩阵,但这些被称为gl_Modelview、gl_Projection等。您的名字是任意的。您用什么初始化OpenGL?Derelict?您是否为4.0上下文加载了正确的OpenGL版本?
#version 120

uniform float slider;

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

                gl_FragColor = diffuse;
        }
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]
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]