TGViewer
Channel Public Channel
Random Rust Dev

Random Rust Dev

@random_rust_dev

Разработка на языке Rust.
Пишу простыни со своими мыслями о Rust и проектах на нем.
Subscribers
472
Photos
188
Videos
59
Links
44

Showing posts older than #320 · Back to latest

Older Posts 17 shown
Post #319 782
Просто делюсь красотой.
  • 🔥 8
  • ❤ 5
Post #318 1.75K
Я на новой работе с 14 годиками опыта.
  • 💯 15
  • 💅 4
  • ❤ 1
Post #316 1.61K
Я на первой работе.
  • 💯 9
Post #315 597
Вывод - сделать N режимов, дать пользователю выбирать и кнопку "найти самый оптимальный".

Где пользователь, это тот кто напишет jkl = "1.0" у себя в Cargo.toml
А кнопка - функция
  • 🔥 5
Post #312 636
Исправил LZ77 что бы тот не всегда кодировал референс, когда длина его слишком мала и дешевле закодировать литералы.
Размер уменьшился, стало прям сильно лучше, но все еще проигрывает чистому rANS-у фильтрованной картинки.
В том числе rANS-ирование токенов из LZ77.

Только на очень специфических картинка (как с драконом) можно получить лучший результат с LZ77 или LZ78.

А вот возьмем спрайтшит. А там... та же картина, да как так то?
Post #311 523
А вот уже настоящая текстура.
Здесь токены LZ77 имеют среднюю длину "повтора" в 1.77 в лучшем случае. Что приводит к результату даже большему, чем у несжатых данных.

А вот rANS опять сжал картинку лучше чем PNG.
  • 👍 3
  • 🔥 1
Post #310 556
Пора бы уже закончить жать картинки, но я всё никак не могу :)

Настрогал еще вариантов.
1. Реализовал rANS алгоритм
2. Поменял LZ77 и LZ78 на выдачу токенов.
3. Реализовал компрессию этих токенов через rANS.

Ну и в итоге как-то грустно, потому что от шага LZ* толку нету даже там, где, казалось бы, больше всего его должно было быть.
В итоге rANS сам по себе переплюнул LZ77 и LZ77+rANS на отфильтрованной картинке с кучей заливки.
Почему? А потому что энтропии очень мало. И не смотря на то что в токенах LZ средняя длина "повтора" около 95, rANS умудряется быть более эффективным.
Лучший результат буквально меньше, чем PNGшка
  • 👍 1
Post #309 726
Почему на самом деле мы пишем игры на Расте
  • 😁 16
  • 💯 6
  • 🔥 1
Post #308 2.12K
Плохие советы для краболюдов.

Часто бывает так, что в функции, которая принимает self нужно вызвать функцию, которая принимает &mut self.
fn final(self) {
self.mutating_foo(); ❌
}


Есть очевидный способ это сделать - объявить аргумент как мутируемым.
Для вызывающего кода это ни на что не влияет.
fn final(mut self) {
self.mutating_foo(); ✅
}


Или (менее популярно) перебиндить в теле функции
fn final(self) {
let mut me = self;
me.mutating_foo(); ✅
}


Но есть способ для того что бы инкрементить WTF_COUNT у читателя.

fn final(self) {
{ self }.mutating_foo(); 💀
}
  • 😁 18
  • ❤ 5
  • 😱 1
Post #307 718
В вашей игре физика должна позволять делать так
  • 😁 14
  • 🙊 2
  • 😱 1
Post #306 624
Одна проблема, LZ88 не так уж хорошо работает на GPU
Post #305 637
А вот настоящая текстура.
Тут эффект от нового фильтра даже больше, чем от Paeth
  • 👍 4
Post #303 633
Я придумал как еще чуть-чуть variance убавить у картинки.

Идея в том что бы просто взять и вычесть нафиг канал G из R и B.
Особенно хороший эффект, когда там уже остаток от прошлого фильтра.
  • 👍 6
Post #302 616
Я и 3д принтер
  • 🤝 19
  • 😁 4
  • 👍 2
  • 😢 1
Post #301 622
Ну вот.
Теперь я трижды отец.
  • ❤ 24
  • 👏 22
  • 🤯 5
  • 🍾 4
  • 😱 1
  • 😎 1
Post #300 678
Искал адрес больницы на яблокартах.

Поиск: Hospital
Яблокарты:
  • 😁 11
Post #299 589
Столько разных боевых искусств. Я даже названий некоторых не знаю.

Самурай прям анимешный получился.

Но больше всего вариант Шаолинь понравился.
  • 🥴 8
  • ❤ 3
  • 😁 3
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →