在获取FBO纹理之前,如何确保已经写入帧缓冲区?

时间:2017-06-03 00:23:57

标签: javascript three.js webgl

Three.js RTT sample中,代码如下:

renderer.render( sceneRTT, cameraRTT, rtTexture, true );

// Render full screen quad with generated texture
renderer.render( sceneScreen, cameraRTT );

如何在rtTexture中实际获取rtTexture数据之前确保已编写renderer.render( sceneScreen, cameraRTT );

1 个答案:

答案 0 :(得分:0)

你不需要检查。它将在您获取之前呈现。 WebGL就像所有OpenGL一样顺序发生。来自the spec

  

第2章

     

OpenGL ES操作

     

2.1 OpenGL ES基础

     

...

     

命令总是按接收顺序处理,尽管在命令的效果之前可能存在不确定的延迟   实现。这意味着,例如,在任何后续的原语影响帧缓冲之前必须完全绘制一个原语。它还意味着查询和像素读取操作返回状态与所有先前调用的GL命令的完全执行一致。通常,GL命令对GL模式或帧缓冲区的影响必须在任何后续命令之前完成   可以有任何这样的效果。

同一段也在the OpenGL spec