Для проекта на unity нужно хранить величину, как "карту". Для примера: карты текстур, нормалей, освещения, высоты. В моём случае этот объект должен хранить векторное поле. Примерный функционал:
1. конструктор с указанием разрешения изображения и метода интерполяции.
2. метод set(uint x, uint y, float value) для окраски пикселя.
3. методы get(uint x, uint y) и get(float x, float y), второй с интерполяцией.
4. желательно метод для закрашивания карты по алгоритму аналогичный fill(Func method) и, если возможно, параметрами области закрашивания и методом закрашивания (замена/поверх).
5. желательно методами для закрашивания как кистями в редакторах фото
6. конвертирование в чб изображение, но в моём случае это нужно только для дебага.
Я понимаю, что подобное написать самому на c# нетрудно, однако вряд ли оно будет достаточно быстрым. К тому же, в unity/c# наверняка уже есть готовая реализация для данного объекта, однако я не знаю, как она должна правильно называться. Поэтому хочу узнать - какие существуют реализации такой карты?
Обычная текстура. В юнити можно сделать текстуру доступной для записи.
В сишарпе - есть например Bitmap - можно им.
Вот только с Fill могут быть вопросы
bitmap явно мимо, вряд ли он имеет встроенную интерполяцию. А вот у юнити и правда есть Texture2D.GetPixelBilinear, но он имеет тип Color. благо, Color содержит все каналы, как float. Однако в документации "Each color component is a floating point value with a range from 0 to 1.". Надеюсь, туда реально записывать значения вне диапазона, но это уже экспериментально проверять надо. Так или иначе, спасибо.