ZX Format
#06
29 июля 1997 |
|
Программистам - обмен опытом: "3-colour". Описание эффекта "8-цветов на точку", хелп к вьюверу и сколько слов о конвертации картинок в формат "3-colour".
Расширение цветовых возможностей ZX. music by DNK (C) CREATOR G(C) GODFATHER _______________________________ Итак, всем привет ! Вы наверно думаете, что я сейчас начну вам "капать на мозги" всякими там расска- зами про : EGA графику, видео карты к спеку и.т.д. Но это не так. Все что здесь написано будет работать на любом спеке даже на самом "тормозном" и к тому же - не надо ничего паять и подключать... " - этого не может быть ! " " - может, может... " (С) мой... Триколор, вот о чем я хотел бы вам по- ведать. Ну для начала конечно же, немного технической информации : в системе триколора на картинйке, во весь экран, достигается 8 цветов на одну точ- ку, без зависимости от других. Хотя экран маленько мерцает, но кому надо тот на это не будет обращать внима- ния... Ну сейчас стандартно, теория... Кому не нравиться может пролистать текст дальше. В основе триколора лежит, известный всем школьникам, принцип формирования изображения на "электронно-лучевой труб- ке" ну или проше на обычном, цветном те- левизоре. Там, в телевизоре, изображение формиру- ется тремя основными цветами : красным, синим, зеленым. А все остальные оттенки образуются смешением этих основ- ных цветов в одной точке. Вот например, как получаются цвета на экране телевизо- ра: R - красный луч G - зеленый луч B - синий луч 1 2 3 экран > ──*─────*─────*── ^ ^ ^ B R G ^ ^ R B ^ G 1 - точка будет белой. 2 - точка будет красной. 3 - точка будет желтой, так как на нее приходит два луча, зеленый и си- ний. Ну а 1 точка белая потому что на нее приходят все три луча. Можете сами поэкс- периментировать дома с красным, синим и еленым цветом. Так же и в триколоре. Используется три экрана с изображением точек того или ино- го цвета. И они поочередно кидаются в ос- новной экран, и в этом процессе добавля- ются атрибуты. Свои для каждого экрана, красные, синие или зеленые. Вот пример для триколора : 123 мнимый экран > ══░════░════░══ зеленый экран > ──*─────────*── синий экран > ──*─────────*── красный экран > ──*────*─────── 1 - точка будет белой. 2 - точка будет красной. 3 - точка будет желтой, так как она поставлена и в синем и в зеленом эк- ране. Первая точка белая по той же причи- не, что и в примере с телевизионным экра- ном, в случае с триколором она проставле- на во всех трех экранах. Что за мнимый экран ? Это то, что видят в итоге наши глаза. Так как инерция человеческого зрения достаточно велика, то при смене экранов, с частотой около критической (в нормаль- ных условиях примерно 50Hz, но уровень порога зависит от яркости - чем темнее, тем ниже, да и глазу просто свойственно обманываться) картинка может восприни- маться слитной. Правда мерцание все равно заметно. Итак, задача для кодинга ясна : надо ус- петь сменить экран за одно прерывание, что собсвенно и сделано во вьювере, кото- рый находится в приложении. Собственно, о самой процедуре "кидания" картинок: ее придумал наш кодер MIK from Virt Group, ну а я реализнул. А еще до него, первыми, надо отдать им должное, сделали работающий на Pentagon'e триколор Volga soft. Проблемма в том, что нельзя кинуть экран за одно прерывание (40000-50000 тактов) И вот сама суть: во вьювере, естествен- но, "кидалка" не успевает уложиться в int, но это и не требуется. Нам требуется только чтобы экран успевал рисоваться видеопроцессором. В этой самой процедуре пересылки стоит один HALT, а все остальное выполняется "подряд" (переброс картинок + музыка + опрос клавиатуры). Но здесь есть малень- кая хитрость: один экран, вместе с атри- бутами, храниться в 7 банке, на месте второго экрана. И его "перекидывание" происходит за несколько тактов, всего лишь переключением экранов, на чем и эко- номится время. Поэтому остальные экраны успевают к нужному моменту. Что это может дать пользователям ? А вот что: в играх, используя триколор, можно значительно повысить "красочность" оформления, как в MORTAL KOMBAT by ANCCAH '& VIRT GROUP. Там, в игре, используется триколор для показа героев во всей их "красе", и смотрится это очень даже впе- четляюще. Так что, господа кодеры и хакеры, пора "раскрасить" ваши игры до более высокого уровня... Программу для просмотра и картинки вы сможете найти в приложении журнала, а вот как этой программой управлять я сейчас расскажу... Загрузка картинки - наводите курсор на нужный фаил и жмете enter,0,5,space. Файл загрузится и программа перейдет в режим просмотра картинки. Все картинки закомпрессованы и имеют расширение "Y". Компрессовать картинки можно чем угодно, главное соблюдать неко- торые условия. стартовый адрес компрессированного блока : 47104 адрес декомпрессора : 16384 адрес декомпрессированной картинки : 47104 прерывания выключены. В этом режиме доступно : Подстройка (применяется очень редко и то - для турбо режима) - клавиши 1 и 2. Смена яркости экрана - enter (мало ли пригодиться) 3 - смена цвета бордюра space - выход в файловое меню В файловом меню доступно: Загрузка музыки. Осушествляется так же, как и картинки, программа распознает му- зыку по расширению "М", т.е. следователь- но загрузить можно только музыку из Pro-Tracker'a v2.1. Включить/выключить музыку - клавиша "М" если музыка вообще загружена. Вход в режим просмотра картинки - клави- ша "V" естественно, если картинка есть в памяти. Смена диска - клавиша "R" Сменя драйва - клавиши "A","B","C","D" оответственно. Выход в TR-DOS - клавиша "E" Ну вот собственно и все по вьюверу. ККККККККККККККККККККККККККККККККонвертация картинок с IBM PC. Это отдельный разговор, я сам не конвер- тил, поэтому об этом раскажет другой че- ловек, а именно Денис, который собственно и конвертит эти картинки. Hi! Я-Денис (он-же GODFATHER). Вот, рас- cкажу вам о методе конверсии в режим 3colour с IBM или какой еще другой машины то, что знаю. Начну с самой первой проце- дуры. Прежде всего вам надо найти любой редактор, позволяющий конвертировать из XXX цветов в 8. Каким методом - флэштам- бергом (козявками) или паттернами (залив- ками) принципиального значения не имеет (это уже от картинки зависит). После столь неприятной процедуры, превратившей ваш скрин в сушеный банан, можно присту- пать к самой рутинной работе - разделению восьми цветов на 3 основных : R-red, G-green и B-blue. Делается это довольно просто : находиться в редакторе функция "процентное соотношение цветов", убирает- ся 2 цвета (например, чтобы выделить R, надо понизить % G и B до 0% ). Так как конверчу я на IBM, то позволю себе в ка- честве примеров и пособий приводить ре- дакторы и вьюверы на PC, а на какими средствами это делается на AMIG'e - выяс- ните сами, если необходимо. Так вот, пос- ле уничтожения каких-нибудь 2-х цветов надо записать получившуюся 2-х цветную картинку на XXX, и повторить процедуру еще 2 раза, с оставшимеся цветами. Итак, у вас получилось 3 картинки, на которых находится по 2 цвета -X+BLACK. Теперь нужно X превратить в белый. Я это делаю в PHOTO FINISH'e, но этим способом можно пользоваться и в других редакторах. Для начала, надо выяснить, под каким но- мером этот цвет находится в палитре этого формата, и сделать его белым. Теперь ос- тается только переписать их на спектрум и поменять в ART STUDIO ( или где еще ) бе- лый на R, G или B. Ну вот, наконец получившиеся файлы оста- ется только слить, и заценить в нашем вьювере. _______________________________
Другие статьи номера:
Похожие статьи:
В этот день... 21 ноября