Поэтому я пытался использовать мощь вычислительных шейдеров, чтобы ускорить процесс генерации симплексного шума для создания рельефа моей карты в единстве. Проблема в том, что для работы игры требуется, чтобы все было детерминировано, чтобы предотвратить рассинхронизацию в ее синхронной симуляции. Для этого мне нужно использовать какую-то математику с фиксированной точкой, чтобы избежать недетерминированного беспорядка, который является плавающим :(. Интересно, может ли кто-нибудь помочь с этим, поскольку не могу понять, как добиться этого в разумное время выполнения
Детерминированный вычислительный шейдер для симплексного шума в Unity
Ответы (1)
Существует тип данных fixed
, который вы можете использовать в шейдерах. Его значение колеблется от -2,0 до 2,0 с шагом ровно 1/256. Это должно сделать это.
Если диапазон не работает для вас, вам придется обойтись целыми числами, которые не поддерживаются на старых платформах (даже если они эмулируются внутри с использованием плавающих запятых, а это не то, что вам нужно).
См. https://docs.unity3d.com/Manual/SL-DataTypesAndPrecision.html а>
person
Thomas Hilbert
schedule
30.04.2017