God of Pixels: шесть лет, два языка и один генератор планет
RBnik 4 минуты назад Объяснить с God of Pixels: шесть лет, два языка и один генератор планет Простой 9 мин 0 C++ * 3D-графика * Open source * Qt * Астрономия Обзор Из песочницы Начну с результата — вот как выглядит...
<5 — 2026'da uzaya kaç SpaceX Starship fırlatması ulaşacak?
Значимый прорыв формирует отрасль ИИ: RBnik 4 минуты назад Объяснить с God of Pixels: шесть лет, два языка и один генератор планет Простой 9 мин 0 C++ * 3D-графика * Open source * Qt * Астрономия Обзор Из песочницы Начну с результата — вот как выглядит программа сегодня:Актуальное состояние программыА теперь с самого начала…Более 6 лет назад, во время учебы в школе, я писал всякие небольшие программы для развлечения. Так однажды мне пришла амбициозная (в сравнении с моими навыками) идея: процедурный генератор планет. Да, просто генератор красивых картинок, без какой‑то объективной пользы.
И сейчас перед вами история проекта, который развивался вместе со своим разработчиком на протяжении всей его карьеры. God of Pixels — просто пикселиВ новой школе мы как раз начали изучать Python и я принялся за работу. Каменные острова в океанеНо как вообще сгенерировать планету?
Технические детали
Сложные объекты надо начинать делать с простого, так что я просто сделал круг планеты и каменные острова. С точки зрения алгоритма, это разбрасывание точек по кругу и выращивание вокруг них островов за несколько проходов. Слева первая планета, которую я увидел на мониторе.
Не сильно впечатляет, я знаю, но первый шаг на то и первый. Тогда мне казалось, что я смогу быстро получить приемлемый результат. Полярные льды и растенияДобавив цветов и шагов итерации, удалось получить что‑то более похожее на острова в океане.
Затем нужно было поправить вероятности появления точек и задать два фиксированных острова снизу и сверху. Ну и не забыть про растения. Тест освещения на планетеЭто все еще больше похоже на бактерии в чашке Петри и мне потребовалось время, чтобы понять причину.
Отраслевые последствия
Начались эксперименты и математические расчеты. Да, да, на Python, на CPU циклах, по собственным формулам я рассчитывал освещение на сфере. Даже код сохранился:def Shadow(x1,y1): #координаты пикселя import math a=x1-57 #координаты относительно центра картинки b=y1-58 R=52 #радиус планеты xm=-24 #координаты точки максимальной освещенности (ТМО) zm=math.
sqrt(R*R-xm*xm) z=math. sqrt(R*R-a*a-b*b) #координата точчки на поверхности планеты r=math. sqrt((a-xm)*(a-xm)+b*b+(z-zm)*(z-zm)) #расстояние до ТМО u=math.
asin(r/2/R)) #угловое расстояние до ТМО k=(45-u)/45 #теневой коэффициент return kУже к этому моменту у вас могли появиться вопросы. Почему бы не изучить существующие алгоритмы процедурной генерации? Почему бы не посмотреть другие языки и библиотеки?
Этот прогресс даёт важные сигналы о будущем отрасли, и технологический мир внимательно наблюдает.





