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

c - Visual Studio 2012:LNK2028 和 LNK2019 构建错误

我遇到两个错误,无法弄清楚如何解决,它们是:

错误 LNK2028:在函数“void __cdecl vox_texture_cube(unsigned int,unsigned int)”中引用了未解析的令牌 (0A0003A0)“void __cdecl polygon(int,int,int,int,unsigned int)”(?polygon@@$$FYAXHHHHI@Z) " (?vox_texture_cube@@$$FYAXII@Z)

错误 LNK2019:函数“void __cdecl vox_texture_cube(unsigned int,unsigned int)”中引用了无法解析的外部符号“void __cdecl polygon(int,int,int,int,unsigned int)”(?polygon@@$$FYAXHHHHI@Z) ?vox_texture_cube@@$$FYAXII@Z)

我唯一尝试过的是进入项目属性中的常规选项并将公共语言运行时支持更改为 /clr pure 根据此处的另一个问题,但是,这会导致更多问题。

这是我的代码:

0 投票
1 回答
296 浏览

mesh - 柏拉图式(阿基米德)实体的 3d 点到面的映射

我想计算得到的柏拉图(或者可能是阿基米德)实体的表面网格,并为每个面应用置换贴图。网格应显示位移图的精细细节,并且是水密和多方面的(用于 3D 打印)。

为此,我考虑过使用 CGAL 隐式函数 3d 曲面网格划分器。然后,我会将每个体素点映射到相应的面部,应用从体素空间到面部的坐标系变换,并查找面部的高度场。我知道如何为每个面构建变换矩阵,所以我想到了以下算法来测试实体中是否包含体素:

  1. 找到离点A最近的人脸
    • 对于给定的点 A,通过迭代所有顶点并比较与 A 的距离,找到柏拉图式(阿基米德)实体的 3 个最近顶点
    • 根据顶点数组中最小的索引对3个顶点进行排序
    • 从顶点索引中构建一个整数(字典索引): (v[0] n n+v[1]*n+v[3]*1) 其中 n 是顶点的数量
    • 迭代一个元组数组(字典索引,人脸)并找到具有相同字典索引的人脸
  2. 每个面都有一个预先计算的变换矩阵和一个高度场。应用变换矩阵并查找高度场以了解 A 是在实体内部还是外部

我想存在更好的解决方案,尤其是寻找合适的面孔?另一种方法可能是不使用表面网格器,而是从面中构建表面:获取每个面的位移图并将变换矩阵应用于它以构建实体,但是我需要简化每个面网格并将它们合并不知何故,结果是水密和多方面的(如果置换贴图具有某些值,则面应该支持孔),所以我认为具有隐式函数的基于体素的方法是最通用的工具。

0 投票
2 回答
2477 浏览

three.js - Threejs精灵排序

我在使用 Three.js 渲染精灵时遇到问题,为了使问题进一步复杂化,我正在使用游戏引擎voxel.js来管理实例。

示例:http ://christopherdebeer.com/sandbox/voxeljs/

我试过搞乱深度{write|test}:

对于示例左侧的半透明网格。

我需要的是一个透明的网格或体素,以在该位置显示 2d 精灵的同时为一定体积的空间提供一些物质。

我该如何解决这个问题,或者我做错了什么?

0 投票
2 回答
1031 浏览

c++ - DX11 动态大小的缓冲区

我正在尝试为大学项目制作可变形的体素地形。我目前正在使用数字 3DTextures 将我的体素数据保存在“块”中。我的计划是使用计算着色器对所述体素数据执行行进立方体算法,并将顶点输出到缓冲区中,然后每帧都可以渲染该缓冲区。

问题是,为了为我正在使用的结构化缓冲区设置 UAV,我需要知道 D3D11_BUFFER_UAV 的 NumElements 有多少元素。我可以猜测它可能包含的最大值,但是在计算着色器完成之前我无法知道它实际上会包含多少,并且我想到这可能不是解决问题的最佳方法.

我真正需要做的就是让计算着色器输出任意数量的顶点,这些顶点可以在以后存储和渲染,关于最好的方法有什么想法吗?

0 投票
1 回答
259 浏览

joomla - 带有 Rocket Theme (RT) 体素模板的 Joomla 2.5 首次加载缓慢

我已经使用 RT 体素模板开发了 Joomla 网站,当页面第一次加载时需要 10 秒,如果我刷新,那么它会在所有浏览器中加载 2 秒。

这种慢的原因是什么?

模板体素或任何其他插件或组件

预先感谢

0 投票
5 回答
7762 浏览

algorithm - 在 3D 体素空间中的两点之间走一条线,访问所有细胞

我有一个视线问题,我需要通过访问两个(非网格对齐)点之间的 3D 体素空间中的所有可能的单元格来解决。

我考虑过使用 3D Bresenham 算法,但它会跳过一些单元格。

一个天真的实现可能只是以比体素网格更高的分辨率检查沿线的点,但我希望有一个更智能的解决方案。

有人有线索吗?

0 投票
1 回答
328 浏览

c++ - 一个线程正在渲染或管理体素游戏块。另一个刚刚删除了它。访问冲突?

我似乎很难在多线程程序中创建一个动态块管理系统。我有一个类,VDimensia,它是一个充满体素块的维度,多线程程序的一个线程正忙于渲染和更新体素。我的问题是另一个线程旨在销毁太远的体素块,并且当它删除一个块而另一个线程正在创建和初始化该块时会导致问题。我的代码现在有点混乱,我已经进行了所有访问检查,但我似乎无法找到一种方法来防止程序弹出某种访问冲突。有没有办法使用 try catch 忽略违规并继续?我已经尝试使用__try __except,它决定锁定线程,我试图设置编译器选项/EHa,但实际上什么也没做。我正在使用 Visual Studio 2012 C++。直到今天我仍在学习 C++,所以任何帮助表示赞赏。

0 投票
2 回答
1647 浏览

opengl - 关于八叉树及其在体素世界中如何工作的说明

我读到了八叉树,但我并不完全理解它们是如何在体素世界中工作/实现的,在体素世界中,八叉树的目的是通过将重复体素连接到一个大的“体素”来降低要渲染的体素数量。

以下是我想澄清的问题:

  • 你会使用什么类型的数据结构?如何将体素的 3-D 数组转换为具有不同大小体素的数组,这些体素在数组中占据多个位置?
  • 什么是节点,它们的用途是什么?
  • 八叉树是否连接体素,所以只有正方形,或者它可以是矩形或 L 形或整个 Y 体素列还是什么?
  • 八叉树真的能提高体素游戏的性能吗?如果有的话,一般是多少?
0 投票
1 回答
8178 浏览

unity3d - Unity3d 理解体素地形

我无法理解如何创建程序世界。我找到了关于体素地形生成的文章,但它只是视频或图片,我找到了一些地形引擎,但我无法理解。我想一步一步地教程如何创建简单的体素对象。我想创建地形,而不是立方体地形。

0 投票
1 回答
652 浏览

java - 基本 3D 碰撞检测问题

我正在尝试为我正在开发的基于体素的 3D Java 游戏实现基本的碰撞检测。我正在尝试从该站点实现算法: https ://sites.google.com/site/letsmakeavoxelengine/home/collision-detection ,但我似乎无法正确处理。我的问题是,他所说的“将玩家位置转换为体素空间”是什么意思。我是否应该将玩家的坐标四舍五入到最近的块,以便玩家所在的体素是玩家中心所在的体素?在我的游戏中,玩家目前是一个体素大小的立方体。

该网站上的那个人写道,他只需要检查一个体素是否有碰撞。但是如果我只检查玩家中心所在的体素,那么玩家的中心需要在与物体碰撞之前与它们相交。不应该是这样的吧?如果玩家的中心位于非活动体素中,但玩家立方体的一部分与活动体素相交,那么我应该检查哪个体素?

我意识到这段文字很混乱,但我希望你能理解我的问题。如果您想查看一些代码,这是我的 CollisionHandler 类:(由于我遇到的问题,它并没有真正遵循上面网站的算法。它只关心沿 x 轴的碰撞截至目前)

这是另一种相关的方法: