OpenTK:Sprites没有渲染?

时间:2017-04-09 07:40:32

标签: c# opengl opentk opengl-4

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

基本设计如下:

视图继承了抽象类WindowBase,其中包含了大部分繁重的东西,并声明了一个Shader(我现在只在Assets中有一个)。我现在唯一的观点就是Main.cs

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

还有一个输入服务还没有做太多,虽然我确实已将它绑定到Escape Key以立即关闭窗口。但我怀疑该计划的一部分与这个问题有关。

更新:一块一块地,我慢慢将原件转换成我的,并且一旦我换到我的Shader系统就发现它已经坏了,所以问题就在那里。我会在这里发布我的代码:

Their Shader class

My version

我猜这点我必须在某个地方输入错字。或者我的一个循环是不兼容的。也许我在Assets Class中处理我的streamreader的方式是什么?

1 个答案:

答案 0 :(得分:0)

Solved it: My problem was on line 114, I had the following code:

    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;
    }

As follows:

_uniforms.ContainsKey("name") should be _uniforms.ContainsKey(name)