Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 拣选实施_Javascript_Three.js_Picking - Fatal编程技术网

Javascript 拣选实施

Javascript 拣选实施,javascript,three.js,picking,Javascript,Three.js,Picking,为可能是愚蠢的问题提前道歉 我试图理解three.js中的拾取实现。最后我看了一下代码,它似乎在用JavaScript进行数学交叉。这是真的吗 如果是这样,屏幕外缓冲区颜色分配方法难道不能工作吗?我模模糊糊地记得颜色精度是个问题,但我认为应该有办法解决这个问题。这不是更快吗 或者像这样的东西已经实现了,但我错过了,或者只是不太理解?光线拾取将计算与网格面的交点。可以成功使用颜色拾取,但gl.readPixels速度较慢。更快的方法也可能是可行的,这取决于您的用例(例如,从高度图中选择一块瓷砖)。

为可能是愚蠢的问题提前道歉

我试图理解three.js中的拾取实现。最后我看了一下代码,它似乎在用JavaScript进行数学交叉。这是真的吗

如果是这样,屏幕外缓冲区颜色分配方法难道不能工作吗?我模模糊糊地记得颜色精度是个问题,但我认为应该有办法解决这个问题。这不是更快吗


或者像这样的东西已经实现了,但我错过了,或者只是不太理解?

光线拾取将计算与网格面的交点。可以成功使用颜色拾取,但
gl.readPixels
速度较慢。更快的方法也可能是可行的,这取决于您的用例(例如,从高度图中选择一块瓷砖)。如果你提出你的实际问题,推荐一种方法会更容易。要完成上述评论,请参阅“交互式多维数据集”和“交互式多维数据集gpu”样本中的CPU/gpu选取示例。谢谢你的回答。我没有看到/注意到“cubes gpu”演示;这正是我所问的方法。但我不明白为什么光线拾取会与WebGL一起使用。readPixels(即使速度相对较慢)在任何场景中都不会比光线拾取快,而不仅仅是几个对象吗?好吧,第二遍的渲染会有一些开销。我不确定对象计数是否重要,或者更确切地说是对象层次结构。我认为对于几百个对象的更深层层次,gpu拾取速度会更快,即使这意味着要对colorID进行第二次渲染。