OpenTK - 如何为立方体贴图阵列分配存储空间?

时间:2016-10-19 15:34:37

标签: c# opengl opentk

我需要创建一个立方体贴图数组,但我找不到正确的参数。

在示例代码方面没什么用,但我确实在OpenGL中找到了这个:

HiGL_TexStorage3D(
    GL_TEXTURE_CUBE_MAP_ARRAY,
    Data->GetMipMap(),
    DestFormat,
    Data->GetWidth(),
    Data->GetHeight(),
);

所以似乎所需的纹理目标是GL_TEXTURE_CUBE_MAP_ARRAY,但是OpenTK并没有将其列为选项,只有以下内容:

GL.TexStorage3D(TextureTarget3d.ProxyTexture2DArray, 0, format, width, height, depth);   
GL.TexStorage3D(TextureTarget3d.ProxyTexture3D, 0, format, width, height, depth);   
GL.TexStorage3D(TextureTarget3d.ProxyTextureCubeMap, 0, format, width, height, depth);   
GL.TexStorage3D(TextureTarget3d.Texture2DArray, 0, format, width, height, depth);   
GL.TexStorage3D(TextureTarget3d.Texture3D, 0, format, width, height, depth); 
GL.TexStorage3D(TextureTarget3d.TextureCubeMap, 0, format, width, height, depth);   

有人可以解决一些问题吗?几个月前www.opentk.com消失了。

1 个答案:

答案 0 :(得分:0)

通过使用GL.TexImage3DTextureCubeMapArray变得可访问。

GL.TexImage3D(TextureTarget.TextureCubeMapArray, 0, PixelInternalFormat.Rg16, size, size, layers * 6, 0, PixelFormat.Red, PixelType.Float, IntPtr.Zero);

问题是GL.TexStorage3D采用TextureTarget3D类型的参数,但不允许TextureCubeMapArray,而GL.TexImage3D采用TextureTarget,这样做。{/ p>

随后,我不确定这是否仍构成错误,或者这两个函数的区别如何。