从哪里开始使用体素引擎



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

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

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

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

编辑:


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

接下来是理解单纯形噪声,我可以联系到网上没有太多关于噪声生成算法的材料,不幸的是,我不能链接我几年前使用的材料。你可以在2D版本中执行噪声算法,以证明它在更简单的环境中有效,然后将其复制到体素版本中。典型的用法是使用这些值作为地形的高度(例如white=255 =255 high)。

建议使用Unity。引擎已经制作完成,你可以用几行代码添加菜单和标题。所有的游戏制作都是用c#或Javascript完成的,这与c++相比不会有太大的变化。好运!

相关内容

  • 没有找到相关文章

最新更新