问题标签 [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 回答
257 浏览

three.js - Three.js 粒子 vs 粒子系统和拾取

我有一个使用 Three.js ParticleSystem 渲染大约 50,000 点的应用程序。我花了很多时间寻找进行拾取(光线投射)的有效方法,以便能够与各个点进行交互,但还没有找到好的解决方案。我正在考虑更改为仅使用粒子数组而不是粒子系统。

我的问题是:

  1. 我错过了什么吗?有没有使用 ParticleSystem 进行挑选的好方法?
  2. 使用粒子数组而不是粒子系统会不会影响性能,特别是因为我正在利用将多个属性数组传递到着色器的能力。

感谢任何人都可以提供的任何见解!

0 投票
0 回答
23 浏览

search - 搜索抛出一个数字并获取结果

我的应用程序的一部分有问题,希望您能帮助我,首先我将解释它应该如何工作

我有一个稳定的表格(下面的网址):

注意(数学对表格没有用,我们应该拾取结果)

-

打开桌子

-

它是如何工作的:

首先我会写一个词,(一个词的例子:power),它将被存储到一个字符串中,应用程序会将它发送到一个方法来分析它并为该词的每个字母分配一个数字(power),之后,该方法会将一串数字(分配的数)发送到最终方法,最终方法将使用这些数字(数字示例:89649),具体取决于受规则限制的上表,规则是(检查每个数字与下一个数字,第一个数字将是垂直的,第二个将是水平的)最后拾取并将表中的结果分配给不同的变量。

示例(89649):

前两个数字(垂直 8)(水平 9)结果 = 72

后两个数字(垂直 9)(水平 6)结果 = 6

等等

我的方法代码:

问题 :

1-该应用程序不知道该表来确定结果是什么(是的,如果我们有某种数学),那么我怎样才能让它搜索抛出该表

2-在第二个循环中,我的(NL)有问题,要逐个检查抛出arrNums,循环应该根据(NL)开始,但是如果(NL)小于9,则不会做吧,如果我做到这一点

for (int lop2 = 0; lop2 < 10;lop2 ++)

我会有错误,因为长度并没有太多的循环时间。

请帮帮我

0 投票
1 回答
3137 浏览

three.js - three.js 正交相机对象拾取

我正在尝试在使用正交相机的场景中挑选对象。我的代码片段已经可以工作,但并不精确。我已经在 stackoverflow 上找到了一些答案,但这些已被弃用或根本不再适用。这是我的代码 onMouseDown

请参阅http://jsfiddle.net/ujzpe07t/1/

如果您单击立方体左/右/上方/下方的一些像素,它仍然告诉我该对象已被触摸。

我正在使用three.js r69。

任何提示将不胜感激。谢谢,干杯!

0 投票
1 回答
436 浏览

opengl - OpenGL Glut Picking不处理命中

我不知道为什么当我点击任何东西时我总是得到 0 次点击。我已经让主机器人工作了,它对键盘命令的响应很好,但由于某种原因,我似乎无法让它注册一个命中。
一直在尝试遵循本教程:Lighthouse Tutorial
Full Code Here: My Git Repo

0 投票
1 回答
154 浏览

c - 为什么我在挑选时总​​是放大?(OpenGL)

我有以下代码:

原谅我的长度。我试图让挑选工作,以便我可以一次选择一个对象来做事。根据我的打印输出,它的功能与我预期的一样,除了一个障碍:当你选择一个物体时,你最终会被放大到非常大,基本上在选定的形状内。我已经梳理了我的代码,并进行了一些更改/调试,但我找不到问题所在。谁能指出我正确的方向,为什么采摘会产生这种奇怪的行为?

0 投票
0 回答
366 浏览

opengl - JOGL GL_SELECT 拣选失败

我正在GL_SELECT使用 JOGL Java 库在 OpenGL 中实现鼠标选择的方法。我知道这种方法已被弃用,但这是一个简单的学校作业,应该这样做。

但是我遇到了一些麻烦:即使某些东西以GL_SELECT模式呈现,也glRenderMode(GL_RENDER)返回零命中。问题是确定性的,但我没有看到一种模式;例如,如果我在中心有一个球体,如果我点击它的上部,它就可以工作,但不能点击它的下部。对于一个立方体,它只不适用于一个特定的面。对于矩形,它可以正常工作。

我已经测试了注释掉glRenderMode(GL_SELECT)以检查是否确实正在渲染某些东西,是的,我可以看到形状,但即便如此glRenderMode(GL_RENDER)给了我零。

编辑:我还测试了删除对gluPickMatrix()和的调用glRenderMode(GL_SELECT),这给了我与正常(非拾取)渲染完全相同的情况,因此我认为投影和模型视图矩阵设置正确。

所以,我不认为我在选择模式下渲染不正确。会发生什么?

编辑:也许这可能是一个硬件问题,因为该方法已被弃用。那可能吗?

提前致谢。

camera.setView功能:

0 投票
2 回答
87 浏览

c++ - opengl中的“对象映射”

简而言之:众所周知,opengl 在屏幕上绘制了许多三角形。

我想知道的:

如果opengl画三角形,它必须知道,哪个三角形属于屏幕上的哪个像素,对吧?

我也能得到这些信息吗?例如,在绘制(类似gl_retrieve_object_map()或类似的东西)之后调用一个函数,让我知道哪个像素显示哪个三角形?

就像为每个像素做挑选一样

我正在考虑一个二维数组,告诉我三角形索引或其他什么:

例如,在 10x10 像素的屏幕上:

对于像这样的图像:

有什么我可以用的吗?

0 投票
2 回答
693 浏览

mouse - SharpDX GetPickRay 问题

我正在尝试从当前相机位置/视图中获取拾取光线,以便我可以使用它来选择 3d 世界中的对象。问题是当我移动相机时,光线变得不正确。我做错了什么还是浮点精度问题?

射线的结果是:

在屏幕上,它在我的鼠标下创建以下行:(
左上角)

据我了解,光线在我的鼠标下不应该是可见的,对吧?
显然,如果我移动相机并且不改变我正在绘制的光线,它就会变得可见。

编辑:如果我不移动相机,光线在我的鼠标下是不可见的,即使在旋转时也不可见。
编辑2:似乎 ray.Position 是正确的, Ray.Direction 似乎是错误的,尽管不要引用我的话。

0 投票
0 回答
249 浏览

directx - Dx11 vertex picking

My task is to load obj file, show it to user and let him to choose specific vertices via mouse click. Then give information about this vertex. I've got now loading and showing 3d object, but i dont know how to show vertices instead of solid object, and whats more important how to different clicked vertex from others. I'm using code from: http://www.braynzarsoft.net/index.php?p=D3D11OBJMODEL

0 投票
2 回答
786 浏览

javafx - 如何禁用或部分禁用选择 javafx 子场景?

我正在构建的图形浏览程序遇到问题。我有两个 JavaFX 子场景,其中一个以类似于飞行模拟器的方式浏览一个非常大的图形(即图形的数学构造,而不是像折线图或饼图这样简单的东西;可能有几个千兆字节)。另一个包含一组控件,它们始终位于屏幕上的固定点。

我遇到的唯一问题是,当我尝试从主场景中获取选择结果时,它总是停在第一个子场景(平视显示器)处。我检查了 PickResult.getIntersectedNode(),肯定是 SubScene 拦截了pick。

我已经尝试过这个(可以肯定的是,在两个子场景上):

但它没有任何效果。

我怀疑分层 SubScene 的某些透明部分仍在将空间划分为已占用。我不确定这一点。

如何将 SubScene 设置为不可拾取,同时保留其内容?


作为讨论的附录,这里是我(在实验中)创建的用于构建平视显示器的方法示例。这是在我将其切换为简单地返回一个窗格之前​​。(参数“fillPaint”始终设置为 Color.TRANSPARENT)。