gpt4 book ai didi

opengl-es - 如何读取 WebGL 中的深度缓冲区?

转载 作者:行者123 更新时间:2023-12-04 09:42:35 25 4
gpt4 key购买 nike

使用 WebGL API,我如何从深度缓冲区中获取值,或者以任何其他方式从屏幕坐标中确定 3D 坐标(即找到单击的位置),而不是通过执行我自己的光线转换?

最佳答案

几年过去了,这些天 WEBGL_depth_texture扩展是广泛可用的......除非你需要支持 IE。

一般用法:

准备:

  • 查询分机(必填)
  • 分配单独的颜色和深度纹理 (gl.DEPTH_COMPONENT)
  • 将两个纹理合并到一个帧缓冲区(gl.COLOR_ATTACHMENT0gl.DEPTH_ATTACHMENT)

  • 渲染:
  • 绑定(bind)帧缓冲,渲染你的场景(通常是简化版)
  • 取消绑定(bind)帧缓冲区,将深度纹理传递给着色器并像读取任何其他纹理一样读取它:
    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/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com