问题标签 [voxel]

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

voxel - 寻找 SLAB6 实现

我希望在我的光线投射器中实现 SLAB6,尤其是对体素模型的 kv6 支持。然而,Ken Silverman 的 SLAB6 源代码完全不可读(主要是 ASM),所以我希望有人能指出我正确的 C/Java 源代码来加载 kv6 模型,或者最好用一些伪代码解释我的工作原理(因为我想知道如何支持kv6,我知道它是如何工作的)。谢谢, 凯

编辑:实现将在 Java 中。

0 投票
2 回答
260 浏览

javascript - 如何从我的 [原始] 体素算法中挤出额外的 10 FPS?

所以,我用 JavaScript 做了这个简单的 4dof 体素算法,我为自己感到很自豪,但是我没有足够的时间来调试,我已经失去了几天的睡眠,但是我注意到它运行得相对缓慢.

现在,有明显的 %-scaling 和 setInterval 循环减慢了它的速度,但我只在 100 个体素上获得了不到 20 FPS,其中大部分甚至不在屏幕上。

请原谅下面的代码,它是为我原始的小游戏引擎改编的,所以它不会在自己的页面上运行,但你可以在这个网址(http://nextgengame.webs.com/fun/sandbox. .htm)。

这几乎不足以制作风景或任何东西,我希望获得至少 10 FPS 的提升。

这是没有旋转的样子:

你会相信吗,它仍然以大致相同的速度运行!最多增加4 FPS!

如果有人能更快地运行它,那真的会让我很开心。

0 投票
2 回答
880 浏览

graphics - 体素渲染是体素渲染的一种形式吗?

在阅读有关体积渲染的内容时,我看到很多人提到了体素渲染。我知道体数据有体素,但这两个术语可以互换,还是完全不同?

0 投票
3 回答
2977 浏览

javascript - 稀疏体素八叉树

我正在寻找所有可以让我在稀疏体素八叉树上构建最简单体素渲染引擎的材料和书籍。我可能会使用 python 或更可能是 javascript,所以很多东西必须从头开始编写,因为 webGL/openGL 不支持体素。提前致谢。

0 投票
2 回答
1970 浏览

arrays - 您实际上如何制作八叉树(用于体素)?

我见过创建八叉树、添加和删除数据的代码,但实际上如何构建八叉树呢?是否有 3d 体素软件可以保存到某种数组中,然后可以转换为八叉树?或者你可以直接保存到八叉树吗?

0 投票
2 回答
452 浏览

regex - 体素空间上的正则表达式

有没有办法在 3d 体素网格中松散地描述对象(例如,通过模式匹配有限自动机),就像我们可以用正则表达式松散地描述一维字符串中的模式一样?

假设我想描述一个“A”型体素的长方体,其下侧面由“B”或“C”型体素组成,高度为 3,宽度为 5,并将此描述与体素字段匹配以查找模式示例。我可以对精确模型进行一些搜索(类似于 Boyer-Moore-in-3D),但我需要为某些对象指定可变尺寸(例如上述长方体的可变长度)。

0 投票
2 回答
10701 浏览

optimization - 体素引擎和优化

最近我开始开发体素引擎。我需要的只是没有纹理的彩色体素,但数量非常大(比我的世界小得多)——问题是如何快速绘制场景?我使用的是 c#/xna,但我认为这在这种情况下不是很重要,让我们谈谈一般情况。看看这两个游戏:

  1. http://www.youtube.com/watch?v=EKdRri5jSMs
  2. http://www.youtube.com/watch?v=in0bavLJ8KQ

特别是我认为 2 号视频代表了很好的优化方法(我的 gfx 卡在 192 x 192 x 64 时开始窒息)他们是如何实现这一点的?

我会在引擎中拥有什么:

  • 没有纹理但有阴影的彩色体素
    • 很多很多体素,比如至少 512 x 512 x 128 来实现类似视频 #2 的效果
    • 阴影(平滑的阴影会很棒,但这不是必需的)
    • 可选:动态照明(例如来自飞行的火球,在体素结构附近点亮)
    • 帧率最低 40 FPS
    • 相机有 3 种自由方式(x 轴移动、y 轴移动、z 轴移动),无需旋转相机
    • 最后可选功能可能是景深(它会很甜^^)

我已经知道什么优化:

  • 删除位于体素结构内的看不见的体素(其他体素从六个方向覆盖)
    • 删除看不见的体素面 - 因为相机没有旋转并且总是像 TPP 游戏一样向前倾斜,所以如果我们通过垂直切割划分屏幕,左体素和右体素将只显示 3 个面
    • 将体素保留在字典中而不是 3 维数组中 - 跳过大小为 512 x 512 x 128 的数组需要几毫秒,这是不可接受的 - 但字典 int:color 其中 int 描述打包的 3D 位置要快得多
    • 在适用的情况下使用实例化
    • 遮挡?(这个怎么做?)
    • 空间划分/八叉树(这是个好主意吗?)

如果有人给我提示如何改进上面列出的现有优化或者可以分享新改进的想法,我将非常感激。谢谢

0 投票
1 回答
1562 浏览

algorithm - 对一组体素进行三角剖分

我还没有对此进行太多研究,但我只是在四处询问,以防以前做过。

这是我的问题:

我有一组任意高度、宽度和深度的立方体。这些要么是满的,要么是空的。我要做的是开发一种算法,该算法将通过将相邻立方体的面组合成一个来为这组立方体创建最佳网格。

我目前的想法是通过集合 6 次(沿每个轴两次,向前和向后一次),并查看横截面的集合。忽略从外部看不到的立方体,我想为该部分中的那些立方体构建多边形面。最后,我应该有 (x+y+z)*2 这些面。将它们结合起来应该可以得到体素集的优化网格。

然而,我对三角测量过程感到困惑。

0 投票
2 回答
2675 浏览

python - 处理 3d 体素数据的最佳方法是什么?

目前我将体素存储在一个简单的列表中。([0,0,0,0,0,1,0,0,1 ... ]) 要检索列表中的体素位置,我使用此函数:

但是在处理大量数据时这非常慢。例如,迭代 256*256*256 块中的每个立方体需要 50 秒。

我想使用 dict 会更快,但它使用太多内存。

你能帮我找到这两者之间的妥协吗?

0 投票
4 回答
15144 浏览

c++ - 知道任何体素图形 C++ 库吗?

所以,我正在寻找一个带有 C++ 库(面向游戏)的体素图形引擎。只是为了好玩,这将是我第一次使用图形库,所以它不必非常复杂或强大,只需易于理解即可。