0

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

如果有人能指出我正确的方向,将不胜感激。我将至少每小时检查一次,以防有人觉得这个线程已经死了。

4

2 回答 2

2

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

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

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

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

于 2014-03-19T20:10:46.177 回答
-6

我建议使用 Unity。该引擎已经制作完成,您只需几行代码即可添加菜单和标题。所有的游戏创作都是用 C# 或 Javascript 编写的,这与 C++ 相比应该没有太大的变化。祝你好运!

于 2014-03-19T19:25:25.323 回答