1

我正在尝试将我的GL.VertexAttribPointer(...)论点类型指定为GL_DOUBLE. 根据 ES20 的 OpenTK 函数的文档,这应该是有效的(链接)。

但是,VertexAttribPointerType枚举似乎缺少DoubleOpenTK-1.0 的类型。换句话说,以下行:

GL.VertexAttribPointer(ATTRIBUTE_COORD2D, 3, VertexAttribPointerType.Double, false, 0, quadVertices); 

..无法编译,因为VertexAttribPointerType仅提供以下定义:

using System;
namespace OpenTK.Graphics.ES20
{
    public enum VertexAttribPointerType
    {
        Byte = 5120,
        UnsignedByte,
        Short,
        UnsignedShort,
        Float = 5126,
        Fixed = 5132
    }
}

这个问题有解决办法吗?您还应该如何double[]为顶点着色器指定一个顶点?

4

1 回答 1

2

glVertexAttribPointer的 OpenGL ES 2.0手册页说:

接受 GL_BYTE、GL_UNSIGNED_BYTE、GL_SHORT、GL_UNSIGNED_SHORT、GL_FIXED 或 GL_FLOAT

所以 OpenTK 没有 double 的原因是底层框架似乎也不支持它。OpenTK 文档可能存在复制粘贴错误。

于 2013-06-17T19:02:38.320 回答