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

java - 在java中将浮点数转换为定点数时会发生什么(特别是java me)

我希望我的java me程序尽可能高效地运行。我的目标是进行光线投射,并想知道遍历体素的最佳方式。我听说浮点数的转换和比较非常占用 CPU。所以我想为什么不给每条射线 x 和 y 添加一定的距离,截断其余部分,然后使用这些坐标检查八叉树的体素。基本上,有没有更好的方法来为java me程序做这样的事情?

截断浮点数?

0 投票
7 回答
5163 浏览

mysql - 光线投射算法的MySQL实现?

我们需要找出一种快速且相当准确的方法,用于在谷歌地图上获取纬度/经度值和多边形的多边形点。经过一些研究 - 遇到了一些关于 mysql 几何扩展的帖子,并且也实现了 -

然而,这不适用于由大量点组成的多边形:(

经过更多研究 - 遇到了一种称为 Ray-casting 算法的标准算法,但在尝试在 MySQL 中开发查询之前,如果有人已经通过该算法或遇到一个显示如何实现的有用链接,我想借此机会MySQL / SQL-server 中的算法。

所以,缩短它 - 问题是:

谁能提供Ray Casting算法的MySQL/SQL-server实现?

附加细节:

  • 多边形是凹的、凸的或复杂的。
  • 目标是快速执行超过 100% 的准确度。
0 投票
6 回答
21694 浏览

c++ - 体素...老实说,我需要知道从哪里开始

好的,我知道体素基本上只是像素的体积版本。

在那之后,我什至不知道要寻找什么。

谷歌搜索没有显示任何教程,我在任何地方都找不到关于它的书,我什至找不到任何与体素到底是什么的基本概念有关的东西。

我知道很多 C++ 库,并且掌握了 OpenGL 的基础知识。

有人可以指出我正确的方向吗?

编辑:我想我只是对如何实现它们感到困惑?抱歉让我感到痛苦,只是我真的找不到任何可以轻松关联的东西……我想我在想象一个体素与一个向量相关,你可以在其中实际存储数据。

体素可以表示为任何3D 形状吗?例如,假设我希望形状是圆柱体。这是可能的,还是他们必须像立方体一样链接?

0 投票
3 回答
5127 浏览

opengl - OpenGL水折射

我正在尝试使用水波和折射创建一个 OpenGL 应用程序。我需要先投射来自太阳的光线,然后是相机,然后找出它们相交的位置,或者我需要从海底开始,弄清楚我必须朝哪个方向(如果有的话)去撞击太阳或相机。我有点卡住了,任何人都可以给我一个关于 OpenGL 光线投射或高级几何速成课程的信息吗?我不希望海底处于恒定深度,也不希望水波是简单的正弦波。

0 投票
1 回答
4173 浏览

c++ - C++ 中是否有一个简单且开源的光线投射库?

我正在寻找一个库,它可以让我将光线投射到场景模型中(在我们的例子中它恰好是地形模型)并返回场景中的交点。它不必是超级高效的(尽管我宁愿它不是超级低效的)。理想情况下,它不会依赖于其他库(如 OpenGL)。我真的在寻找具有我需要的功能的东西,而不是更多。

有没有人有什么建议?

0 投票
3 回答
10620 浏览

3d - Doom 和 Quake 3D 渲染之间的区别

过去几周我一直在研究(旧的)3D 渲染技术,并且认为我现在对 Doom 中的 3D 渲染的工作方式有了相当的了解。它使用光线投射来渲染 3D 场景,使用精灵作为对象,因此不是“真正的”3D。它也不允许真正的向上/向下查看,只能通过 Y 剪切。

Quake 是 ID 的第一个“真正的”3D 引擎,具有可以从不同角度查看的对象并允许上下查看。

现在我在研究这些技术时经常听到这种“真正的”3D,但我无法清楚地解释这种真正的 3D 究竟意味着什么。Quake 渲染与 Doom 渲染有何不同?

Quake 世界是否使用 3D 顶点并且它们都是投影而不是交叉点的光线投射?

我很想听听对差异的明确解释!

PS 我知道 Quake 的源代码是可用的,但是 id 软件的 FTP 已经关闭了数周,我无法在其他任何地方找到它。如果有人知道在哪里可以找到它,请告诉我。

0 投票
1 回答
234 浏览

optimization - 如何使用光线相干性来提高光线追踪速度,同时仍然看起来很逼真?

我正在考虑在我的软件每像素实时光线投射器中利用光线相干性。

AFAICT,使用统一网格,如果我将光线相干性分配给 4x4 像素的补丁(目前我每个像素有一个光线投射),给定 16 条具有不同起点(和终点)点的平行光线,这如何解决连贯的场景?我预见的是:

  1. 存在一段距离,在该距离内,相邻/相似光线的光线行进将完全相同。在那个距离内,我节省了处理费用。(我怎么知道那个距离是多少?)
  2. 由于某些光线没有在正确的时间发散,我最终会得到一个稍微不正确的图像。

鉴于我的光线是从一个点而不是平面投射的,我想我需要根据经过的距离进行某种拆分功能,这样所有光线的集合在向外移动时形成一棵树。我在这里担心的是,当靠近观看者时,会丢失更精细的细节。

我想我只是不明白这是如何使用的。

0 投票
1 回答
5920 浏览

python - 将路径转换为多边形

我试图确定一个点是否在使用 Python 的 SVG 路径中。
我将使用的算法是光线投射算法

但是对于这个算法,我需要多边形边,但我所拥有的只是 svg 路径的路径数据:

对应于这张图片:

SVG 路径示例

那么,有没有办法获得路径的两侧?

0 投票
1 回答
300 浏览

caching - 随机光线追踪是否天生对缓存不友好?

特别是在视图更新频繁的实时光线追踪器的上下文中?

显而易见的答案似乎是“是”,但我想知道是否有任何方法可以加速 Monte Carlo 方法,因为它们很有用。

0 投票
0 回答
1242 浏览

android - Raycasting vs OpenGL-ES 2.0 - Android 上的 Doom 类游戏有明显的区别吗?

这是我的第一个问题,我像往常一样在google上搜索,第二轮直接在SO上搜索,但我仍然无法得到确切的答案。

我将为将来要为Android平台制作的游戏编写3D图形引擎。我最近在我的手机上玩 Doom,在高中休息时,当我在被地狱男爵杀死后抬起头时,我看到有 20 多人挣扎着看我玩,然后是响亮的“AAAAAAAW!” 当他们看到我死了。我的下巴掉到了地板上。他们都没有怀疑这是 1993 年的游戏。

但让我们回到正题。如果您想写“自己找”,现在可以停止输入。由于不同的原因,我无法自行检查。起初,我只有一台可以测试引擎的中等成本设备(HTC Wildfire)。第二个也是更重要的原因是时间。我没有时间编写整个 OpenGL-ES 2.0 图形引擎并意识到我的 Wildfire 甚至无法运行它。或者走路时大约1FPS。

为了使光线投射更真实,它需要很少的计算,这在 OpenGL 中对我来说并不重要,因为我只设置了顶点和索引就可以了。我喜欢《毁灭战士》关卡的设计方式,但我想增加头部上下移动(在 X 轴上旋转)以更精确地环顾四周和拍摄的能力,并且光线投射中的计算复杂性正在增加(不适合我,对于 CPU)。我知道 Wildfire 没有任何 GPU 并且任何基于 OGL(甚至是 2D)的东西都落后于地狱,即使我使用 PERFORMANCE 调节器将 CPU 超频到 @748(它会关闭更高的值,我必须将它从我的Casemate 以防止其过热)。但是即使我将 Doom 降频到@448,Doom 也能完美运行,没有任何延迟。这仅仅是因为低分辨率纹理和非复杂级别还是因为光线投射?

并且请不要因为回到像光线投射引擎这样的老东西而生气。实际的移动设备或智能手机 - 随心所欲地调用它们 - 不花费 1000 美元,它们正处于 18 年前计算机(Doom 版本)的阶段。总会有一组这样的设备。即使我没有为此赚到十亿美元——我也会在旅行中有所收获。

对于这样的游戏,我有一些不错的想法,我想尝试低成本设备,因为它们没有比简单的逻辑游戏更壮观的东西了。由于这是我的第一个问题,请纠正我写错的任何内容,无论是糟糕的还是糟糕的——我会重写它。