如何制作自然的体素


11

我正在开发体素游戏,但我认为我使用了错误的技术。我目前使用扁平砖砌块,并且我认为有一种更好,更有效的方法。

我看过一个自然看似地形的体素游戏。我的意思是非阻塞。该游戏每立方米有4 * 4 * 4个块,并且块如泥土,沙子和石头,具有圆形边缘以及融化在一起(类似于普通游戏)。继承人截图 在此处输入图片说明

如何实现的?



你知道这是哪个游戏吗?您如何确定它是体素?好吧,我自己找到了,这个游戏叫做Blockscape:indiedb.com/games/blockscape
Babis

在procworld.blogspot.com上有一个博客,其中包含有关他的体素引擎是如何创建的各种详细的博客文章。从该引擎还处于初期阶段到现在为Everquest Next获得许可的现在,发布了很多年。
stokastic,2015年

Answers:


14

这是通过在不同高度的立方体之间插入坡度来实现的。

当你有这样的风景(从侧面看)

  #
 ####   ##
############

您可以添加多边形使其看起来像这样:

 /#\
/####\ /##\
############

计算这些斜率的算法是行进立方体算法

当您希望它更加美观时,不要只使用单个多边形在多维数据集之间进行插值,而要使用多个多边形的曲线。但是请记住,它将为您的场景添加很多多边形,因此您只应对那些靠近相机的立方体执行此操作。


谢谢!您知道在OpenGL(轻量级Java游戏库)中解释如何执行此操作的地方吗?编辑:并且,如果您知道一种好的技术,如何为行进的地形添加碰撞检测,也将不胜感激。
KaareZ

@KaareZ对不起,我从未在LWJGL工作。
菲利普

@Philipp您可能对此答案

1
或者,您可以完全跳过行进多维数据集,而转到更有趣的frankpetterson.com/publications/dualcontour/dualcontour.pdf。 您也可以简单地将噪波功能添加为最终块顶点的偏移量。您仍然有块,但现在它们具有不严格按照直线对齐的特点,具有起伏丘陵的特性...结合了双轮廓,从而获得了更有趣的结果(在顶点偏移上带有修改器以控制或多或少的有机体生成) 。
user29244

forum.unity3d.com/attachments/captura-jpg.23795这是“滚动块”的图片(偏移量用作垂直位移)这是更多图片,但在各个方向上都施加了位移forum.unity3d.com/attachments/t1- jpg.23871 forum.unity3d.com/attachments/t2-jpg.23872 vimeo.com/27976287
user29244 2015年

6

为了获得与图像相似的质量,需要处理两个障碍,第一个是艺术上的,第二个是技术上的(内存,处理)。首先,我假设您已经解决了艺术问题,可以制作模型,艺术品和着色器等。(部分原因是我无法回答艺术品问题)

主要的技术问题是,当对您创建的那些模型进行高像素细节化时,最终会产生大量的细小体素。处理和渲染大量体素并非易事。答案是 稀疏体素八度

SVO将使您能够渲染高度详细的模型,而无需处理所有体素,仅处理可见的体素。请注意,为了渲染SVO,您将需要使用光线投射而不是通常的光栅化技术。

本文中有关SVO的更多详细信息

这是具有SVO的BSD许可实现的开源https://code.google.com/p/ficient-sparse-voxel-octrees/

这是一段视频,解释了基于多边形vs基于SVO的渲染(利弊)。


这太棒了!另外,看看sauerbraten.org,它使用类似的技术(但不实现行进立方体,该部分留给关卡设计师)
Kroltan 2015年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.