opengl 深度
- 作者: 针快
- 来源: 51数据库
- 2020-10-02
用glClear(GL_DEPTH_BUFFER_BIT)清楚深度缓存,还有glClearDepth设置成1
webgl1.0的文档中对于readpixels方法有明确的说明:the data returned from readpixels must be up-to-date as of the most recently sent drawing command.
也就是说该方法必须在渲染完一帧的页面之后立即调用才有效果,否则取不到值,比如这样调用:
gl.viewport(0,0,world.canvas.width,world.canvas.height);
gl.clear(gl.color_buffer_bit|gl.depth_buffer_bit);
scene.draw(camera);
var a = new uint8array(4);
gl.readpixels(0,0,1,1,gl.rgba,gl.unsigned_byte,a);
console.log(a);
此处一帧的绘制(scene.draw(camera))完全完成之后再读取就可以获取准确值了,你自己可以试一下。
webgl1.0的文档中对于readpixels方法有明确的说明:the data returned from readpixels must be up-to-date as of the most recently sent drawing command.
也就是说该方法必须在渲染完一帧的页面之后立即调用才有效果,否则取不到值,比如这样调用:
gl.viewport(0,0,world.canvas.width,world.canvas.height);
gl.clear(gl.color_buffer_bit|gl.depth_buffer_bit);
scene.draw(camera);
var a = new uint8array(4);
gl.readpixels(0,0,1,1,gl.rgba,gl.unsigned_byte,a);
console.log(a);
此处一帧的绘制(scene.draw(camera))完全完成之后再读取就可以获取准确值了,你自己可以试一下。
推荐阅读
