如何为立方体映射数组分配存储空间

本文关键字:数组 分配 存储空间 映射 立方体 | 更新日期: 2023-09-27 18:13:42

我需要创建一个立方体映射数组,但我有困难找到正确的参数。

在示例代码方面没有太多,但我确实在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几个月前消失了

如何为立方体映射数组分配存储空间

通过使用GL.TexImage3D, TextureCubeMapArray变得可访问。

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类型的参数,这允许。

随后,我不确定这是否仍然构成一个bug,或者这两个函数有什么不同。