Прогаем с кенгурой
229 subscribers
198 photos
194 videos
17 files
160 links
Сидим с кенгурой под горой, запекаем текстуры...

{ программирование, процедурная генерация, графика, аудио, образование и немного про специфичные игры }

https://gostrobrod.dev
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
К вопросу liquid ass. Недавно на одном проекте делал такую линзу для просмотра значений пикселей. В данном случае - индексированная гифка
🔥16
Прогаем с кенгурой
Нашел, куда с пользой на практике применить процедурную генерацию - буду пилить мод для Террарии, потому как задолбала меня там рутина типа копания туннелей. Ну и всякие биомы можно нагенерить через SDF необычные. Пока сделал рисование этих самых тоннелей))
Media is too big
VIEW IN TELEGRAM
Так, вроде получилось привести в стабильное состояние отрисовку, разобраться с системами координат поля и гуи, как что чем рисовать и прочим.

В итоге сделал мод [WdF] Tools - он опубликован и в нем аж целый один инструмент, который крафтится из куска земли и умеет рыть тоннели между двумя точками.

Теперь, когда база отлажена и изучена, можно приступать к более интересным генерациям.
4👍2🔥2
This media is not supported in your browser
VIEW IN TELEGRAM
Автоматизировал постройку коридоров.

Для этого я держу поле с ячейкой 5х5 тайлов, где помечаю, построен там коридор или нет. Это нужно по нескольким причинам:
1. Коридоры всегда выровнены по сетке
2. Не нужно перепердоливать созданнаю ячейку (по крайней мере в данной сессии), то есть если вы там что-то руками поменяете, оно останется
3. Оно мне нужно для постройки границ коридора (блоков вокруг)

Как строятся границы:
- для всех измененных ячеек я беру нулевых соседей
- для каждого соседа строю маску, как расположены соседи вокруг
- в зависимости от маски ставлю блоки

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

Из минусов - после перезапуска игры тула уже не помнит, где что было - карта чистая.
🔥2
Недавно столкнулся с проблемой кодирования 4к видео на Андроиде (на iOS жалобы не поступали) - у него пячится цвет:

Проблема возникает из-за разных цветовых стандартов исходного и экспортируемого видео. На входе у нас BT.470, на выходе BT.709 (зеленоватое) или BT.2020 (красноватое).

Даже если мы выставим руками BT.601 (тот же BT.470 математически), то аппартаный энкодер поставит обратно в BT.709 (или BT.2020 в зависимости от вендора) для 4к видео, потому что BT.601 не поддерживается для таких размеров. Также мы могли бы руками править цвет, но для этого нам нужно знать входной формат, а средствами андроида это получить невозможно - он нули возвращает.

Поэтому будем тащить ffmpeg и ручками пячить цвета.

Немного контекста: эти стандарты по сути определяют матрицу для перехода YUV<->RGB и пришли из телевидения. (вот про 601 например)
👍3👀1
Почему у Андроида такая всратая тула для дебага видюхи? Из официального я нашел только Android GPU Inspector (AGI), и это шайтан-арба мало того, что работает не только лишь на всех девайсах (про симулятор молчу), так еще и на них - через раз, падает, не может захватить кадры и прочее.

У яблок же отладчик GPU - просто прелесть: работает и на девайсах, и на симуляторе, все захватывает, умеет дебажить и тд. Да, иногда глючит, падает, но в большинстве случаев работает замечательно. И оно правится и развивается от версии к версии!

Если вы знаете, что есть для Андроида кроме AGI - скажите, ибо задолбало меня это чудище.
Forwarded from Генканал (George)
Media is too big
VIEW IN TELEGRAM
Симуляция частиц
от @coding_with_kangaroo

Сделана на подобии Particle Life (в плане идеи нескольких классов с разными коэффициентами взаимодействия), но с расширением в сторону физичности: учитывается масса, а взаимодействие работает через квадрат расстояния: f(i,j)=k_{ij}\cdot\frac{m_{i}\cdot m_{j}}{r_{ij}^{2}}.

- Правило - матрица 4х4 (число классов - 4), которая описывает коэффициенты взаимодействия между классами. При этом она может быть несимметричной.
- Так как в симуляции считаются только частицы (положение + скорость), то поле - виртуально и может быть любого размера.
- Пространство тороидально, чтобы частицы не разлетались со временем - все же это делалось для лирики, а не физики.
- Скорости тоже можно делать неограниченными, но нужно масштабировать время, иначе частицы проходят за итерацию расстояния, сильно превышающие их размер.

На видео - арт режим, когда цвета и правило меняются по времени + сделано движение поля по фигуре Лиссажу 1:2.

Приложение на AppStore
Видео на ютубе
#particle
🔥4
Screenshot 2025-06-21 at 20.01.16.png
363 KB
L-система - одна из разновидностей фракталов на основе грамматик строк. Состоит из алфавита возможных элементов, инициирующего состояния и набора правил, какие элементы что порождают. На каждой итерации к каждому элементу текущего состояния применяются соответствующие правила (если они есть). Примеры:

Треугольник Серпинского
алфавит: F G + −
инициирующее состояние: F−G−G
правила:
F → F−G+F+G−F
G → GG
параметры: угол=120°
F и G рисуют отрезок, + поворачивает на право, - поворачивает на лево.

Кривая Дракона
алфавит: X Y F + −
инициирующее состояние: FX
правила:
X → X+YF+
Y → −FX−Y
параметры: угол=90°
F рисует отрезок, + поворачивает на право, - поворачивает на лево.

Растения и деревья
Море их - даже описывать не буду.

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

https://www.sidefx.com/docs/houdini/nodes/sop/lsystem.html

Имеет инструмент/ноду L-System. Ну и много чего еще - я не особо пользуюсь, но периодически заглядываю и тыкаю. Предпочитаю код - как-то понятнее он мне.
👍1
Algorithmic Botany

https://algorithmicbotany.org

Инструмент для алгоритмической ботаники. Возврат к истокам, так сказать. Не очень удобный UX, но все работет - советую сначала почитать короткий мануал и глянуть примеры. Поддерживает два языка:

cpfg - тупо задаем правило и наслаждаемся (хорошо для простого)
lpfg - С-подобное чудище, удобное для сложных систем

Плюс у него еще куча других файлов для настроек, параметров и прочего.
3
Context Free

https://www.contextfreeart.org/index.html

Тула для процедурного арта. Позволяет достаточно коротким описанием грамматики получить достаточно интересные картинки. Имеет свой язык (CFDG?). Сильно проще, чем предыдущие две. Рекомендую.
4
как-то так я порой вижу все эти chatgpt и ему подобные
😁7👍5🔥1
Вспомнил историю из универских времен. Проходил у нас на факультете CTF иб-шный, а было там две кафедры: больше про железо и больше про ПО. Ну и задача была - выключить противнику доступ к сети. На что чел с нашей (железной) кафедры сидел смотрел на соперников, а потом подошел и выдернул сетевой кабель из их компа.

Победу засчитали, но правила обновили и дальше в турнире не пустили)))
😁94
Так, у меня переезд. Как перееду расскажу что-нибудь интересное, выбирайте очередность (потом про градиенты расскажу после этих двух):
Anonymous Poll
62%
Сплайны
38%
Цветовые пространства
Наткнулся на классный канал https://www.youtube.com/@PracticalEngineeringChannel
👍4