Search
Write a publication
Pull to refresh
81
10.2
Send message

UzePhone — как UzeBox, но только телефон

Level of difficultyMedium
Reading time13 min
Views1.9K

Я очень надеюсь, что не довёл ещё @bodyawmдо белого каления постоянными упоминаниями — но мимо этого я пройти, конечно, не мог. Как вы все помните, я сам что‑то пытался изобразить на тему «кастомизируемого телефона‑звонилки». Я давно обещал выложить свои наработки, но даже просто вспомнить, на чём я там сломался N лет назад — уже труд немалый, и если бы не активность единомышленника в этом направлении, которая меня стронула, сподвигла и стриггерила — стронуться, наверное, так бы и не смог. Особенно учитывая тот прискорбный факт, что я открываю свои собственные записки на эту тему и не понимаю там ни слова — положите на могилку Элджернона, что на заднем дворе, хотя бы пару цветочков...

ПЩЩЩЩЩЩ! (контакт белого каления и клавиш)

Как мы написали самый¹ быстрый 2.5D шутерный движок за историю человечества и как он работает

Level of difficultyMedium
Reading time37 min
Views13K

¹Но это не точно. Мы не сравнивали, конечно. Но крайне вероятно, что действительно самый быстрый. И вообще, он ещё не в машкодах.

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

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

Но я знал, что рано или поздно мы докатимся и до этой дряни.

Я не боюсь тебя, 1/√

Модифицируем алгоритм Брезенхэма для рейкаста в стиле Wolf3D

Level of difficultyEasy
Reading time10 min
Views2.6K

Недавняя статья о рендеринге полигонов для «Денди» завершилась (уже в камментах) небольшой интрижкой: «хочу реализовать 2.5D, но не уверен, что получится плавная камера». Естественно, мимо такого я пройти не мог :) и сейчас прикладываю максимум усилий к тому, чтобы плавная камера на этом несуразном железе таки получилась. По мне, шутер (даже 2.5 D) без мышки, хотя бы пополамной или RS232, и плавной камеры с высокими FPS — не шутер, а вот остальное можно смело принести в жертву драйву (и принесём!)

Наивный алгоритм, он же DDA, знают все. Но ветвления на каждом шаге, с делениями, умножениями и сравнениями — это явно не про «Денди» сказано. К счастью, у нас есть намного более быстрый алгоритм — алгоритм рисования линий Брезенхэма. Нужно только его немножко доработать напильником, чтобы он годился для того, для чего мы его собираемся использовать!

Оригинального «Брезентыча» я особо подробно расписывать не буду. Если ещё его не знаете — просто прочитайте, а я сразу перейду к тому, чем он нам неугоден в его каноничном виде.

Да уж небось я знаю, как «Брез» работает!

Модульные ноутбуки: рак сам не рассосётся, нельзя победить, если увёртываться от всех сражений

Level of difficultyEasy
Reading time22 min
Views3.4K

Подводя итоги года.

Что изменилось?

Всё стало хуже. Раковая опухоль маркетологического подхода ещё немного подросла. Все говорят, что хотят такую штуку, но никто не сделал ничего, чтобы к ней относились всерьёз. Отсутствует какой‑либо резонанс, нет никаких обсуждений вне Хабра, не говоря уже об обсуждениях в англоязычной среде. Нет массовой поддержки, а значит — отсутствует прогресс. Хотя, судя по реакции, эта модель могла бы с ходу сожрать от процента до трёх на рынке — космические цифры, если что (перспективы дальнейшего развития я не берусь оценивать, они очень зависят буквально от всего, оцениваю пока базовую модель).

Но, если даже готовому продукту нужен хайп, чтобы продаваться — у предложения по стандарту всё ещё хуже. Чтобы «голая идея» в виде стандарта дошла до рынка — ей нужен не просто хайп, а хайпище, когда весь мир 24/7 говорит о новой парадигме и перед сном кладут на подушку газетку, чтобы не мочить её слюной.

Окунуться в дальнейший WTF на свой риск

Тормоз с «эффектом вбитого клина»

Level of difficultyEasy
Reading time4 min
Views2.5K

Итак, спонсор сегодняшнего выпуска — чёртова ангина. Поскольку ничего умного голова делать не может, а руки делать что‑то точное отказываются — на арене нашего цирка очередная велосипедная чушь. А поскольку я сейчас тормоз — речь тоже сейчас буду вести о себе подобных.
Хорошо, когда у тормозных колодок большой ход! Даже после не самых удачных приземлений ничего не начинает затирать и не требует срочно ловить миллиметры в условиях нанотехнологической мастерской, которые так часто встречаются в лесах. Но большой ход означает большое плечо рычага. А большое плечо рычага означает, что для их сжатия потребуется сверхчеловеческое усилие на ручке. Нет, хорошо, когда у тормозных колодок маленький ход! Вот, например, дисковые тормоза... гидравлика... погнутые ди... ой, стоп, это уже лишнее. Что ж делать‑то?
Попробуем сделать большой ход, чтобы нам было всё равно, что уж там у нас потеряло заводскую форму после «уборки» в какой‑нибудь пень — ну, а усилие прижима колодок возьмём, собственно, от момента вращения колеса, а не чисто от ручки тормоза.

А давайте тормозить вместе!

Как я скрестил JPEG, GIF и получил VP9

Level of difficultyMedium
Reading time11 min
Views2.3K

« Надо будет мне собраться с яйцами, добить исследование и выдать на-гора статью о сжатии жпегом в 3D (то есть не квадрат 8х8, а куб 8х8х8). Там получился (не у меня первого, но у меня тоже получился, кек) неплохой видеокодек, в котором корреляция «между кадрами» не требует отдельно никакие области движений, смещений (и так далее) высчитывать — они там получаются нативно, «просто потому, что». И жмёт он — держите меня семеро.

Я это рассматривал как расширение (внезапно) стандарта GIF — новый тип кадра для анимации, в котором вместо одного кадра лежат сразу 8. Все остальные опции, типа заголовка с длительностью — оставляем стандартные анигифовские. Ну, и пара новых служебных форматов чанка потребуется — таблицы Хаффмана и квантования сами себя не загрузят.

А главную проблему, связанную с тем, что количество умножений там не квадратичное, а кубичное, я разрешил очень просто, без всяких группировок «бабочкой» и как там вообще обычно это до меня пытались делать: поскольку 95% величин квантуются в ноль (а иначе зачем бы было вообще такое сжатие, как не ради его эффективности?), я просто в 95% случаев перехожу в continue; :-)

И всё у меня в реалтайме на одном ядре сразу стало летать… ларчик просто откр оптимизировался :-D »

Disclaimer: статья эта написана по просьбе почтеннейшей публики. Сам я не хотел выкладывать результаты, которые недостаточно «отполированы» для передачи их широкому кругу…

Дай подержать! Я не уроню, честно!

Как мы изобрели самый бессмысленный и беспощадный дифференциал

Level of difficultyEasy
Reading time4 min
Views3.9K

Здравствуйте, меня зовут Николай и я алко... хуже, я соучастник и организатор изобретения дифференциала для дорожного катка (да, слово «соучастник» здесь подходит лучше всего, потому что таких преступлений против логики и здравого смысла надо ещё поискать...)

Мой разум твёрд и я могу это читать

Как я не добился 60 fps на дистанции 256 чанков на Lenovo X201i

Level of difficultyEasy
Reading time12 min
Views7.1K

Летом накануне пандемии ударила как-то раз мне в голову блажь.

Почему бы не взять движок типа Wolf3D/ROTT и не доработать его до уровня, способного тянуть Minecraft, максимально сохранив при этом производительность? А в жертву при этом можно принести все "красивости", сведя задачу к максимально узкому случаю. Пусть герой, в стиле ретро, смотрит всегда строго перпендикулярно одной из координатных осей (как правило, это вертикальная ось, то есть взгляд направлен строго горизонтально), угол зрения по вертикали пусть составляет 45 градусов (это важно, но об этом ниже), а всё остальное решаем лютыми костылями.

Кармака на тебя нет!

Мышиный заговор потребителей модульных ноутбуков объявляю открытым

Level of difficultyEasy
Reading time11 min
Views13K

Модульные ноутбуки — давно не новость, и каждый раз мы видим одну и ту же удручающую картину. Очередной стартап предлагает «модульность» на уровне «можно красненький», «можно синенький», «а можно ещё зелёненький», а ещё когда‑нибудь, может быть, можно будет купить модуль какого‑нибудь периферийного порта, из числа тех, которые и так доступны через USB‑переходник — но в виде гламурных плиточек, вылизанных дизайнерами и маркетологами (ни одного инженера не пострадало), естественно, не совместимых вообще ни с чем: иначе же будет недостаточно модульно, стильно, модно и молодёжно!

Примкнуть к заговору!

Как мы не изобрели роторный двигатель на новых принципах

Level of difficultyEasy
Reading time5 min
Views22K

Можно ли считать колесо новым принципом? С одной стороны, появилось оно несколько раньше, чем ДВС. С другой стороны, применение трения качения там, где до этого исторически применялось исключительно трение скольжения — явный шаг вперёд. На фоне технологии «тащим моржа за клыки волоком» изобретение колеса — настоящий прорыв!

Подвинься, дай-ка я его изобрету!

Как мы трёхколёсный велосипед изобретали

Level of difficultyEasy
Reading time5 min
Views5.5K

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

Началось всё в дветыщимохнатом году, когда мы с другом, насмотревшись видео про адски дикие и упоротые велоконструкции, перевозбудили случайно свою конструкторскую фантазию. Мысль выкристаллизовалась быстро и была на первый взгляд блестящей — за всё хорошее и против всего плохого, то есть дать конструкции те степени свободы, которые ей нужны, отобрать те, которые ей вредны и распределить вес между тремя колёсами равномерно. То есть так:

Поехали по кочкам!

72 клавиши из 8 положений стиков

Level of difficultyEasy
Reading time24 min
Views4.2K
Известна аккордная клавиатура, состоящая как минимум из четырёх мини-джойстиков (далее «стики»).

В данной статье будет показано, как уменьшить количество стиков до двух, с поддержкой двух режимов: оптимального для сложившейся мобильной экосистемы ПО (с малой нагрузкой на клавиши и активным использованием сенсорного экрана) и оптимального для сложившейся экосистемы ПО на платформе ПК, избежав при этом сложных жестов и использования промежуточных (диагональных) направлений.
Читать дальше →

Теоретические соображения о сжатии изображений при помощи нейросетей

Reading time6 min
Views3.7K

Взяться за статью меня побудил недавний (в исторических масштабах) эксперимент по сжатию изображений при помощи Stable Diffusion. Бегло прочесав азбучные истины вроде Википедии, я обнаружил, что проблема «красивой, но полностью выдуманной картинки» уже известна, но самое очевидное решение из приходящих в голову — по какой-то причине не фигурирует в них.

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

К счастью, статья предназначена для «песочницы», поэтому я могу спокойно высказать собственные соображения — прежде, чем она отнимет чьё-то внимание, она должна получить одобрение более осведомлённых специалистов.

Проблема нейросетей, обучаемых передавать изображение через «бутылочное горлышко», свойственна и естественным нейросетям.

Вместе предаться лукавым мудрствованиям

Information

Rating
1,111-th
Registered
Activity