问题标签 [raycasting]

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 回答
543 浏览

c# - unity3d 中带有标签问题的光线投射

我需要一些帮助。我有一部分代码可以用 raycast 搜索未阻塞的邻居。我需要获得与“WP”标签发生冲突的光线投射。两次迭代都显示了正确的结果,转储和光线投射也是如此,光线投射确实成功碰撞了一些东西,但是当我检查光线投射碰撞的东西时,没有显示结果....任何人都知道这有什么问题代码..??

感谢您的赞赏和回答...对不起,如果我的英语不好...^^

0 投票
1 回答
933 浏览

cocos2d-iphone - 无法让 box2d 光线投射在 cocos2d 中工作

我尝试了一些从互联网上收集到的关于如何设置光线投射的不同方法,但无论我做什么,我都无法注册任何类型的连接。这里发生了什么?世界设置正确(例如,事物出现并碰撞等等),但光线投射似乎从未检测到任何东西,我尝试了三种不同的方法(两种略有不同)。为了完整起见,我将包括我的测试用例和附属类(你们中的一些人可能会认出 Ray Wenderlich 的设置):

ccLayer 标头

ccLayer 类(最有可能在更新中出现问题的代码)

RaysCastCallback.h

其他广播.h

0 投票
2 回答
1208 浏览

ios - 屏幕空间光线投射

我正在使用 OpenGL ES 2.0 和最新的 iOS。

我有一个 3D 模型,我希望用户能够通过点击屏幕来选择模型的不同部分。我发现教程将像素空间屏幕坐标转换为世界空间射线,并实施了射线-AABB 相交测试以确定模型的相交部分。

我在模型的看似随机的部分得到了一些点击。所以我需要调试这个功能,但我真的不知道从哪里开始。

我不能准确地画一条代表射线的线(因为它是从相机出来的,所以它会显示为一个点),所以我可以看到几种调试方法:

  1. 检查模型部分的边界框。那么 OGL ES 有没有一种简单的方法可以在给定最小和最大点的情况下绘制边界框?

  2. 沿着光线的路径绘制一些 3D 对象。这似乎更复杂。

  3. 实际调试光线投射和交集代码。这似乎是最难完成的,因为算法是众所周知的(我直接从我的实时碰撞检测一书中进行了交叉测试)。

如果有人可以提供帮助,或者希望我发布一些代码,我真的可以使用它。

这是我转换为世界空间的代码:

这是我获得矩阵的方法:

0 投票
1 回答
9209 浏览

javascript - Three.js raycast 产生空的相交数组

我试图检测用户何时单击了我的 3d 场景中的特定立方体我已经看到了一些类似的问题,但似乎没有一个问题与我完全相同。

我有一个 3D 立方体数组,可以很好地填充和显示,但是当我的鼠标按下函数被调用时,相交数组总是空的——我看不出有什么问题,希望能得到任何帮助。

我的渲染器设置如下:

事件处理程序是:

您可以在http://kev-adsett.co.uk/experiments/three.js/experiment1/查看当前的项目

0 投票
3 回答
2607 浏览

php - 具有 GPS 坐标的光线投射算法

我正在使用谷歌地图制作一个小型应用程序,以确定输入的地址是否是预定义服务区域的一部分。

用户输入一个地址,PHP 脚本从地理编码 API中获取纬度/经度,并使用构成该区域顶点的一组坐标应用光线投射(取自生成的 KML 文件地图)。

问题是这样的:它大部分时间都可以工作,但是服务区域的一些地址错误地报告为合格,而该区域内的其他一些地址不合格。起初我认为这是 Google 地图的精度问题,但从地理编码服务中的地址生成的坐标是准确的。这可能与公式有关。

在这里(它基于我在其他地方找到的代码):

我在这里缺少什么吗?我尝试自己推导出一个公式,并且在某种程度上理解了这背后的数学原理,但是可以使用谷歌地图中的 GPS 坐标吗?

关于错误报告的内容似乎没有真正的模式:我测试了靠近边界的地址或服务区角落的地址,但那里没有运气。另外值得注意的是,这个服务区只是一个城市中一个相对较小的区域,与州或全国范围内的区域完全不同。

0 投票
1 回答
2497 浏览

javascript - 三.Raycaster 在 position.set() 之后与原始网格位置相交

使用 Three.js,当我使用 position.set() 定位对象时,THREE.Raycaster 似乎不知道对象的新设置位置。如果我将对象留在 0,0,0 处,则网格会正确相交。

我有一个角色控制器,我可以用跟随的相机四处移动,因此我将角色 (obj) 和目标插入到函数 testRay() 中进行测试;

然后每次 requestAnimationFrame(main) 调用,我 testRay() 插入角色控制器和目标以查看它是否相交。

好的,所以问题不是让它相交,这很好用。在创建期间使用 position.set() 后,它与对象的新位置相交。我注意到我可以简单地通过相交来移动对象,这似乎也移动了相交坐标。将对象添加到场景后移动会更好吗?有区别吗?

0 投票
5 回答
1660 浏览

c++ - 如何在 Bullet 中找到投射光线以避免碰撞的位置?

假设我们在 A 点有一个物体。它想知道它是否可以移动到 B 点。它的速度有限,所以它只能一步一步地移动。它向其移动的方向投射光线。射线与物体碰撞,我们检测到它。如何获得一种安全地通过我们的光线(避免碰撞)的方法?

在此处输入图像描述

顺便说一句,有没有办法在对象投射的情况下使这种事情起作用,它会像简单的光线投射一样/几乎快吗?

在此处输入图像描述

有没有办法在一些不同的路径中找到最优的?

在此处输入图像描述

0 投票
2 回答
1131 浏览

math - 如何计算相机视角(片段着色器中的每个片段)(WebGL / OpenGL)

我已经在片段着色器中给出了所有三个矩阵(模型、视图、投影)。现在我喜欢计算每个片段的视角。相机具有例如45°的视角。我该怎么做?有了这个,我喜欢模拟来自相机的观察光线原点。谢谢!

0 投票
3 回答
579 浏览

php - 扩展 PiP 算法的 MySQL 实现?

我需要在多边形MySQL 查询中指出一点。

我已经找到了这两个很好的解决方案:

http://forums.mysql.com/read.php?23,286574,286574

光线投射算法的MySQL实现?

但是这些函数只能检查一个点是否在多边形内。我有一个查询,其中画中画部分应该只是查询的一部分,并检查多边形内的 x 点。

像这样的东西:

$points = list/array/whatever of points in language of favour

更新

我用这样的MBR函数进行了尝试:

G2 不应该在 G1 内,但MBR说它是。

0 投票
1 回答
1001 浏览

actionscript-3 - 带有 Nape 物理的 AS3:如何找到从点到物体的切线?

简短的问题:在 Nape 中是否有任何简单的方法来计算与 Nape 身体对象或形状的切点,给定身体外部的一个点?

我想做的是创建蠕虫式的绳索物理。它基本上用作可扩展的线/距离接头,当它与关卡几何体接触时会自动分成段。我通过从最近的枢轴点进行光线投射来做到这一点;如果发生碰撞,我从碰撞点偏移几个像素,创建一个新的绳段,并将该点作为新的枢轴。如果我的角色在一个尖角附近摆动,我会从那个点重铸,必要时循环,直到我清楚关卡几何。

考虑到我缺乏经验,它的效果非常好,但有一点化妆品故障。绳子不会“紧紧地”缠绕在喇叭形的突出物上。很容易看出为什么会这样。请参考下图。

在此处输入图像描述

每次我以 60 帧/秒的速度踏入 Nape 世界时,我都会投射一道光线。图 1 显示了两个示例射线投射之间的差异。角色(未图示)位于线的末端,并且他一步下落到相对于枢轴的悬崖“边缘”,因此碰撞点未达到所需的切点。

图2是我最终得到的。通过从表面偏移和重铸,环绕逻辑仍然有效,但它看起来并不“紧绷”。

我想要的是类似于图 3 的东西,它修正了角度以找到与身体的实际切点并由此创建新的枢轴。

我计划的后备是通过小增量偏移光线投射的角度并重新投射,直到我不再撞击关卡几何体,然后备份一个并将其用作碰撞点。即使这样也可能需要比图 2 中“弯曲”更少的计算,但我仍然想知道:有没有更简单的方法?