问题标签 [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.
c# - 在随机生成的瓷砖上进行鼠标拾取的最佳方法
我的主要问题是我不明白如何获取生成的图块的位置或如何判断鼠标的位置。我应该使用碰撞来检测鼠标还是其他东西?我可以做些什么来优化我的代码并使其更容易获得诸如位置之类的东西
我从我的代码中取出了一些东西,比如加载纹理只是为了让你们更短,因为这不是问题的一部分。
我的瓷砖生成代码
块属性代码
opengl - OpenGL:从 FrameBuffer 读取像素以取整到 255 (0xFF)
我正在尝试通过将 vao id 打包到 RGBA 并将其渲染到屏幕外缓冲区来实现对象拾取,然后我尝试使用缓冲区对象读取该缓冲区。
我通过创建纹理和 z-buffer RenderBuffer 对象然后将它们附加到 FrameBuffer 对象来渲染到屏幕外缓冲区:
我还生成了一个像素缓冲区对象,以便在渲染完成后从 FrameBuffer 中读取:
然后在我的渲染循环中绑定它并渲染到屏幕外的FrameBuffer:
渲染到屏幕外缓冲区的片段着色器非常简单:
这是在离屏渲染期间调用的函数,用于从帧缓冲区中提取打包的 RGBA:
问题在于,应该从屏幕外帧缓冲区读取像素并给我 vao_id 的最后一段代码具有以下奇怪的行为:
如果打包到 RGBA 中的 4 个字节中的任何一个(通过着色器发送)不是 0,则该字节在另一端显示为 0xFF。
所以如果我发送
我会得到
或者如果我发送
我会得到
...当我用 get_object_id() 读取像素时。
如果我绑定纹理并将其渲染到我的普通 FrameBuffer 上的四边形,则我传递给屏幕外渲染的颜色在四边形上是正确的。但是 get_object_id() 读取的像素会使发送的每个字节四舍五入到 255 (0xFF)。所以我的猜测是最终功能有问题。
webgl - 如何在 Scenejs 中通过 IdMapping 进行拾取?
我们有一个像这样的巨大 Json Mesh,我们用 scenejs 渲染:
idMapColors 对于每个“对象”都是唯一的,可以转换为 id 以提供附加信息。
我们现在想在屏幕上使用普通颜色渲染网格,并在第二个渲染路径中使用 idMapColors。我们不想在特定点(鼠标位置)处读取第二个 FrameBuffer(用于 idMapColors)中的颜色值。
如何在 Scenejs 中执行此操作?我们可以将 idMapColors 渲染到 Framebuffer,但是如何访问它的数据呢?
在https://github.com/xeolabs/scenejs/wiki/frameBuf的 wiki 上,我们发现拣货还在进一步工作中,目前是否有可能这样做?
javascript - Threejs:为几何中的每个顶点分配不同的颜色
我想通过 Three.js 中的 IdMapping 进行挑选
由于性能问题,我只有一个巨大的几何图形,计算如下:
如何为几何图形中的每个顶点分配不同的颜色?
opengl-es - 获取像素颜色不准确
我目前在我的应用程序中使用颜色选择。这适用于 PC,但是我无法让它在各种设备上运行。
这可能是由于上下文设置不同,具体取决于设备。例如,据我所知,PC 的颜色设置为 888,而设备可能默认设置为 565。
我想知道 OpenGL 中是否有办法获取当前的像素/颜色格式,以便我可以正确检索颜色数据?
这是我正在使用的功能,它在 PC 上运行良好:
有任何想法吗?
c++ - 选择后 OpenGL 选择不显示任何内容
所以我在一个显示列表中有 2 个立方体,我希望其中一个是可以选择的,这样我就可以改变他的颜色或类似的东西。
当我单击一个立方体时,屏幕变黑并且没有任何反应,控制台为我提供最近命中的输出,但屏幕变黑并且不显示任何内容。
这是我的 cpp 文件:
这是没有点击一次的正常视图 http://imageshack.us/photo/my-images/233/31536776.png/
然后当点击它时,它会不断进入开始拾取并停止拾取并给出黑屏 http://imageshack.us/photo/my-images/13/14180995.png/
然后在关闭窗口后停止运行它给了我这个输出http://imageshack.us/photo/my-images/861/13486229.png/
c++ - 在 OpenGL 中使用 Qt 进行颜色拾取
我一直在阅读有关采摘的教程,而颜色采摘是迄今为止最流行和最简单的形式。
以雪人为例尝试了一些教程,但它对我不起作用。当我运行该程序时,它只给我一个黑色的画面,没有任何绘画。当我单击几次时,除了关闭窗口时,什么都没有发生,然后它说“你还没有点击雪人”。
不知道有什么问题可以帮助我吗?
投影矩阵设置如下:
opengl - LWJGL 3D采摘
所以我一直在尝试理解 3D 拾取的概念,但由于我找不到任何视频指南或任何实际会说英语的具体指南,事实证明这非常困难。如果有人对 LWJGL 中的 3D 拾取经验丰富,您能否给我一个示例,逐行解释所有内容的含义。我应该提一下,我正在尝试将光线射出屏幕中心(而不是鼠标所在的位置),并让它检测到一个普通的立方体(以 6 个 QUADS 渲染)。
android - 带 gles 的 3d 采摘
当用户点击 android 手机的屏幕时,我正在尝试进行 3d 选择。
它有时会起作用,但是当我旋转屏幕时->射线没有击中球体
我将把源代码粘贴到现在为止:
a)类renderer.java:
这些是 GL OnSurfaceChanged 设置:
...这就是我绘制场景的方式:
此处重要注意事项:这是一个轨迹球摄像机旋转,摄像机旋转时始终注视中心坐标 (0,0,0) 并向后平移 500 个单位(参见 campos 初始化)。
b)类“picker.java”:
}
只是不知道我要去哪里错了.. :(请帮助!!
- 如果我不旋转场景,那我就成功了!
- 但是..如果我确实旋转场景,那么没有命中:(
ios - IOS GLKit:图灵 GLKViewDrawableMultisample4X 停止对象拾取
我正在使用像素颜色拾取来计算我单击了哪个 OpenGL 对象,并且效果非常好
在视图中打开 GLKViewDrawableMultisample4X 后,拾取停止工作?
我尝试在触摸屏幕时打开和关闭它,但只能工作一次。
拣货代码: