问题标签 [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 投票
2 回答
2989 浏览

unity3d - 在 Unity 中使用光线投射修改 AI 脚本

所以我设法修改了一些我为光线投射找到的代码,以便我的敌人向我的第一人称相机的坐标移动。但是,我需要改变光线投射在场景中的障碍物周围移动敌人的方式。我对myTransform//变量感到有些困惑transformtarget

所以这是我的代码;

我几乎可以肯定我唯一需要更改的是dir变量,以便它使用新的转换代码。但正如我所说,我一直对使用哪个变量感到困惑。

编辑:我的理解是我需要更改更新底部的代码,以便考虑到通过光线投射遇到障碍物时发生的旋转。这就是为什么我认为只有“dir”和“rot”需要更改,然后在位置和旋转代码中使用。

0 投票
1 回答
404 浏览

math - 在两个角度之间的二维网格中获取单元格

在此处输入图像描述

我已经成功实现了一个基本的光线投射算法,但我想扩展它以使用“角度范围”。

知道网格单元大小、列数和行数、起始射线位置、角度 a 和角度 b,我如何才能获得落在两条射线之间的所有单元?

0 投票
1 回答
892 浏览

unity3d - 无法根据鼠标位置将光线从相机向下投射到对象

我有一个相机俯视我的游戏世界。我想让用户点击对象。以下脚本附加到 MainCamera。

这条线Debug.Log("We just touched " + hit.collider);永远不会被调用。我不认为我的光线构建正确。这是其他调试消息的输出。在每条消息中,它们的 rayOrigin 都是相同的,即使 mousePos 发生了变化。

那么我哪里错了?

0 投票
1 回答
796 浏览

three.js - three.js 射线相交 r58

我想使用 collada 对象中的射线检测相交,three.js r58 但是

不为我工作任何人解决这个问题?是 Ray 不支持 r58 中的 intersectObjects() 方法还是代码中有任何错误?那么什么是替代而不是Raycasting?

0 投票
1 回答
1625 浏览

three.js - 体积射线投射无法正常工作(Webgl + GLSL + Three.js)

我试图提高我的体积射线投射算法的质量。我设置了一个较小的光线投射步骤(质量更好),但它会导致问题。它在下面的图片上(不应该出现的黑色区域)。

我正在使用 RGB 立方体来获取体积中的光线方向。我想,我有和那里一样的算法:volume rendering (using glsl) with ray cast algorithm

有没有人有一些想法,可能是哪里出了问题?我需要解决这个问题,因为我的文凭论文的截止日期是关闭:(我真的不知道,为什么它不起作用:(

在此处输入图像描述 在此处输入图像描述

编辑: 我不能在那里显示我的所有代码(这可能是个问题,如果我会在学校提供之前提供它)。但通读卷的关键代码:

然后在循环中:

EDIT2:(对不起,但喜欢评论太长了)

是的,纹理很嘈杂......我试图用 alpha: 删除条件if(accumulatedColor.a > 1.0),但结果是一样的。我认为这与射线的长度和步长的大小有直接的关系。我尝试了很多组合,我发现了这些东西。如果步长很大,我可以通过所有音量,但如果它很小,我真的无法通过音量(也许)。如果步幅非常大,我可以看到镜像对象(如果我在 GPU 上超出纹理,可能是由于重复纹理造成的)。如果步长太小,我只能映射纹理的一小部分 - >看起来,那条光线太短了,但实际上他不是。问题是,为什么将 3D 坐标映射到 2D 纹理是错误的,并且取决于步长。

0 投票
1 回答
1080 浏览

javascript - 相对于全局坐标系的光线投射方向,而不是局部坐标系

我使用光线投射方法来检测轨道两侧的不同颜色的条带,并通过计算距离来保持我的汽车物体在适当的位置。但问题是光线始终指向全局坐标系中的恒定方向,并且不会随着汽车物体的移动(旋转)而改变。如果光线方向在汽车的参考系中,我可能无法弄清楚该怎么做。目前我正在这样做

var ray = new THREE.RayCaster(car.position, new THREE.Vector3(-1,0,0),0,50);

汽车的运动在 XZ 平面内

有人可以指出解决方案吗?

0 投票
1 回答
989 浏览

math - 具有法线和偏移的无限平面的射线投射相交

我有一个无限平面,我知道它的法线和偏移量。现在,我想知道 Ray Casting 射线是否与这个无限平面相交。

我怎么知道?

0 投票
1 回答
1094 浏览

xna - XNA 先知。Raycast 正在处理形状

我正在 XNA 中制作游戏。 在此处输入图像描述

我正在做一个从敌人到玩家的光线投射,以确定敌人是否可以看到玩家。这是代码..

我的问题是,在图片中的情况下,我通过程序生成了由块构成的洞穴,光线似乎穿过了块,因此敌人可以透过墙壁看到。

--

更新

好的,以下代码有效!但是..我不知道为什么!:/

然后在这个类中的一个单独的更新语句中有唤醒敌人的代码。

我显然不明白光线投射和回调是如何工作的。如果有人可以解释为什么这种方法有效,那就太好了。我计划做更多的光线投射来阻止敌人撞到东西等等。

0 投票
1 回答
108 浏览

java - 为什么在使用线程池时看不到性能提升?

我编写了一个 2D Raycaster,可以将光线绘制到任何 java 形状,包括:

Line2D、Rectangle2D、Ellipse2D、QuadCurve2D 和 CubicCurve2D。

它背后的数学实际上非常复杂和密集,特别是对于四边形和三次方,所以我设置了一个线程池。我根据可用内核的数量制作了一个具有固定线程数的 ExecutionService “exec”。

然后,我将负责每个形状的代码块更改为静态可运行文件。从 raycaster 方法,我会执行 runnables 然后调用 exec.shutdown()。最后,id 创建一个 while 循环,直到 exec.isTerminated 返回 true 才退出。

这确保了所有线程在继续之前都已完成执行。

现在,从我在网上看到的情况来看,这是一种流行的方法,但我没有看到改进的结果。如果不是更糟,它总是一样的。是否有一种正确的方法来使用线程池,它实际上可以提高效率而不是匹配开销?

0 投票
3 回答
2811 浏览

three.js - Three.js 使用 THREE.Raycaster 对球体进行碰撞检测

对于我的项目,我需要在 Three.js 中进行碰撞测试。在我的 CollisionDetection 课程中,我试图让 Raycaster 工作。我发现了一些我无法解释也找不到解决方法的奇怪之处:

我的 CollisionDetector 适用于 Cubes.. 但是当我使用 Spheres 时,它并没有给我相同的结果 – 我期望与立方体相同的结果是错误的吗?还是我想念别的东西?

这是我的代码:

或者最好,亲自看看它的行为:http: //jsfiddle.net/mymL5/12/

单击时,被射线击中的每个元素都应变为蓝色,并且所有击中都会在控制台中注册。请注意球体的(恕我直言)奇怪的控制台输出。另外,为什么下球体没有被击中而上球体被击中?

您可以通过注释/取消注释行在 Cubes 和 Spheres 之间切换19/20

谁能帮我?我没有得到什么?

PS:我是 Three.js 的新手,所以我可能很笨。