Можно ли научить Python рисовать? Эта статья — не сухой туториал, а настоящая история экспериментов с генеративным искусством. В ней рассказывается о создании цифровых картин с помощью случайностей, математики, шума Перлина и любви к визуальному абсурду. Много кода, немного философии и никакой нейросети — только чистый Python и жажда выразительности.
Рубрика «perlin noise»
Код как кисть: как Python превращается в художника с помощью генеративных алгоритмов
2025-04-26 в 14:16, admin, рубрики: matplotlib, perlin noise, pillow, python, Алгоритмы, визуализация, генеративное искусство, код как искусство, программное рисование, цифровое искусствоПроцедурная генерация двухмерной полигональной карты
2025-03-23 в 1:22, admin, рубрики: Gamedev, perlin noise, python, voronoi diagram, генерация карт, генерация мира, процедурная генерация
Предисловие
Привет Хабр ! Это моя первая статья на тему процедурной генерации. Здесь я рассмотрю конкретную задачу по генерации, её решение и опишу ключевые использованные принципы. Пишу эту статью для того, чтобы поделиться идеями и опытом, которых мне не хватало, когда я взялся за дело две недели назад. Читать полностью »
Простая процедурная генерация мира, или Шумы Перлина на Python
2023-04-25 в 11:54, admin, рубрики: minecraft, perlin noise, selectel, Алгоритмы, Блог компании Selectel, графика, Дизайн игр, майнкрафт, процедурная генерация, Работа с 3D-графикой, разработка игр, шум перлина
Недавно я выпустил статью, в которой рассказал о библиотеке Ursina Engine и показал, как создать свою трехмерную игру на Python. Между разделами вскользь упомянул про шум Перлина. Это один из базовых алгоритмов процедурной генерации, который можно использовать для создания красивых игровых миров. Хочу рассказать о нем подробнее и показать, как работать с модулем perlin-noise.
Если вам интересно, как просто генерировать реалистичные трехмерные ландшафты на Python, добро пожаловать под кат!
Читать полностью »
Создание пиксельной туманности при помощи шума и Median Cut
2019-09-25 в 13:16, admin, рубрики: dithering, fractional brown motion, perlin noise, pixel-art, Алгоритмы, Дизайн игр, дизеринг, обработка изображений, пиксель-арт, разработка игр, шум перлинаЯ хотел, чтобы в моей игре The Last Boundary была туманность. Они потрясающе выглядят и космос без них не космос, а просто разбросанные по фону белые пиксели. Но так как игру я делаю в стиле «пиксель-арт», то мне нужно было как-то заставить мою библиотеку шума генерировать пикселизированные изображения.
Вот несколько примеров:






В одноцветных примера используется 8 цветов, а в других — 16 цветов. В этой статье я расскажу, как создавал пикселизированную туманность для The Last Boundary.
Читать полностью »
Реализация физически корректных объемных облаков как в игре Horizon Zero Dawn
2019-07-30 в 4:07, admin, рубрики: horizon zero dawn, perlin noise, physically based rendering, realistic clouds, realistic sky, volumetric rendering, Алгоритмы, математика, Программирование, Работа с 3D-графикой, разработка игрРаньше облака в играх рисовались обычными 2D спрайтами, которые всегда повернуты в направлении камеры, но последние годы новые модели видеокарт позволяют рисовать физически корректные облака без заметных потерь в производительности. Считается, что объемные облака в игры принесла студия Guerrilla Games вместе с игрой Horizon Zero Dawn. Конечно, такие облака умели рендерить и раньше, но студия сформировала что-то вроде промышленного стандарта на исходные ресурсы и используемые алгоритмы, и в настоящее время любая реализация объемных облаков так или иначе этому стандарту соответствует.
Шум Перлина
2017-11-22 в 3:19, admin, рубрики: perlin noise, python, графический дизайн, процедурная графика, Работа с векторной графикой, разработка игр, шум перлинаЯ использовал шум Перлина для создания эффекта тумана и главного экрана в Under Construction. Я твитнул о моих усилиях по оптимизации алгоритма, и несколько людей ответили, что они не понимают, как работает шум Перлина и что это на самом деле такое.
Признаюсь, что я (немного) понимаю шум Перлина прежде всего потому, что я реализовывал его ранее, и несколько дней ушло на погружение в неуклюжие объяснения полдюжины разработчиков, более заинтересованных в показе собственных демок, нежели в реальном объяснении. Несколько полезных ресурсов, которые я нашел, часто содержали ошибки и не давали мне интуитивного чувства понимания, как и почему оно все-таки работает.

