问题描述
在迁移到 OpenTK4 时,我不知道这是否是为各向异性过滤设置 value
的正确方法。
是吗:
float value = 1.0f; // Dummy value for example
GL.TexParameter(target,(TextureParameterName)0x84FE,value);
是否在某个地方定义了一个枚举可以代替它?而不是十六进制代码。
解决方法
各向异性过滤是 OpenGL 4.6 标准的一部分。见OpenGL 4.6 API Core Profile Specification - 8.10 Texture Parameters。
但是,enum TextureParameterName
(namespace OpenTK.Graphics.OpenGL4
) 中缺少纹理参数 TEXTURE_MAX_ANISOTROPY_ (0x84FE,34046)。
此外,enum GetPName
中缺少参数 MAX_TEXTURE_MAX_ANISOTROPY (0x84FF,34047)。
我在 OpenTK GitHub 存储库中创建了一个问题:
Texture parameter TEXTURE_MAX_ANISOTROPY is missing #1270
该问题将在 OpenTK 5 中得到修复。一种解决方法是使用 enum All
并将其转换为正确的类型:
float maxTextureMaxAnisotropy = GL.GetFloat((GetPName)All.MaxTextureMaxAnisotropy);
GL.TexParameter(target,(TextureParameterName)All.TextureMaxAnisotropy,maxTextureMaxAnisotropy);