OpenGL / GLSL - 纹理过滤的实现

时间:2012-03-21 13:26:30

标签: opengl filtering glsl

我想在GLSL着色器中实现纹理过滤(min和magfilter)(因为我想使用image_load_and_store而不是采样器,而且我想以特殊的方式处理未定义的像素)而且我正在寻找对于一篇讨论过滤过程的文章。

我可以回忆一下如何从我曾经写过的光线跟踪器实现纹理滤波 - 我认为你需要考虑每个像素的紫外线渐变,并根据那些长度以某种方式缩放你的采样光栅..但是我用过一个49个样本的圆形内核,我认为太重了。

我认为我可以使用dFdx()和dFdy()来获得UV渐变 - 但我想知道openGL用于过滤的内核是什么样的,并以同样的方式在我的glsl着色器中实现它。 / p>

还 - 如何区分是否需要应用minfilter或magfilter?过滤过程是不同的?

最后但并非最不重要:如果是缩小过滤,如何根据UV渐变选择合适的mipmap等级?

1 个答案:

答案 0 :(得分:4)

在Codeproject上有一篇文章在GLSL中实现了不同的过滤器(其中包括双线性):link