如何解决OpenGL:混合和反馈效果
我在一个简单的项目上苦苦挣扎,作为示例/沙箱,我在我的输出上渲染了一个小的振荡矩形。我没有使用 glclearcolor() 而是在每一帧我先画一个黑色矩形,与 glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA);
我的目标是在我使用之前帧的黑色矩形反馈的 alpha 进行游戏时,看到慢慢淡出,出现某种轨迹,并且或多或少起作用。
不过,我的主要问题是,这条小路从来没有真正消失过,而且我试图找到这条小路的时间越长,情况就越糟。另外,在看到任何踪迹之前,我必须完全启动 alpha,我真的不明白为什么。
解决方法
default OpenGL framebuffer 的每个颜色分量仅使用 8 位。您可以通过使用由浮点数或 16 位或 32 位组件支持的自定义 framebuffer 来增加这一点。
,我不确定不使用 glClearColor 是否是实现运动轨迹的正确方法。 alpha 混合的最后一点可能会遇到精度/舍入问题,其中 0.9 * 0x01 可能会返回 0x01(对于每个 rgba 八位字节)。 (虽然我会很惊讶你能看到差异,但谁知道呢)。如果不是这种情况,我会切换到一个合适的 glClearColor,然后创建一个类似于你做前导框的盒子的轨迹,确定性的衰减/资源释放。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。