opengl - fwidth glsl 函数实际用于什么?

标签 opengl graphics rendering glsl shader

每次我喝醉了浏览所以我看到一个未答复fwidth问题。
这让我想知道它实际上是为了做什么而设计的。
阅读文档是:abs(dFdx(p)) + abs(dFdy(p))所以它不是经典的 mip 选择是 max(dx,dy) .
是否用于替代 mip 选择?但是我没有找到abs(dx) + abs(dy)的案例。会更好。
必须有一些使用该功能的签名纸或通用算法我完全没有。而且它一定很受欢迎,因为它已成为 GLSL。
我唯一能想到的是我缺少的一些 2d 后过滤器。
但是什么?
我相信这里有人知道,一旦你看到它就很明显了。
所以:什么算法使用abs(dx) + abs(dy) ?

最佳答案

使用 2D 过滤建议,您实际上很在意。任何依赖于像素与其相邻像素之间变化率的某种度量的过滤器都可以从该函数中受益。

示例包括抗锯齿、边缘检测、各向异性过滤。我敢肯定还有更多的例子人们可以想到。

从您的问题和评论看来,您希望将此功能包含在 GLSL 中有一个令人兴奋的理由。我只想说这是一个有用的功能。也许对这个函数的实际内部结构有更深入了解的人可以提供更多关于幕后发生的事情的细节(即,是否比手写的 dFdx 和 dFdy 有任何性能改进)。

关于opengl - fwidth glsl 函数实际用于什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6800544/

相关文章:

opengl - 如何在OpenGL中更改纹理的位置?

c++ - 如何让 OpenGL 在 OSX 上运行

ubuntu - gcc 上的静态和动态链接

iphone - 哪种调整 UIImage 大小的方法更好,为什么?

c - 如何在 openGL 中加载和填充带有纹理图像的立方体

graphics - 游戏着色器技术/用途概述/展示

android - 绘制固定长度曲线

Android Studio 2.1.2 渲染问题。 VectorDrawable_Delegate.nDraw

javascript - 如何衡量单页应用程序中的客户端性能

c++ - DirectX:在不使用渲染目标的情况下渲染到屏幕缓冲区