如何在webgl中绘制两个带有alpha的纹理

问题描述 投票:-1回答:1

我想绘制一个纹理,并在顶部绘制另一个具有透明背景的纹理。因此透明部分显示出第一个纹理。

我对渲染中的每个纹理分别称为gl.cleargl.drawElements。但是输出是,带有透明部分的透明纹理是黑色,即透明色。仿佛从未绘制过第一个纹理,而仅在透明背景下绘制了第二个纹理。如何解决?

  gl.blendFunc(gl.SRC_ALPHA, gl.ONE_MINUS_SRC_ALPHA);
  gl.enable(gl.BLEND);
  gl.enable(gl.DEPTH_TEST);
javascript html opengl webgl
1个回答
0
投票

仿佛从未绘制过第一个纹理,而仅在透明背景下绘制了第二个纹理。如何解决?

这是故意的:

我为渲染上的每个纹理调用gl.clear和gl.drawElements。

所以,如果您仍然想保留它,为什么要清除帧缓冲区之后渲染第一个纹理?

© www.soinside.com 2019 - 2024. All rights reserved.