Превратите пустыню в цветущий уголок на ландшафте Unity.
Карта воды (маска) генерируется из нативного массива Color32 размером 2x2k, который я синхронизирую с графическим процессором по частям (копируются только отредактированные данные, иначе метод Apply() будет слишком долго зависать). Я намеренно избегал вычислительных буферов, чтобы сохранить возможности для портирования на низкопроизводительное или старое оборудование. Маска кодируется в формате RGB, поэтому r — это текущий уровень влажности, g — целевой уровень, а b — скорость изменения. На основе этих данных шейдер может определить состояние анимации.
Самое интересное, что анимация значений происходит в нативном массиве, поэтому моя игра может управлять состоянием влажности и запрашивать его в любое время без задержки со стороны ЦП. Это обеспечивает большую гибкость и отлично работает на огромных ландшафтах (протестировано с разрешением 4x4k, и системе это не мешает).
Post #15338
809