Как «сглаживать» или «индекс» 3D-массив в 1D Array?

Я пытаюсь сгладить 3D-массив в 1D Array для «Chunk» в моей игре , Это 3D-блокальная игра, и в основном я хочу, чтобы система физкультуры почти идентична системе Minecraft (однако, это не Minecraft Clone любой мерой). В моих предыдущих 2D-играх я добрался до сплющенного массива со следующим алгоритмом :

Tiles[x + y * WIDTH]

Однако это, очевидно, не работает с 3D, так как он отсутствует ось Z. Я понятия не имею, как реализовать такой алгоритм в 3D-пространстве. Ширина, высота и глубина - все константы (и ширина Так же большая высота).

Это просто x + Y * ширина + z * глубина ? Я довольно плохо с математикой, и я только начинаю 3D-программирование, поэтому я довольно потерян: |

PS. Причина этого состоит в том, что я зацикливаю и получаю вещи по индексу от него довольно много. Я знаю, что 1D массивы быстрее, чем многомерные массивы (по причине Я не могу помнить: P). Несмотря на то, что это может быть не нужно, я хочу максимально хорошей производительности :)

28
задан Tom Zych 15 November 2015 в 19:05
поделиться