интересное для программистов
Aug. 30th, 2017 07:12 pmТри интересные статьи, из увиденного недавно.
1. How it feels to learn Javascript in 2017. Дает некое представление о том, как устроены популярные фреймворки последних лет - с виртуальными DOMами, современным синтаксисом ES6, HTML внутри джаваскрипта (JSX). Я довольно далеко от этого мира, и во многом отношусь к нему скептически, но эта небольшая, живо и инересно написанная статья меня покорила.
2. Fizzlefade. Рассказ о том, как в классической игрушке Wolfenstein 3D был сделан эффект "экран постепенно покрывается красными точками, символизирующими кровь, пока целиком не становится красным". Есть исходники на 16-битном ассемблере и эквивалент на C, для тех, кто не хочет вспоминать ассемблер. Очень советую вчитаться как следует и разобраться для себя в том, как устроен LFSR, и особенно - почему "Галуа"-версия LFSR, которая обходится всего одним XOR'ом, эквивалентна обычной. Там весьма элегантный хак.
В качестве бонуса - статья Антиреза Doing the FizzleFade effect with a Feistel network, о совершенно другом способе добиться того же эффекта.
3. Digital Show & Tell - захватывающее видео о некоторых заблуждениях насчет того, как работает аналогово-цифровое конвертирование и наоборот, и почему самплинг типа "24 бита, 192кгц" не дает дополнительных преимуществ в сравнении с обычным CD-уровнем. Это возможно звучит довольно сухо, но я, никоим образом не аудиофил, был заворожен этим видео - исключительно ясные объяснения, на редкость наглядные демонстрации с помощью аналоговых генератора сигнала и осциллоскопа итд. Особенно понравилось объяснение того, почему концептуально неверно рисовать цифровой сигнал в виде "лесенки", и почему все равно это всегда делают. Очень круто.
1. How it feels to learn Javascript in 2017. Дает некое представление о том, как устроены популярные фреймворки последних лет - с виртуальными DOMами, современным синтаксисом ES6, HTML внутри джаваскрипта (JSX). Я довольно далеко от этого мира, и во многом отношусь к нему скептически, но эта небольшая, живо и инересно написанная статья меня покорила.
2. Fizzlefade. Рассказ о том, как в классической игрушке Wolfenstein 3D был сделан эффект "экран постепенно покрывается красными точками, символизирующими кровь, пока целиком не становится красным". Есть исходники на 16-битном ассемблере и эквивалент на C, для тех, кто не хочет вспоминать ассемблер. Очень советую вчитаться как следует и разобраться для себя в том, как устроен LFSR, и особенно - почему "Галуа"-версия LFSR, которая обходится всего одним XOR'ом, эквивалентна обычной. Там весьма элегантный хак.
В качестве бонуса - статья Антиреза Doing the FizzleFade effect with a Feistel network, о совершенно другом способе добиться того же эффекта.
3. Digital Show & Tell - захватывающее видео о некоторых заблуждениях насчет того, как работает аналогово-цифровое конвертирование и наоборот, и почему самплинг типа "24 бита, 192кгц" не дает дополнительных преимуществ в сравнении с обычным CD-уровнем. Это возможно звучит довольно сухо, но я, никоим образом не аудиофил, был заворожен этим видео - исключительно ясные объяснения, на редкость наглядные демонстрации с помощью аналоговых генератора сигнала и осциллоскопа итд. Особенно понравилось объяснение того, почему концептуально неверно рисовать цифровой сигнал в виде "лесенки", и почему все равно это всегда делают. Очень круто.
no subject
Date: 2017-08-30 08:51 pm (UTC)mov es:[bx-1],color
(в полтора килобайта за пределами видимого экрана можно писать без зазрения, потому что они всё равно не используются).
no subject
Date: 2017-08-31 06:04 am (UTC)http://www.osdever.net/FreeVGA/vga/graphreg.htm
no subject
Date: 2017-08-31 07:23 am (UTC)no subject
Date: 2017-09-04 02:59 pm (UTC)В действительности закрашивается не весь экран целиком, а только viewport; рамка вокруг него (чем меньше viewport, тем быстрее работает игра) и статусбар внизу экрана остаются незакрашенными.
Вот для этого клиппинга и нужно разделение
rndvalна координаты, и проверка их по отдельности.Кстати, никакая "сишная функция для отрисовки пикселя" не вызывается -- это тоже упрощение, сделанное автором блогпоста. В фактическом коде самый что ни на есть
asm mov [es:di],alno subject
Date: 2017-09-05 04:18 am (UTC)Зато появился другой вопрос -- судя по коду рисования пикселя, они там используют mode X вместо mode 13h. Нафига создавать себе лишние трудности, если разрешение всё равно 320x200? Или изначально хотели 320x240, но скорости не хватило?
no subject
Date: 2017-09-06 05:46 am (UTC)no subject
Date: 2017-09-06 03:12 pm (UTC)