问题标签 [picking]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
757 浏览

android - Android Open GL 对象选择

在 open GL 中有一个术语叫做拣货。用于确定屏幕上的哪个对象被选中。有人可以向我解释在对象的每个实例中使用拾取和放置基于触摸的侦听器之间的区别。一个多维数据集类。

假设;我想要做的是在屏幕上随机展示多个立方体。我想如果我给 Cube 类一个监听器,在触摸立方体时,监听器应该为每个按下的立方体相应地触发。

这是我要添加监听器的代码。这是可能的还是需要挑选?

0 投票
1 回答
1765 浏览

3d - 3D 图形选择 - 这种情况的最佳方法是什么

我正在开发一个允许用户在场景中选择 3d 对象的项目,我想知道每个人都认为处理这个特定场景的最佳方法是什么。

基本上我们有一个包含至少 100 个对象的场景(它们是低多边形,但由至少 ~12-15 个三角形组成)和最多约 1000-2000 个对象。

并非所有对象始终都是“可拾取”的,因为某些对象会遮挡其他对象,因此“可拾取”对象可能落在 800-1500 之间(取决于场景的复杂性)。

当一个对象被“拾取”时,我们希望它以某种方式突出显示,因此这意味着以不同的方式渲染它,这很简单,但我们希望不仅通过单击而且拖动来完成拾取 - 这意味着我们想要运行拾取在很短的时间内算法很多。理想情况下,用户会在对象仍处于“拖动”操作时看到突出显示的对象 - (这意味着应该异步完成拾取,以免滞后于主渲染?)。

我尝试过简单的光线追踪拾取,但这显然很慢,因为我们循环遍历场景中的所有三角形以找到对象。

我还尝试过基于 GPU 的拾取 - 使用像素缓冲区渲染场景,为每个对象提供独特的颜色,但通过拖动操作,这意味着多次渲染和 GPU 到 CPU 的数据传输,性能不佳。

我是否可以探索其他可能性来尝试获得我想要的性能和功能?

谢谢你的时间。

0 投票
0 回答
1060 浏览

opengl - 使用正交相机进行拾取/射线投影

我的代码中有一个“简单”的问题,当我的相机处于透视模式时可以完美地选择工作,但是当我处于正交模式时结果很奇怪。

这是我所做的:

射线计算听起来不错,因为我可以选择对象。

这是我对结果所做的事情:

当我做最后一步时,这就是我所拥有的:

没有归一化方向:

  • 在正交相机中还可以
  • 不要在透视相机中工作

归一化方向:

  • 不要在透视相机中工作
  • 在正交相机中还可以
0 投票
0 回答
185 浏览

c++ - 我想在 qt creator (4.7) 中编译这个文件

我是使用 Qt 和 OpenGl 的新手,我想编译这个文件,但我不能。我真的很想试试这个例子,因为我想了解“挑选功能”是如何工作的。我应该怎么办?

这是代码:(你可以在这里找到它:http ://www.et.byu.edu/~merk/me570/qtRedExamples.html )

0 投票
2 回答
469 浏览

ios - opengl iOS glkit 颜色拾取

它是关于使用颜色挑选来挑选 3d 对象的。我将我的网格(更新:它驻留在静态头文件中,并在同一个项目中的屏幕上很好地显示)绘制到一个新的屏幕外帧缓冲区,然后我使用 glReadPixels 来识别用户是否触摸它。

遵循 Erik M.Buck 的“Learning OpenGLES for iOS”一书中的 opengles_ch10_1 项目代码,我编写了以下代码,该代码始终打印以 nslog 拾取(通过点击)像素的颜色 0,0,0。

我的代码是:

0 投票
1 回答
444 浏览

libgdx - 如何拾取精灵?

一个简单的问题:我如何在 libgdx 中获取精灵?我的意思是当我点击/触摸屏幕时,它会检查点击了哪个(如果有的话)精灵。

0 投票
0 回答
698 浏览

opengl - 了解 glu.PickMatrix() 的实现

我正在开发一个需要对象选择功能的 OpenGL 项目。我使用 OpenTK 框架来做到这一点;但是 OpenTK 不支持 glu.PickMatrix() 方法来定义拾取区域。我最终在谷歌上搜索了它的实现,这就是我得到的:

我完全无法理解这段代码。此外,这不适用于我的以下代码示例:

我希望每次在三角形内单击时只得到一次点击,但无论我点击哪里,我总是得到 2 次。我怀疑 GluPickMatrix 的实现有问题,我还没有弄清楚。

0 投票
2 回答
2217 浏览

c++ - 如何在 2D opengl 中进行挑选?

我想在 opengl 中选择 2d 对象,但不知道如何。我希望它像 3d 中的 gluPickMatrix 一样。这是我尝试过的:

但是当我点击它时它不会选择。

0 投票
0 回答
91 浏览

javascript - 拣货实施

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

我试图了解三个.js 中的拣货实现。最后我查看了代码,它似乎在 JavaScript 中进行数学交集。真的吗?

如果是这样,屏幕外缓冲区颜色分配方法不能工作吗?我隐约记得色彩精度是一个问题,但我认为应该有办法解决这个问题。这不会快很多吗?

或者这样的事情已经实现了,我错过了,或者只是不明白?

0 投票
2 回答
1257 浏览

three.js - 正交相机和pickRay?

我试图实现一个功能来选择和移动正交相机的舞台组合中的对象。

我想获得与以下相同的示例:http ://threejs.org/examples/webgl_interactive_draggablecubes.html

但不是透视相机。

我已经更换了:

和 :

并替换了这个:

这样 :

但是,它似乎还不足以运行。

那么,它缺少什么?

是否可以将投影仪和射线与 OrthographicCamera 一起使用?

谢谢。