OpenGL:混合和反馈效果

问题描述

我在一个简单的项目上苦苦挣扎,作为示例/沙箱,我在我的输出上渲染了一个小的振荡矩形。我没有使用 glclearcolor() 而是在每一帧我先画一个黑色矩形,与 glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA);

我的目标是在我使用之前帧的黑色矩形反馈的 alpha 进行游戏时,看到慢慢淡出,出现某种轨迹,并且或多或少起作用。

不过,我的主要问题是,这条小路从来没有真正消失过,而且我试图找到这条小路的时间越长,情况就越糟。另外,在看到任何踪迹之前,我必须完全启动 alpha,我真的不明白为什么。

enter image description here

解决方法

default OpenGL framebuffer 的每个颜色分量仅使用 8 位。您可以通过使用由浮点数或 16 位或 32 位组件支持的自定义 framebuffer 来增加这一点。

,

我不确定不使用 glClearColor 是否是实现运动轨迹的正确方法。 alpha 混合的最后一点可能会遇到精度/舍入问题,其中 0.9 * 0x01 可能会返回 0x01(对于每个 rgba 八位字节)。 (虽然我会很惊讶你能看到差异,但谁知道呢)。如果不是这种情况,我会切换到一个合适的 glClearColor,然后创建一个类似于你做前导框的盒子的轨迹,确定性的衰减/资源释放。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...