1

我目前正在使用 Unity 3D 中的行进立方体开发具有完全可变形、平滑体素地形的小行星采矿/探索游戏。我想实现一个类似于 Minecraft 的“元素 ID”系统,因为每种类型的材料都有一个唯一的整数 ID。这很容易生成,但现在我正试图找出一种渲染它的方法,以便每个单独的面代表其体素分配给的元素。我目前正在使用带有纹理数组的三平面着色器,并且我已经将它设置为使用预设的纹理 ID。但是,我需要能够将元素 ID 传递到整个小行星的着色器中,这就是我有限的着色器知识用完的地方。所以,我有两个主要问题:

  1. 如何从活动脚本中的 3D 数组获取数据到我的着色器,或者如何从该数组中采样点?

  2. 有没有更好/更有效的方法来做到这一点?我考虑过创建一个仅包含表面顶点及其相应 ID 的数组,但这样我将无法正确采样它们。我还考虑过可能将一个额外的变量与顶点本身捆绑在一起,但我不知道这是否可能。我很感激任何想法,谢谢。

4

0 回答 0