【发布时间】:2016-04-17 17:59:25
【问题描述】:
GLSL 提供 dFdx 和 dFdy,但为什么没有 dFdt?是否有可能获得颜色相对于时间的变化率?
【问题讨论】:
GLSL 提供 dFdx 和 dFdy,但为什么没有 dFdt?是否有可能获得颜色相对于时间的变化率?
【问题讨论】:
为什么没有 dFdt?
t 来自哪里? x 和 y 基于片段在窗口空间中的位置,相对于正在渲染的基元的相邻片段。片段没有t。
渲染是一个 3 维的过程,而不是 4 维的。或者至少,在这方面不是 4 维的。
是否可以获得颜色相对于时间的变化率?
这取决于你的意思。您可以存储上一个帧缓冲区并从中读取以获取该位置上一个帧的颜色。但这不会让您了解片段的变化率。它将为您提供帧缓冲区的变化率。
毕竟,两个片段可以重叠。混合会导致两种颜色混合。深度测试会导致一个覆盖另一个。因此,只有将之前的帧缓冲区图像与完全渲染的当前帧缓冲区图像进行比较,而不仅仅是与渲染期间的片段进行比较,这样的概念才有意义。
【讨论】:
uniform,则导数将是零。