Friday, 19 June, 2026г.
russian english deutsch french spanish portuguese czech greek georgian chinese japanese korean indonesian turkish thai uzbek

пример: покупка автомобиля в Запорожье

 

Рейкастинг на "Векторе-06Ц" (Vector-06C, Ray Сasting)

Рейкастинг на "Векторе-06Ц" (Vector-06C, Ray Сasting)У вашего броузера проблема в совместимости с HTML5
Великолепная демонстрация возможностей «Вектора» при выводе простой 3D-графики методом «рейкастинга» (самый быстрый способ отрисовки подобных трёхмерных лабиринтов, применявшийся во множестве компьютерных игр – например, знаменитом Wolfenstein 3D). Написана в 2016-м году Иваном Городецким. Автору удалось достичь очень хорошей для «Вектора» скорости – в среднем порядка 8 кадров в секунду для «Вектора-06Ц» (версия rc38) и более 9 кадров в секунду для ПК-6128Ц (улучшенного варианта «Вектора» на процессоре ИМ1821ВМ85 – клоне Intel 80C85). Для сравнения: многие наверняка помнят 3D-игры середины 1990-х на приставке Sega Megadrive – так вот, к примеру, в Zero Tolerance (где игровое поле – меньше трети экрана) скорость около 10 кадр/с, в Blood Shot (игровое поле значительно больше) – 8 кадр/с, а в Duke Nukem 3D – всего около 7 кадр/с. Конечно, там стены, полы и т.д. обычно не одноцветные, а текстурированные – но и процессор у «Сеги» не 8-битный 8080 с эффективной частотой 2,3 МГц, а почти 32-битный 68000 на частоте 7,6 МГц. Кстати, в этой демке на «Векторе» размер картинки – 170х128 точек, используется 8-цветный видеорежим (но в демке задействовано лишь 6 цветов). Во второй части ролика – версия для ПК-6128Ц в 16-цветном режиме (с 11-ю цветами – вместо полосатых стен используются более тёмные оттенки цвета), а в третьей – чуть более быстрый вариант для ПК-6128Ц в 8-цветном режиме (также 6 цветов и полосатые стены). Четвёртая часть показывает, как выглядит демка на «Векторе Старт-1200» - немного упрощённой версии «Вектора» без программируемой палитры (с выбором из 64-х фиксированных палитр). Здесь как раз прекрасно виден интересный приём, использованный автором – формирование двух 8-цветных кадровых буферов высотой в пол-экрана с их аппаратным переключением (напомню, у «Вектора» четырёхплоскостная структура видеопамяти, позволявшая легко получить до 4-х монохромных видеобуферов или два 4-цветных, а вот два 8-цветных или 16-цветных можно сделать только с половинной высотой картинки – не более 128 точек). Делается это так: в четвёртой плоскости экрана рисуется простейшая «маска» - скажем, верхняя половина экрана полностью закрашивается единицами, а нижняя – нулями; затем кадры рисуются поочерёдно то в верхней половине экрана, то в нижней; после рисования очередного кадра регистр скроллинга устанавливается так, чтобы только что нарисованная картинка выводилась в середине экрана (поэтому в четвёртой части ролика текущий кадр всегда виден в середине, а формируемый – сверху и снизу от текущего), а палитра программируется так, чтобы была видна только текущая (уже готовая) половина экрана, а формируемая скрывалась «маской» (для этого просто-напросто используется два варианта палитры: в первом отображаются все цвета от 0 до 7, а от 8 до 15 выводятся чёрными (невидимыми) – это позволяет отображать ту половину экрана, где значение маски в четвёртой плоскости равно 0; во втором, наоборот – все цвета от 0 до 7 невидимы (чёрные), а от 8 до 15 – видимые, поэтому на экране видна лишь картинка той половины кадра, где значение маски равно 1). Кстати, версии для ПК-6128Ц в таких хитростях не нуждаются – в них просто используются два полных 32-килобайтных кадровых буфера с аппаратным переключением.
Мой аккаунт