使用 WebGL API,我如何从深度缓冲区中获取值,或者以任何其他方式从屏幕坐标中确定 3D 坐标(即找到单击的位置),而不是通过执行我自己的光线转换?
最佳答案
几年过去了,这些天 WEBGL_depth_texture
扩展是广泛可用的......除非你需要支持 IE。
一般用法:
准备:
gl.DEPTH_COMPONENT
) gl.COLOR_ATTACHMENT0
,gl.DEPTH_ATTACHMENT
)渲染:
texPos.xyz = (gl_Position.xyz / gl_Position.w) * 0.5 + 0.5;
float depthFromZBuffer = texture2D(uTexDepthBuffer, texPos.xy).x;
关于opengl-es - 如何读取 WebGL 中的深度缓冲区?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7327544/