picking相关内容

iOS 5 + GLKView:如何访问像素 RGB 数据以进行基于颜色的顶点拾取?

我一直在转换我自己的个人 OGLES 2.0 框架,以利用新的 iOS 5 框架 GLKit 添加的功能. 在获得令人满意的结果之后,我现在希望实现here所述的基于颜色的拾取机制.为此,您必须访问后台缓冲区以检索触摸的像素 RGBA 值,然后将其用作顶点/图元/显示对象的唯一标识符.当然,这需要对所有顶点/基元/显示对象进行临时唯一着色. 我有两个问题,非常感谢您提供帮助: 我 ..
发布时间:2022-01-14 20:13:43 其他开发

Android OpenGL 3D 拾取

我使用的是 Android OpenGL-ES 2.0,并且在它附带的所有限制之后,我无法弄清楚如何将 2D 屏幕触摸带到我拥有的 3D 点.我无法得到正确的结果. 我正在尝试实现将射线射入点云,然后我可以比较我的点与射线的距离,找到最近的点. public class OpenGLRenderer extends Activity implements GLSurfaceView.Ren ..
发布时间:2022-01-09 09:08:39 移动开发

gpu 拾取 - 精灵周围的不可见像素

我正在渲染一个包含精灵的采摘场景.当我的光标靠近精灵时,它会注册为一种颜色并被“选中".当您放大精灵时,这个不可见的边框会变大. 打开您的控制台以查看实时打印的 ID.将光标移近和远离大小精灵.您会看到精灵在不可见的边框上被选中.这种行为不会发生在常规几何体上,只会发生在精灵身上. 这很奇怪,因为我正在渲染 renderer.readRenderTargetPixels 实际看到的内容 ..
发布时间:2021-12-31 18:52:47 其他开发

三.js 正交相机对象拾取

我正在尝试在我使用正交相机的场景中挑选对象.我的代码片段已经工作,但它不准确.我已经在 stackoverflow 上找到了一些答案,但这些答案已被弃用或根本不再起作用.这是我的代码 onMouseDown function onDocumentMouseUp( event ) {event.preventDefault();mouse.x = ( event.clientX/window.in ..
发布时间:2021-12-31 18:29:49 其他开发

实现光线拾取

我有一个使用 directx 和 openGL 的渲染器,以及一个 3d 场景.视口和窗口的尺寸相同. 如何以独立于平台的方式选择给定的鼠标坐标 x 和 y? 解决方案 如果可以,通过鼠标指针计算来自眼睛的光线并将其与您的模型相交,从而在 CPU 上进行拾取. 如果这不是一个选项,我会使用某种类型的 ID 渲染.为您想要选择的每个对象指定一个独特的颜色,使用这些颜色渲染对象,最 ..
发布时间:2021-12-17 14:45:30 其他开发

我如何使用 glUnProject 计算 openGL 上的 Touch

嗨,我找到了近程和远程计划..然后如何使用我在物体上触摸的这个来识别..任何人都可以帮助我..这是我的代码.. -(Boolean) checkCollission:(CGPoint)winPos{winPos.y = (float)__viewport[3] - winPos.y;Point3D 近点;Point3D farPoint;Point3D rayVector;//检索近平面上投影的 ..
发布时间:2021-11-25 04:38:49 C#

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

我正在开展一个项目,该项目允许用户在场景中选择 3d 对象,我想知道每个人都认为什么是处理这种特定场景的最佳方式. 基本上,我们有一个包含至少 100 个对象(它们是低多边形但由至少约 12-15 个三角形组成)和多达大约 1000-2000 个对象的场景. 并非所有对象都始终是“可拾取的",因为有些对象会遮挡其他对象,因此“可拾取"的对象可能落在 800-1500 之间(取决于场景的 ..
发布时间:2021-11-25 03:50:00 C#

在 Java 2d 中挑选

我正在使用 java2d 绘制一个简单的图形,我通过为每个对象/形状调用 contains(MousePoint) 来实现拾取,这有效但线性缩放. 在java2d中是否有更高效的采摘方法? 解决方案 是的,虽然完整的答案对于这个空间来说太长了. 首先,除非你有 lot 节点,那么线性很可能没问题,你不应该改变任何东西除非性能已经看到受苦. 第二,一般来说,您想要的是应用某 ..
发布时间:2021-11-25 03:40:56 Java开发

给定一个 4x4 齐次矩阵,我如何获得 3D 世界坐标?

所以我有一个对象,它正在旋转,然后再次平移和旋转.我将这些翻译的矩阵存储为对象成员.现在当我开始选择对象时,我需要知道这个对象的 3D 世界坐标. 目前我已经能够像这样获得物体的位置 坐标[0] = finalMatrix[12]; 坐标[1] = finalMatrix[13]; 坐标[2] = finalMatrix[14]; 这给了我对象的正确位置,但我也想考虑旋转. ..
发布时间:2021-11-25 03:33:25 C#

Three.js 拾取无法使用自定义几何正确工作

我在选择实施时遇到问题.我找到了许多不同的例子来做我想做的事,但我真的不能让它像它应该的那样工作.我主要是跟着这个例子 基本上,我的场景中有一些网格,双击其中任何一个,我想更改所选网格的颜色.在场景中有 3 个总是被选中的小立方体和一些通常没有被选中的更复杂的网格.我想知道是否有人可以帮我弄清楚为什么,如果可以选择立方体,其他人通常不能. 我用来检测点击网格的代码是: varproj ..
发布时间:2021-09-07 18:57:08 其他开发

在 Three.js 中高效渲染数万个大小/颜色/位置可变的球体?

这个问题是从我上一个问题中提取的,我发现使用 Points 会导致问题:https://stackoverflow.com/a/60306638/4749956 要解决这个问题,您需要使用四边形而不是点来绘制点.有很多方法可以做到这一点.将每个四边形绘制为单独的网格或精灵,或者将所有四边形合并到另一个网格中,或者使用 InstancedMesh,其中每个点都需要一个矩阵,或者编写自定义着色器 ..
发布时间:2021-06-15 19:51:40 其他开发

跨设备的GPU选择不一致

我正在尝试使用从本文后半部分修改的代码通过Points实现GPU拾取对于我来说,在台式机上运行正常,但是我开始测试不同的浏览器和设备,但无法始终如一地运行.我制作了Codepen来说明 https://codepen.io/deklanw/pen/OJVVmEd?编辑者= 1111 body { margin: 0; } #c { width: 100vw; heigh ..
发布时间:2020-07-24 10:17:17 前端开发

GPU拾取-子画面周围的不可见像素

我正在渲染一个包含精灵的采摘场景.当我的光标靠近精灵时,它注册为一种颜色并被“选中".放大小精灵时,此不可见的边框会变大. 打开控制台以查看实时打印的ID.将光标移近或移远,移到大和小的精灵上.您会看到精灵在不可见的边框上被选中.普通的几何图形不会发生这种行为,只是精灵会发生这种情况. 这很奇怪,因为我渲染了renderer.readRenderTargetPixels实际看到的内容. ..
发布时间:2020-07-24 10:17:11 其他开发

three.js正交相机对象选取

我正在尝试在使用正交摄影机的场景中拾取对象. 我的代码片段已经可以使用,但是并不精确. 我已经在stackoverflow上找到了一些答案,但已经过时或不再使用. 这是我的代码onMouseDown function onDocumentMouseUp( event ) { event.preventDefault(); mouse.x = ( event.clientX ..
发布时间:2020-07-02 04:29:02 其他开发

iPhone:OpenGL ES:检测您是否在屏幕上点击了一个对象(立方体)

我已经问过类似的问题,这使我知道了现在的位置,但是我确实需要一些帮助.这是我完成一件很酷的事情的最后一件事(在我看来,哈哈) 我有一个可以在其中移动的3d世界,在这个世界中,是简单的立方体. 使用-(CGPoint)getScreenCoorOfPoint:(IMPoint3D)_point3D函数,我可以算出这些多维数据集在3D世界中在X,Y中的位置.但是它不是基于我在哪里,而是基于 ..
发布时间:2020-05-21 00:33:11 移动开发

Minecraft克隆的最佳盒子选择方法

作为我的第一个OpenGL项目,我正在制作Minecraft副本,并停留在选择框部分.进行可靠的盒子选择的最佳方法是什么? 我一直在研究一些AABB算法,但是没有一个能很好地解释它们的确切功能(尤其是经过超级调整的算法),并且我不想使用我不了解的东西. 由于世界是由多维数据集组成的,所以我使用八叉树消除了射线投射计算中的某些应变,基本上我唯一需要的就是此函数: float cub ..
发布时间:2020-05-20 23:17:11 C/C++开发

应用基于顶点着色器的几何变形的3D场景通用拾取解决方案

我正在尝试为3D场景实现导航技术(在带有OpenGL的OpenSceneGraph中).除其他事项外,用户应该能够单击屏幕上的场景对象以向其移动. 导航技术应集成到另一个项目中,该项目使用顶点着色器将全局变形应用于场景几何.这就是问题所在:由于使用顶点着色器使几何变形,因此将鼠标光标位置取消投影到用户实际选择的地点的世界坐标并不是一件容易的事.但是在导航技术中,我需要这些坐标来执行正确的相机 ..
发布时间:2020-05-20 22:55:56 其他开发

LWJGL 3D拾取

因此,我一直在尝试理解3D拾取的概念,但是由于我找不到任何视频指南或任何实际讲英语的具体指南,因此事实证明这非常困难.如果有人在LWJGL中进行3D拾取方面有丰富的经验,您能否举个例子逐行说明所有含义.我应该提到的是,我要做的所有事情都是将光线从屏幕中心发射出去(而不是鼠标所在的位置),并使它只能检测到正常的立方体(以6个QUADS呈现). 解决方案 尽管我不是3D拾取的专家,但我之前已经 ..
发布时间:2020-05-04 08:14:03 其他开发