Мы работаем над проектом для iPhone и Windows Phone 7, в котором мы хотели бы иметь возможность генерировать чайные листья на дне чашки. Это не должно выглядеть фотореалистично, и на самом деле все в порядке.
Какие методы мы должны исследовать для достижения этой цели? Есть ли какие-нибудь библиотеки (желательно на С, но мы можем перевести), которые были бы полезны?
Вот несколько примеров, взятых из поиска картинок Google
Ответы:
Как я, вероятно, сделал бы это, чтобы я мог сохранять некоторый контроль над искусством и потенциально не тратить много времени, пытаясь настроить процедурный метод, чтобы сделать это правильно ...
Во-первых, вручную создайте несколько спрайтов сгустков чайного листа в качестве своего «пула» - не каждый как чайный лист на целую чашку, а скорее как небольшая группировка. Скажем, 20 из них или около того?
Затем поместите случайное количество из них в случайных координатах на базе «чашки». Дайте каждому случайное вращение и масштаб плюс случайное горизонтальное и / или вертикальное зеркальное отображение. Это должно создать хороший результат.
Этот подход даст вам артистическую свободу в создании отдельных сгустков, чтобы они выглядели так, как вам хочется, и в то же время позволит получить огромное разнообразие результатов (при условии выбора достаточного количества спрайтов).
Кроме того, с помощью этого (и любого случайного метода, в том числе на основе шума Перлина), вы можете фактически запустить генератор случайных чисел в начале процесса с известным начальным числом для получения воспроизводимых результатов. Если вы сохраните начальное значение, вы сможете заново воссоздать тот же самый образец, повторно заполнив его перед началом последовательности. Вы могли бы даже сделать забавные вещи, например, попросить кого-нибудь напечатать свое имя, превратить буквы в число (сумма ASCII и т. Д.), А затем использовать это в качестве начального числа как своего рода «этот образец чайного листа, настроенный для ВАС!» предмет.
Вот какой-то псевдокод для того, что я имею в виду, если это поможет ...
Посетите http://mathworld.wolfram.com/DiskPointPicking.html, чтобы обсудить, как выбрать случайную точку на диске и почему я использую эту функцию sqrt / sin / cos.
источник
Попробуйте перлин шум с двоичным значением отсечки 0,8 или около того?
Загрузил пример изображения на http://imgur.com/a/Ydc4y . Первое - это второе изображение с примененным порогом. Второй - это основной перлин-шум, для которого вы можете найти несколько хороших ссылок, таких как http://en.wikipedia.org/wiki/Perlin_noise и http://http.developer.nvidia.com/GPUGems2/gpugems2_chapter26.html .
Вы можете немного поиграть с количеством и масштабом октав в перлин-шуме, чтобы варьировать то, насколько гладко будет выглядеть выходной сигнал, а также с порогом, определяющим, сколько (в среднем - это шум) чайных листьев будет.
источник