我正在尝试在WebGl中进行选择.我有两个渲染的形状,每个都映射了不同的纹理.我试图在某些坐标上抓取像素.这是一个例子.
var pixelValues = new Uint8Array(4);
gl.readPixels(10, 35, 1, 1, gl.RGBA, gl.UNSIGNED_BYTE, pixelValues);
console.log(pixelValues);
Run Code Online (Sandbox Code Playgroud)
但是pixelValues总是包含[0,0,0,0].我究竟做错了什么?我需要做一些与帧缓冲相关的事情吗?
我有一个WebGLTexture对象.如何获得该纹理的像素(类似于WebGL的readPixels,但是纹理)?
我的一个想法是使用preserveDrawingBuffer = true创建画布和WebGL上下文,并在此画布上渲染我的纹理,使其显示2D平面,然后使用readPixels.这种方法合理吗?有没有人有这样的示例代码?