【发布时间】:2018-08-31 06:50:28
【问题描述】:
待办事项:
在我们的 HUD 上渲染模型,
但不是渲染所有这些微小的多边形,
我们希望 优化这些多边形并将其渲染为纹理,然后将此纹理用作单个纹理多边形叠加。如果整个渲染的纹理有空白像素或不透明像素,这可以正常工作,
但是当我们有 alpha 值介于 0 和 1 之间的像素时,我们会遇到问题。例如假设我们的模型中只有一个红色 (1,0,0) 多边形,其 alpha 为 0.5。
如果我们 使用正常混合 (SRC_ALPHA, 1-SRC_ALPHA) 将其渲染为纹理,我们最终会得到一个深红色 (0.5,0,0) 和 0.5 的 alpha。
当它被用作纹理时,它比应有的颜色深得多,主要是因为红色多边形已与基础混合“黑色”的纹理。
无论这显示在什么背景上,都是错误的。
我们需要的是纹理具有全红色 (1,0,0) 和 0.5 的 alpha,但是当我们渲染多个 alpha 混合多边形时,这会变得更加复杂。
有没有办法做到这一点?
也许使用不同的屏幕混合模式?
这需要在渲染到纹理时使用 GPU 完成。
使用 OpenGLES 2.0。
请提出建议。
谢谢
肖恩
【问题讨论】:
标签: alphablending render-to-texture hud