Можно и зумер без ротора, но если уж выходить за рамки 256 байт, то с ротором было бы веселее. Вопрос в FPS, если будет совсем мало, то лучше и без ротора.
Можно и зумер без ротора, но если уж выходить за рамки 256 байт, то с ротором было бы веселее. Вопрос в FPS, если будет совсем мало, то лучше и без ротора.
Более того, можно один раз на кадр сгенерировать развёрнутый код для масштабирования строчки, плюс для масштабирования по вертикали копировать уже растянутую по горизонтали строку. А с учётом битпланов, можно следующий кадр строить на невидимом слое и не рвать картинку.
Более того, поскольку битпланов больше двух, можно их складывать через палитру и получить эдакий Motion Blur. Выл бы вектористом -- обязательно попробовал бы![]()
Насколько я знаю, для бесконечного зума нужна бесконечная точность представления чисел. Если даже не замахиваться на бесконечность, а всего лишь на очень большую точность, то в рамках вектора я бы стал, тут и с грубой точностью не мгновенно. Ротозум текстуры я попробую, интересно, сколько FPS получится.
Ну тогда слайдшоу гарантировано. Не копался в спектрумовских демках с фракталами, где они именно что "зумятся бесконечно", но предполагаю, что сделан просто зум текстуры. Смысл рассчитывать каждый раз фрактал, если при определенном значении зума картинка примет исходный вид? Делаем текстуру и зумим ее. Если нет разницы, зачем платить больше? (с)
Именно. На Спектруме, повторюсь, были демки с чуть ли не пофреймовым зумом (без ротации) фракталов. Даже для Z80 жирновато, стопудово текстура.
В демках на спектруме наверняка текстуры, спору нет, для красоты этого достаточно, а на таких компьютерах иначе и невозможно. Но вообще картинка Мандельброта не принимает исходный вид, это только на глаз/приблизительно.
Больше игр нет
Глаза боятся, а руки делают. Увеличение точности в 16 раз привело к размеру 340 байт (можно оптимизировать, это прикидочный вариант) и время построения картинки как в варианте 252 байта увеличилось только на четверть. Все не так уж плохо. Можно увеличить точность еще в 2 раза, это только слегка усложнит начальный расчет таблицы, а все операции в цикле останутся.
Доделал высокоточного Мандельброта (378 байт). Разрешение увеличил до 128x128, что, конечно, сказалось на скорости. И добавил честный (без использования симметрии) зум.
Минимальное время расчета и построения кадра - 6.6 секунды, максимальное - 22.8 секунды. Размер можно немного сократить, но раз круглой цифры не получается, решил оставить вариант побыстрее.
Upd 15.12.2021: Новая версия на гитхабе. 320 байт. Минимальное время расчета и рисования кадра 5.9 секунды, максимальное - 21.6 секунды.
Последний раз редактировалось ivagor; 15.12.2021 в 17:05. Причина: новая версия
Мандельбротоведение для 8080/85 достигло небывалых высот.
1. Быструю версию (32x31) сократил на байт (до 218 байт) и разогнал до 2 Мандельбротов в секунду!
2. "Точная" версия (128x128) минус 31 байт, преодолен рубеж 300 и стало 289 байт. Минимальное время расчета и построения кадра - 5.3 секунды, максимальное - 21.5 секунды.
3. Предмет отдельной гордости - точная версия для ПК-6128Ц. Пришлось согласиться на r0m, зато 256 байт! Минимальное время расчета и построения кадра - 4.7 секунды, максимальное - 18.1 секунды.
Запуск в эмуляторах:
1) Простой способ - в VV выбрать конфиг 6128 и дропнуть r0m в окно эмулятора.
2) Универсальный способ - в Emu или VV перейти в загрузчик (LShift+F11, на реале CC+ВВОД+БЛК) и загрузить wav.
Все на гитхабе.
Для спорта можно побыстрее, если использовать симметрию и считать только половину, а рисовать 2 половины. А если версию 32x31 переделать для zx8080/85 Micka, да еще с симметрией, то думаю там за счет рисования атрибутами и большей частоты проца выдаст 3-4 FPS.
Можно и еще сократить точную версию 8080, портировав ее на другой комп. Пример Моны показывет, что версия для искры получилась почти на 80 байт короче векторовской, в голом векторе много чего надо инициализировать и никаких процедур в пзу.
Последний раз редактировалось ivagor; 18.12.2021 в 14:15. Причина: добавил в релиз wav для 6128
KTSerg(18.12.2021), Oleg N. Cher(19.12.2021), Pyk(18.12.2021), svofski(18.12.2021), tnt23(24.12.2021)
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)