【问题标题】:OpenGL : Blending & feedback effectOpenGL:混合和反馈效果
【发布时间】:2021-03-26 22:19:55
【问题描述】:

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

我的目标是在我玩之前帧的黑色矩形反馈的 alpha 时看到,慢慢地褪色,某种轨迹,它或多或少是有效的。

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

【问题讨论】:

    标签: c++ opengl alphablending blending glblendfunc


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 2010-10-11
        • 1970-01-01
        • 1970-01-01
        • 2011-12-02
        • 1970-01-01
        • 1970-01-01
        • 2015-03-30
        • 2011-11-02
        • 1970-01-01
        相关资源
        最近更新 更多