C# OpenTK:精灵不渲染?

C# OpenTK:精灵不渲染?,c#,opengl,opentk,opengl-4,C#,Opengl,Opentk,Opengl 4,我已经能够得到渲染的窗口,我很确定我的着色器正在工作,我可以从我的资源获取图像,但是当我实际渲染视图时,我只得到我的蓝色背景,没有精灵显示 基本设计如下: 视图继承了抽象类WindowBase,它承担了大部分繁重的工作,并声明了一个着色器(我现在在Assets中只有一个着色器)。我现在唯一的观点就是Main.cs 然后,我可以在视图中声明ObjectBase实例。对象具有由精灵组成的动画,精灵通过OpenGL链接到纹理服务生成的纹理 还有一个输入服务还没有做很多工作,尽管我现在确实有一个转义键来

我已经能够得到渲染的窗口,我很确定我的着色器正在工作,我可以从我的资源获取图像,但是当我实际渲染视图时,我只得到我的蓝色背景,没有精灵显示

基本设计如下:

视图继承了抽象类WindowBase,它承担了大部分繁重的工作,并声明了一个着色器(我现在在Assets中只有一个着色器)。我现在唯一的观点就是Main.cs

然后,我可以在视图中声明ObjectBase实例。对象具有由精灵组成的动画,精灵通过OpenGL链接到纹理服务生成的纹理

还有一个输入服务还没有做很多工作,尽管我现在确实有一个转义键来关闭窗口。但我怀疑该计划的一部分是否与这个问题有关

更新:一块一块地,我慢慢地将原作转换为我的,当我切换到我的着色器系统时发现它坏了,所以问题就在那里。我将在这里发布我的代码与他们的代码:


我猜在这一点上我一定是在什么地方打错了。或者我的一个循环不兼容。也许我在Assets类中处理streamreader的方式解决了这个问题:我的问题在第114行,我有以下代码:

    public int Attribute(string name)
    {
        return _attributes.ContainsKey(name) ? _attributes[name].Address : -1;
    }

    public int Uniform(string name)
    {
        return _uniforms.ContainsKey("name") ? _uniforms[name].Address : -1;
    }

    public uint Buffer(string name)
    {
        return _buffers.ContainsKey(name) ? _buffers[name] : 0;
    }
详情如下:


_conformers.ContainsKey(“名称”)应该是_uniforms.ContainsKey(名称)

不要只转储所有代码。这是OpenGL,我真的不确定是否有办法简化我的代码。这是一个完整的游戏引擎,它不会渲染精灵。就像是。。。它可能会闯入8个不同的地方。但是,您要查看的代码位于Views/Main.cs中。