OpenTK 4:这是如何设置各向异性过滤?

问题描述

在迁移到 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);