【问题标题】:WebGL semi-transparent appears whiteWebGL 半透明出现白色
【发布时间】:2012-07-05 19:51:30
【问题描述】:

我在使用 WebGL 时遇到问题。半透明纹理看起来是半透明的,但它们也会变白,渲染时不考虑纹理中的颜色...

这是我设置的:

gl.blendFunc(BlendingFactorSrc.SRC_ALPHA, BlendingFactorDest.ONE_MINUS_SRC_ALPHA);

有哪些可能的解决方案?

【问题讨论】:

  • 使用多重纹理是唯一的解决方案吗?如何使用片段着色器完成?
  • 这太模糊了。请发布完整的代码示例,最好附上问题的图片,以便我们了解您在说什么。

标签: opengl-es webgl alpha alphablending


【解决方案1】:

通常,如果白色在 WebGL 场景中意外出现,它会从网页本身的 CSS 背景中混入(除非您更改它,否则默认为白色)。

换句话说,在默认的 WebGL 设置下,任何将小于 1.0 的 alpha 值写入颜色缓冲区的着色器都会使 <canvas> 本身变为半透明并显示网页的背景。我相信您可以更改 WebGLContextAttributes 设置以禁用此行为,或者只是确保您的着色器始终输出 1.0 的 alpha 值。

【讨论】:

    猜你喜欢
    • 2020-11-29
    • 2015-04-25
    • 2018-06-18
    • 2012-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多