用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))完全完成之后再读取就可以获取准确值了,你自己可以试一下。
Photoshop|
Dreamweaver|
SVG|
WebGL|
Visual Studio|
PowerDesigner|
Eclipse|
Git|
Apache Ant|
Atom|
Composer|
CodeSmith|
Flex|
Gradle|
Maven|
Sublime Text3|
SVN|
Tableau|
Vim|
Chrome开发者工具|
OpenGL|
Unity|
Direct3D|
用户登录
还没有账号?立即注册
用户注册
投稿取消
文章分类: |
|
还能输入300字
上传中....