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

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

https://gostrobrod.dev
Download Telegram
Если вам надо заинтересовать школьников или студентов в полярной системе координат - вот, например, кленовый листочек)))

https://www.desmos.com/calculator/fttpzcif59
3
Для тех, кто пишет под мак.

Если передать в параметры запуска -_NS_4445425547 YES, то вам станет доступно дополнительное дебажное меню, где вы сможете посмотреть и поменять всякое.

Вдруг кому пригодится
🔥18
В соседнем канале зашла речь за древности, вспомнил, что у меня есть книженция с 3.5” дискетой. Где-то еще была 5”, но затерялась при переездах.

Кто-то еще помнит, интересно, времена, когда архив разбивали на части, чтобы каждую уместить на дискету?
🤝5👍2👀1
Media is too big
VIEW IN TELEGRAM
Яблоки наконец прочитали, что я им написал в Review notes (но все еще не ревьювнули покупки-донаты за 3 недели). Но не суть - я релизнул

>>Physarum<<

Если в клеточных автоматах мы меняем значения ячейки (пикселя), а в симуляции частиц - двигаем частицы, то здесь мы двигаем частицы, которые меняют значения пикселей.

Более детально, как оно работает, сделаю видео позже, а пока можете потыкать тут
🔥11
Ревью у яблок это тот еще квест. История:

Акт 1.
Делали эксперимент с рекламой. Затащили, настроили трекинг пользовтеля - все ок. Расширять политику не возброняется - расширили.

Акт 2.
Удалили рекламу - убрали трекинг. Яблоки требуют указать флаги, что есть трекинг и спрашивать его, так как в политике (для стора) он укзан. Пишем, что трекинга нет, а политику поменять не можем, так как она для стора сразу, а в сторе трекинг есть. Таким образом провели несколько итераций режектов и сабмитом ревью.

Акт 3.
Решили наконец через апелляцию - иначе никак это не работает.

Тут два вопроса к этой истории:
- Почему рядовые проверяющие вообще не читают комментарии и переписки к ревью?
- Почему за столько лет яблоки не исправили как-то эту проблему курицы и яйца (а она действительно старая)?
This media is not supported in your browser
VIEW IN TELEGRAM
Теперь она плавно переходит между состояниями.

Обошелся без вью модели биндингами. Не люблю плодить сущности без необходимости
🔥6👍2
Не перерабатывайте. Если вы чувствуете усталость - идите отдыхать. Если чувствуете «второе дыхание» - немедленно бросайте работу и идите отдыхать!

Иначе вы такого наворотите на этом «втором дыхании», что с утра волосы дыбом встанут.

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

Хотите раньше и качественнее закончить проект - идите проспитесь. Такой вот парадокс
👍7
Это SDF точек на кубической кривой Безье, взятых с равным шагом t. Как видите, плотность точек неравномерная, то есть равный шаг между значениями параметра не гарантирует равного расстояния между результирующими точками.

С другой стороны, как видно на второй картинке, плотность тем выше, чем выше кривизна. То есть, в принципе, можно отрисовать кривую Безье кусочно линейной интерполяцией, использую равный шаг t без лишних заморочек.
🔥3👀1
Forwarded from Генканал (George)
This media is not supported in your browser
VIEW IN TELEGRAM
Интересная реализация глитча от @coding_with_kangaroo.

Если вы пилите что-то на Метале, то можете воспользоваться UB в Metal Shading Lnaguage (С++14) и получить натуральный глитч:

Вариант 1. Через безвозвратную функцию:

float4 garbage() {

}

fragment float4 fshTextureQuad() {
return garbage();
}


Вариант 2. Через неинициализированную переменную:

fragment float4 fshTextureQuad() {
float4 garbage;
return garbage;
}


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


let descriptor = MTLRenderPassDescriptor()
pass.colorAttachments[0].texture = someTexture
pass.colorAttachments[0].loadAction = .dontCare
if let encoder = commandBuffer.makeRenderCommandEncoder(descriptor: descriptor) {
encoder.endEncoding()
}


Самые классные спецэффекты с глитчем на весь монитор (или два - сколько их у вас) можно получить, устроив stack overflow на видюхе (например в кернеле).

#glitch
2
This media is not supported in your browser
VIEW IN TELEGRAM
Выкатил артмод для физарума. Теперь можно сидеть залипать, а цвета и правила будут сами меняться.

Плюс теперь можно их независимо настраивать.
👏5🔥32
Кстати, если вам нравится шутка про "пришел с завода и сел играть в игру про завод", то у меня есть обзоров на пол сотни игр про программирование. Их на самом деле больше, конечно, но это - самые известные. Там и просто головоломки, и песочницы, и соревновательные. Кароч, если интересно, вот вам целый плейлист
https://youtube.com/playlist?list=PLr6F6DNKHE8ZH0eTxv0uwoQBefThFl6HA&si=Bl1npeinBLviEpN4
👍6🔥3😱2
Media is too big
VIEW IN TELEGRAM
Итак, у меня есть песочницы под ios, одна из них доступна на мак через каталист. Другие две могли бы быть тоже, но там есть баг с ColorPicker-ом.

Если вы используете SwiftUI-ный ColorPicker под iOS, а потом запускаете это приложение под мак, то при попытке перетаскивания этого колорпикера у вас наглухо зависнет Dock маковский, а сам колорпикер останется на месте. Если же вы используете маковский колорпикер (то есть приложение нативное, а не в режиме совместимости), то все ок.

По этому поводу я завел яблокам баг репорт (FB16568682 (SwiftUI's ColorPicker locks macOS's UI in a catalyst app)). Учитывая, сколько они правят баги, скорее всего этот компонент устареет и его просто выбросят. Шутка конечно (нет) - у меня уже был случай, когда функционал устарел раньше, чем яблоки его поправили.

Но я все еще надеюсь, что они это таки поправят и я смогу выкатить тиамат и физарум под мак, чтобы залипать на большом экране.
🫡6🔥2
This media is not supported in your browser
VIEW IN TELEGRAM
мне слишком нравится это видео, чтобы не запостить его
😁7
This media is not supported in your browser
VIEW IN TELEGRAM
Шикарный момент из лекции про Фурье образы на тему отношений сеньоров/лидов и джунов/мидлов

Я даже не поленился и нашел лекцию, откуда это: https://youtu.be/nukL-PkB1g0
🔥4