1

“After Effects”的Light Glow效果背后的理论是什么?我想使用 GLSL 来实现它。但如果我至少更接近它背后的理论,我可以复制它。

4

3 回答 3

3

我最近一直在实施类似的东西。我的渲染管道看起来像这样:

  1. 将场景渲染到纹理(全屏)
  2. 过滤场景(“明亮通道”)以隔离高亮度、闪亮的位
  3. 将 (2) 下采样到更小的纹理(以提高性能),并进行 H 高斯模糊
  4. 在 (3) 上执行 V 高斯模糊。
  5. 将 (4) 的输出与 (1) 的输出混合
  6. 显示到屏幕。

通过一些参数调整,你会得到它看起来很漂亮。谷歌诸如“bright pass”(低通滤波器)、Gaussian Blur、FBO(Frame Buffer Objects)等。像“bloom”和“HDR”这样的效果也有大量关于做这些事情的不同方式的信息。在确定目前的方法之前,我尝试了大约 4 种不同的高斯模糊方法。

于 2013-02-06T22:23:10.910 回答
1

看看如何制作阴影体积,而不是刻出阴影,您可以在体积上运行多通道模糊,将其材质设置为非常发射的加法混合着色器,我想您会得到类似的效果.

或者,您可以执行GPUGems实现:

于 2013-02-06T21:20:18.177 回答
0

我会回答我自己的问题,以防有人同时到达这里。有了更高的精度(实际上是 100% 的精度),我得到了精确的 After Effects 发光效果。它的工作方式是:

  1. 对原始图像应用高斯模糊。
  2. 提取此模糊图像的亮度
  3. 就像在 After Effects 中一样,您有两种颜色(A 和 B)。所以秘诀是在这些颜色之间制作渐变映射,以符合所需的“颜色循环”。如果您不知道,渐变图是颜色(在本例中为 A 和 B)之间的插值。遵循 After Effects 的相同词汇,您需要在您选择的“颜色循环”上循环 X 次......这意味着,假设您使用 A->B->A 之类的颜色循环,它将被视为一个循环在您的图像上(可以在 Photoshop 上尝试此操作)。
  4. 将您在第 2 步中提取的 luma 用作渐变图的参数...换句话说:luma=(0%, 50%, 100%) 分别映射到颜色 (A, B, A)...中点被插值。
  5. 根据所需的“发光操作”(添加、相乘等)将您的图像与原始图像混合

此过程对每个像素都像 After Effects 一样工作。辉光的其他细节可以在基本程序之后轻松完成……需要校准“辉光强度”、“辉光阈值”等内容,以便在相同参数下获得相同的结果。

于 2013-05-12T01:12:28.153 回答