Javascript 拣选实施
为可能是愚蠢的问题提前道歉 我试图理解three.js中的拾取实现。最后我看了一下代码,它似乎在用JavaScript进行数学交叉。这是真的吗 如果是这样,屏幕外缓冲区颜色分配方法难道不能工作吗?我模模糊糊地记得颜色精度是个问题,但我认为应该有办法解决这个问题。这不是更快吗Javascript 拣选实施,javascript,three.js,picking,Javascript,Three.js,Picking,为可能是愚蠢的问题提前道歉 我试图理解three.js中的拾取实现。最后我看了一下代码,它似乎在用JavaScript进行数学交叉。这是真的吗 如果是这样,屏幕外缓冲区颜色分配方法难道不能工作吗?我模模糊糊地记得颜色精度是个问题,但我认为应该有办法解决这个问题。这不是更快吗 或者像这样的东西已经实现了,但我错过了,或者只是不太理解?光线拾取将计算与网格面的交点。可以成功使用颜色拾取,但gl.readPixels速度较慢。更快的方法也可能是可行的,这取决于您的用例(例如,从高度图中选择一块瓷砖)。
或者像这样的东西已经实现了,但我错过了,或者只是不太理解?光线拾取将计算与网格面的交点。可以成功使用颜色拾取,但
gl.readPixels
速度较慢。更快的方法也可能是可行的,这取决于您的用例(例如,从高度图中选择一块瓷砖)。如果你提出你的实际问题,推荐一种方法会更容易。要完成上述评论,请参阅“交互式多维数据集”和“交互式多维数据集gpu”样本中的CPU/gpu选取示例。谢谢你的回答。我没有看到/注意到“cubes gpu”演示;这正是我所问的方法。但我不明白为什么光线拾取会与WebGL一起使用。readPixels(即使速度相对较慢)在任何场景中都不会比光线拾取快,而不仅仅是几个对象吗?好吧,第二遍的渲染会有一些开销。我不确定对象计数是否重要,或者更确切地说是对象层次结构。我认为对于几百个对象的更深层层次,gpu拾取速度会更快,即使这意味着要对colorID进行第二次渲染。