Sliverboy & Turtlex
Turtlex Turtlex
Ну, я тут подумал, можно было бы сделать небольшую Rust-библиотеку, чтобы генерировать процедурные обои в реальном времени, чтобы процессор особо не грелся. Представь себе: эстетика битв с боссами, встретившаяся с моей страстью к эффективности. Как тебе такая идея?
Sliverboy Sliverboy
Звучит как крутейший проект. Библиотека на Rust, которая в реальном времени генерирует идеально четкие обои, при этом не нагружая процессор – это именно то, за что я и берусь. Просто следи за оптимальностью цикла рендеринга, избегай лишних выделений памяти и поддерживай шейдеры в порядке. Если получится – у нас будет стильная, производительная штука, которая отлично будет смотреться на любом экране. Уже не терпится попробовать.
Turtlex Turtlex
Я уже разрабатываю основной цикл с использованием двойной буферизации, чтобы избежать рывков, и планирую небольшой пул потоков, которые будут обращаться к контексту GPU только один раз за кадр. Если мне удастся удержать расход памяти в пределах одного процента от бюджета кадра, то вся система уложится в пару сотен ватт на ноутбуке. Сначала добавлю несколько тестовых шейдеров – простой шум Перлина, синусоидальная рябь, может, маленький кусочек Мандельброта – чтобы доказать концепцию. Как только путь рендеринга станет плавным, я предоставлю API, чтобы обои можно было менять на лету. Как быстро тебе нужен первый прототип?
Sliverboy Sliverboy
Я уже прокладываю основной цикл с использованием двойной буферизации, чтобы избежать рывков, и планирую небольшой пул потоков, которые будут обращаться к контексту GPU только один раз за кадр. Если удастся удержать накладные расходы на выделение памяти в пределах одного процента от бюджета кадра, вся система будет потреблять меньше двухсот ватт на ноутбуке. Сначала добавлю несколько тестовых шейдеров — простой шум Перлина, синусоидальная рябь, может, небольшой кусочек Мандельброта — чтобы доказать работоспособность. Как только рендеринг станет плавным, я открою API, чтобы обои можно было менять на ходу. Как быстро тебе нужен первый прототип?
Turtlex Turtlex
Понял, набросаю базовую систему сборки в ближайшие пару часов – Cargo для Rust, небольшой обёртка для OpenGL и главный цикл, который просто будет моргать цветом. Если хотим показать демо до конца недели, сможем подключить один проход шейдера и двойную буферизацию за пару дней. Потом добавим проходы Perlin, синусоидальную рябь и Мандельброта, постараемся удержать аллокации меньше одного процента и выставим простой API для смены обоев на лету. Как тебе такой план?
Sliverboy Sliverboy
Звучит круто. Два дня до быстрой проверки, потом полный набор шейдеров и API, которое меняет обои быстрее, чем ты успеешь сказать "баллы за стиль". Давайте уложимся в срок и сделаем из обоев просто бомбический актив. Готов первый коммит залить?
Turtlex Turtlex
Ну что, давай запустим репозиторий, сделаем первый коммит и запустим тесты мигания. Я через пару часов скину каркас на GitHub, и ты сможешь начать возиться с шейдерами. Когда всё подключим, API будет таким понятным, что обои будут казаться крутым ходом на любом компьютере. Вперёд!
Sliverboy Sliverboy
Ладно, запускай репозиторий и выкладывай основу. Как только будет на GitHub, я запущу шейдеры и проверю, чтобы тест моргания выглядел круто. API будет таким чистым, что будет казаться отпадным решением на любом десктопе. Давай сделаем это. Вперёд!
Turtlex Turtlex
Закинул новый репозиторий на GitHub, туда минимальный Cargo-проект с очень простой обвязкой OpenGL, базовым циклом отрисовки, который просто меняет цвет на экране, и двойной буферизацией. Зацени: https://github.com/yourusername/real‑time‑wallpaper-lib. Напиши, если что-то не так с первым коммитом.