模糊立方体贴图

发布于 2024-10-05 20:18:20 字数 177 浏览 0 评论 0原文

有什么想法如何去做吗?现在我已经动态生成了立方体贴图,我将其用作圆环上的反射纹理。

单独模糊每一面不会有效果,对吧?因为边界附近的像素不会受到相邻像素的模糊影响。

也许我应该制作另一个 FBO,绑定它,在屏幕上“展开”立方体贴图,应用基本的模糊着色器,然后将模糊纹理分成 6 个面?不知道如何做“单独”部分。

Any ideas how to do it? Now i have dynamically generated cubemap, which i use as a reflection texture on torus.

Blurring every side separately won't do the trick, right? Because of pixels near the border, which won't get blur impact from their neighbours.

Maybe i should make another FBO, bind it, "unroll" cubemap on the screen, apply basic blur shader and then separate that blurred texture into 6 sides? Not sure how to do the "separate" part.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

半世蒼涼 2024-10-12 20:18:20

模糊立方体贴图?那是相当难的。

要进行数学上正确的高斯模糊,您需要将其变换到频域(球谐函数),在那里应用低通滤波器,然后进行逆变换。这不是一个简单的任务。

如果近似值足够,请执行以下操作。

  1. 创建一个空的目标立方体贴图。
  2. 对于立方体的每个面 F,渲染面 F 和其他 4 个面的相邻像素,如下所示:

    <前><代码> ___________
    |\ /|
    | \ / |
    | \-----/ |
    | | | |
    | | F | |
    | | | |
    | /-----\ |
    | / \ |
    |/_________\|

    相邻像素的数量取决于模糊半径。

  3. 应用您最喜欢的模糊算法。
  4. 将 F 复制到目标立方体贴图。
  5. 对每张脸重复 2-4 步。

Blurring a cubemap? That's pretty hard.

To do a mathematically correct Gaussian blur, you need to transform it to the frequency domain (spherical harmonics), apply a low-pass filter there, and then do the inverse transform. That's not a simple task.

If an approximation is enough, do the following.

  1. Create an empty destination cubemap.
  2. For each face F of your cube, render the face F and the neighboring pixels from the other 4 faces like this:

     ___________
    |\         /|
    | \       / |
    |  \-----/  |
    |  |     |  |
    |  |  F  |  |
    |  |     |  |
    |  /-----\  |
    | /       \ |
    |/_________\|
    

    The amount of neighboring pixels depends on blur radius.

  3. Apply your favorite blur algorithm.
  4. Copy F to the destination cubemap.
  5. Repeat 2-4 for each face.
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文