Подтвердить что ты не робот

Как вы рисуете как Crayon?

Crayon Physics Deluxe - это коммерческая игра, которая появилась недавно. Посмотрите видео на главной ссылке, чтобы понять, о чем я говорю.

Это позволяет вам рисовать фигуры и реагировать на них с соответствующей физикой. Цель состоит в том, чтобы переместить мяч на звезду по экрану, используя конструкции и фигуры, которые вы создаете.

В то время как игра в основном является оберткой для популярного Box2D Physics Engine, у нее есть одна функция, которая мне интересна, реализованы.

Его рисунок очень похож на Crayon. Вы можете увидеть текстуру карандаша, и, поскольку она рисует, она изменяется по толщине и темноте, как и на самом деле рисование карандаша.

alt text http://www.kloonigames.com/crayon/screenshots/crayon_small_01.jpg alt text http://www.kloonigames.com/crayon/screenshots/crayon_small_02.jpg

Фоновая текстура свободно доступна здесь.

alt text http://img267.imageshack.us/img267/1488/crayonmh7.png
Закройте рисунок карандаша. Обратите внимание на различную темноту.

Какой алгоритм будет использоваться для рендеринга этих строк таким образом, который выглядит как Crayon? Является ли это простой текстурой, применяемой со случайной толщиной и темнотой, или что-то еще происходит?

4b9b3361

Ответ 1

Я помню, прочитав (давным-давно) краткое описание алгоритма для этого:

  • для общего вида линии вы разбиваете сегмент на две части в случайной точке и слегка перемещаете эту точку от ее положения (вариация зависит от расстояния до точки до конца). Повторите рекурсивно/случайным образом. Таким образом, линии не являются "идеальными" (прямая линия)

  • для данного сегмента вы можете "перерегулировать" немного, расширив один конец или другой (или оба). Таким образом, у вас нет идеальных суставов. Если я хорошо помню, лучше было расширять исходные концы, но вы можете сделать это для подсегмента, если хотите визуально разделить их.

  • нарисуйте линии с рисунком/печатью

  • была также (уже упомянутая) возможность рисовать с различной начальной и конечной непрозрачностью (чтобы имитировать тенденцию выпуска пера в конце чертежа)

  • Вы можете использовать другой размер для штампа в начале и конце строки (также чтобы имитировать тенденцию выпуска пера в конце рисования). Для такого же эффекта вы можете также провести линию дважды, с небольшим изменением для одного из концов (будьте осторожны с альфой в этом случае, так как линия будет вырисована дважды)

  • Наконец, для данной строки вы можете делать предыдущие изменения несколько раз (т.е. нарисовать линию дважды, с различными вариантами): человек, как правило, повторяет строку, если совершает некоторые ошибки.

Привет

Ответ 2

Если вы взорвите изображение вверх, вы увидите повторяющийся штамп-штамп. Возможно, небольшой ассортимент, который он использует при перемещении от a до b, может даже вращать их.

Невозможно изменить колебание линии. Разделите на кучу случайных сегментов, выберите позиции немного в стороне от прямого маршрута и нарисуйте сплайны.

Ответ 3

Здесь бумага, которая использует много математики для моделирования осаждения воска на бумаге с использованием модели трения. Но я думаю, что ваш лучший выбор - просто использовать повторяющийся образец, как упоминал еще один читатель, и изменить непрозрачность в соответствии с давлением.

Для несовершенных частей рисования линии у меня есть запись в блоге описывающая, как это сделать, используя кривые Безье.

Ответ 4

Вы можете установить темноту по скорости. Это просто измерение расстояния, пройденного курсором между этим кадром и последним кадром (помните теорему Пифагора), а затем, когда вы идете рисовать этот сегмент линии на экране, отрегулируйте альфа (непрозрачность) в соответствии с измеренным расстоянием.

Ответ 5

Имеется доступная бумага под названием "Mimicking Hand Drawn Pencil Lines" , которая покрывает немного того, что вам нужно. Хотя он не представляет очень подробного представления об алгоритме, авторы действительно освещают основы шагов, которые они использовали.

В этой статье представлены описания высокого уровня того, как они генерируют строки, а также то, как они генерируют текстуры для строк, и получают результаты, которые похожи на то, что вы хотите.

Ответ 6

В этой статье, посвященной серии рендеринга, чтобы выглядеть как комиксы XKCD, есть алгоритм для возмущающих строк, которые могут иметь значение. Он не охватывает вычисление текстуры линии, нарисованной карандашом, но он предлагает подход к тому, чтобы сделать прямую линию, выглядящую несовершенной по-человечески.

Пример вывода:

enter image description here

Ответ 7

Я считаю, что самым простым способом было бы просто использовать текстуру со случайной темнотой (возможно, некоторые градиенты) и установить случайный размер.