因为我不是专家,请不要愚蠢地考虑这个问题.我已经阅读了几个使用glTexParameter设置纹理参数的教程.我正在谈论GL_TEXTURE_MIN_FILTER,GL_TEXTURE_MAG_FILTER,GL_TEXTURE_WRAP_R等.突然间,我遇到了一个现在使用glSamplerParameter来设置这些参数的教程.
我看到glTexParameter和glSamplerParameter之间有一些常见的参数,如(GL_TEXTURE_MIN_FILTER,GL_TEXTURE_MAG_FILTER,GL_TEXTURE_WRAP_R,GL_TEXTURE_MIN_LOD等),还有一些只适用于glTexParameter(GL_TEXTURE_BASE_LEVEL,GL_TEXTURE_SWIZZLE_R等).我完全理解不常见的,因为毕竟glTexParameter正在对图像起作用,而这些参数本身就指定了属性图像.
但我不太明白为什么这两个GL调用之间有一些共同的参数.哪个应该用?在我看来,像(GL_TEXTURE_MIN_FILTER,GL_TEXTURE_MAG_FILTER,GL_TEXTURE_WRAP_R等)的采样参数应该只适用于采样器(glSamplerParameter)而不适用于glTexParameter.
请帮我理解两者之间的区别.
Tom*_*mmy 11
glSamplerParameter相对较新.采样纹理的方式实际上是进行采样的事物的属性,而不是纹理本身的属性 - 不仅仅是语义术语,而是实际的真实硬件.
除了表示事物在硬件上实际运行的愿望之外,将两个不相关的东西捆绑在一起可能会使您在性能方面付出代价.如果你采样的方式采样器的属性然后例如你可以在同一着色器中以两种不同的方式采样相同的纹理.如果它是纹理的属性,那么你将不得不上传相同的纹理两次或写一个多遍着色器.
因此,这两件事现在正在分开.