从哪里开始体素引擎?

我一直在研究体素游戏已有一段时间了,但我所做的一切都是主菜单和Item系统。 现在是制作体素引擎的时候了。 我一直在寻找一些教程或电子书来教我这样,但我能找到的最好的是c ++中的某些教程,但我用Java制作我的。 我过去曾涉足c ++和c#,但翻译起来太难了,即它依赖于java没有的类。 我所知道的是,体素引擎有不同的方法,它们都是从渲染单个立方体开始的,Perlin和Simplex噪声可用于随机化地形生成。

如果有人能指出我正确的方向,大多数人赞赏。 我会每小时至少检查一次,因为有人觉得这个post已经死了。

我不完全确定你在问什么,如果你问的是如何制作单一噪声,在体素引擎中实现它或者如何开始制作体素引擎。

如果你问如何开始制作体素引擎,我建议先用四边形练习(2D版本)并专注于理解理论。 一旦你对你的理解感到满意,你应该专注于体素类(一个立方体) – 尽可能多地从中学习,然后添加更多,这样你就可以尽可能地优化渲染,这样隐藏的面部不会被渲染,甚至顶点也会被共享,如果没有优化,体素引擎可能是最浪费的渲染器!

编辑:
优化可以通过许多方法完成,第一个也是最重要的是隐藏面部移除,这涉及移除接触的体素的面,这意味着在渲染之前需要检查任何体素的任何给定侧上存在的体素。面部(例如在渲染左面之前,检查左边是否有块)。 接下来是渲染方法, 不要单独渲染每个面或每个组,将它们分组以便可以更快地渲染它们,这可以通过使用显示列表或更技术的VBO来完成,这些确保数据在GPU或者数据可以更快地提供给GPU,例如,Minecraft将它们分成大块的16x16x128组并使用显示列表。 如果您真的想要减少内存中的每个顶点,您还可以考虑使用条带绘制方法(在OpenGL中),这些将要求您在渲染的某个时间定义某些顶点,但允许您为多个面重用顶点。

接下来将是理解单纯形噪声,我可以说在线上没有太多的材料用于噪声生成算法,遗憾的是我无法链接我多年前使用过的材料。 您可以在2D版本中实现噪声算法,以certificate它在更简单的环境中工作,然后将其复制到体素版本。 典型的用法是将值用作地形中的高度(例如,白色= 255 = 255高)。

我建议使用Unity。 该引擎已经制作完成,只需几行代码即可添加菜单和标题。 所有的游戏创建都是用C#或Javascript进行的,不应该是C ++的任何重大变化。 祝你好运!