┼───-───────────────────────────────────────-──┼ | "Бред алкоголика" или "что дальше?" | ┼─-───────────────────────────────────────────-┼ ┼■ Diver^4D | Речь в этой статье пойдет о графических редакторах. Поэтому она, пожалуй, будет интересна прежде всего художникам и авторам графических редакторов. На написание статьи меня сподвигло быстрое развитие EDP и BGE за последние несколько месяцев. Вообще, основная причина, это то, что на мой скромный взгляд редакторы развиваются слегка не в том направлении, содержат ряд глюков, неудобностей и, вообще, далеко не совершенны. Почему ситуация именно такова, я не знаю. Возможно, потому, что авторы не знакомы с Brilliance (Amiga) или GraFX2 (PC) или потому, что авторы EDP и BGE к сожалению сами не художники и делают редакторы исходя прежде всего из своих потребностей и соображений. Поэтому я и решил написать эту статью, как обращение прежде всего к ZK System и Delirium Tremens - некий рапорт о багах, личное мнение как человека некоторое время рисующего на спектруме и имеющего знакомство с редактором GFX2 на PC. Я очень уважаю авторов BGE и EDP за то, что они создают воистину отличные программы, я никоим образом не хочу на кого-либо наехать или опустить какой-то редактор, я всего лишь хочу попробовать донести до них свои мысли и чужие идеи, которые как мне кажется очень сильно могли бы облегчить жизнь любому спектрумовскому художнику, будь они реализованы в их редакторах. Да простит меня Константин Зуйков, но я все же буду называть Excess de luxe paint - EDP, так как без аббревиатуры в задуманной мной статье будет обойтись весьма затруднительно, эта аббревиатура наиболее привычна, да и предыдущие версии этого редактора именно так и назывались. При написании этой статьи я буду вести речь о EDP prerelease version и BGE v1_07. Я надеюсь, что эта статья сподвигнет авторов если не на реализацию новых идей, то хотя бы на исправление багов и различных промахов в интерфейсе. Хотя некоторые фразы в хелпах к BGE и EDP наводят на мысль, что меня попросту могут послать очень далеко ;-) Для начала отмечу плюсы обоих редакторов друг перед другом и Art Studio. достоинства BGE v1.07: - все функции продублированы горячими клавишами - подключаемые плагины, поддержка памяти cвыше 128Кб, впечатляющий набор готовых плагинов - удобнейшие окна x8 - встроенный screen optimizer - заливка в режиме лупы - сохранение 2ух экранных картинок в стандартном формате достоинства EDP prerelease: - чанковый редактор (имхо, более удобный чем Hardcore 4x4) - маска - recoil/invert fill - roll screen - быстрая сменя цвета с помощью горячих клавиш - более удобная лупа (больше окно, знакоместная рамка - "T") - изменяемые курсоры, иконки и шрифты - подсказки Более подробно о достоинствах: Горячие клавиши. По идее, _все_ операции редактора должны быть продублированы горячими клавишами. Это уже сделано в BGE, а вот EDP лишь частично использует это приемущество. Горячие клавиши позволяют работать с максимальной скоростью, от этого никуда не деться. Но не надо забывать о возможности переопределения клавиш. Конечно, это представляет собой некоторую трудность, что обусловлено уже сложившейся структурой редакторов. Логично было бы сделать отдельную программу настройки клавиш с контролем дублирования, и созранять их в файл конфигурации. В BGE, кажется, проблем с этим не будет, а в EDP, возможно, так как ядро и плагины не являются одним целым... хотя, мне трудно судить. Подключаемые плагины BGE. Вещь безусловно хорошая, но погоды не делающая. Так как все равно при создании цветной графики те плагины, которые созданы сейчас, мало полезны. А то, что полезно, например screen rotator, или размывка краев закрашенных областей текстурой - лучше иметь под рукой, как функцию инегрированную в редактор, а не как внешний плагин. В EDP как раз менее нужные вещи и являются оверлеями (игры, чанковый редактор). Вообще, обоим редакторам не хватает некоторых функций и эффектов, которые не мешало бы интегрировать в ядро взамен, например, экранных фильтров. Мне трудновато судить о проблемах с памятью, но у меня такое ощущение, что еще можно реализовать очень многое. О принципиальных наворотах я напишу чуть ниже, а сейчас продолжим рассмотрение достоинств. Screen Optimizer. Это как раз та вещь, которую следовало бы вынести в оверлей, так как часто она не используется, а память занимает. Изменяемые курсоры и иконки - сильнейшее достоинство, имеющее не только декоративную ценность! Для неопытного глаза пожалуй незаметен тот факт, что в BGE и EDP курсоры стрелок разные. В EDP стрелка заострена, она имеет пиксел на конце. Cтрелка BGE - обычная тупая, без заострения. Я не буду спорить какая удобнее, но факт остается фактом: привыкнув к одной стрелке, сложно рисовать другой - попросту промахиваешься мимо пикселов. EDP предоставляет возможность изменять курсор, а BGE нет. Не стоит так же пренебрегать дружественным интерфейсом. Ведь, благодаря подсказкам и изменяемым иконкам, EDP легок и понятен. Пару слов о багах: известные баги BGE: - не перевариваются символы с кодом #00 в имени диска - невозможность отмены bright grid по undo в лупе - глюк горячих клавиш. При расположении курсора в определенных знакоместах по-разному работают горячие клавиши (кроме break/space): y23 x04 - не корректно детектится нажатие -> -> клавиша срабатывает 2/более раз y23 x05 - иногда не детектится отпускание -> -> клавиша перестает работать y23 x05 - не корректно детектится нажатие -> -> клавиша срабатывает 2/более раз y23 x07 - не детектится нажатие -> -> клавиша не работает y23 x08 - не детектится нажатие -> -> клавиша не работает известные баги EDP: - save new screen портит курсоры - break во время save/load убивает систему - при overwrite количество свободного места на диске уменьшается - magnify x8 убивает систему при попытке поставить пиксел - не работает solid invert fill - некорректная работа с ibm клавиатурами - зависание при выборе палитры - [I] - не происходит переключения с default-шрифтов на подгружаемые Ну а теперь рассмотрим некоторые глобальные идеи и постепенно перейдем к локальным улучшениям интерфейса и самих функций редакторов. Одну глобальную идею я уже упомянул - тотальная горячеклавишизация ;-), с переопределением клавиш. Кроме этого можно заметить, что почти любой редактор на PC/Amiga не делает различий между разными режимами увеличения. То есть, там все режимы равноправны и все инструменты работают при любом увеличении. Очевидно, что на спектруме никто (кроме авторов Artist2) не пытался этого делать. Успех ArtStudio и провал Artist2 еще ни о чем не говорит. Ведь очевидна необходимость заливки и примитивов в режиме лупы. BGE уже предлагает нам заливку, но, похоже, это максимум, что будет реализовано в данном направлении. Далее, еще одна идея насчет лупы. В BGE бросается в глаза тот факт, что magnify x2 и x8 отсутствуют. Аргументируется это тем, что они не нужны художнику из Delirium Tremens. Вообще, вы заметили с чего я начал этот абзац? "Отсутствуют magnify x2 и x8". Не правда ли, забавно то, что никому даже и в голову не приходит тот факт, что кодеры заранее ограничивают художников? Ведь кто сказал, что самый удобный режим x4??? Viator? но ведь он выбирал только из трех стандартных x2, x4 и x8. А быть может более удобными являются x3 или x5??? x4, наиболее используем лишь потому, что x8 слишком крупный, а x2 мелковат для ручной работы. Хотя и это не факт. При рисовании на телевизоре, смежные цвета 2/3, 4/5, 6/7 сливаются в режиме x4, что лично меня вынуждает переключаться на x8, что я и делаю. BGE такой возможности не представляет вообще, предпоследняя демоверсия EDP иногда глючила в режиме x8, а пререлиз EDP поражен настолько фатальным багом, что попытка поставить первый пиксел в x8 приводит к system crash... Кроме этого x2 тоже вполне имеет право на существование, так как при некоторой сноровке можно рисовать и в нем, а он отображает целую четверть экрана! Идеальный редактор должен иметь как минимум 3 режима - x2, x4, x8. Кроме этого, обязательно следует проверить на практике удобность режимов x3, x5, x6, x7 и, по возможности, реализовать все режимы увеличения, со всеми инструментами, доступными в любом режиме. Я согласен, x3 и другие нестандартные режимы сложны а реализации, НО удобство рисования прежде всего. Режим x3 может оказаться удобнее чем x4, так как он не такой мелкий как x2, и вмещает больше чем x4. Я думаю, никто не будет спорить, что режим лупы - наиболее используемый, и основная часть работы проводится именно в нем. Поэтому я хочу обратить внимание и на тот факт, что при работе в лупе необходимо как можно большее окно обзора. EDP в этом отношеннии более продуман - мы имеем 32x20, а в BGE всего лишь 24x24. Для идеальной работы не хватает возможности убирать панель инструментов и/или окно просмотра куска экрана. То же самое следует делать и с панелью иструментов в режиме x1. То как это с делано в EDP - хорошо. Но, уж если делать, так делать! Почему бы не реализовать панель как win95, точнее почти как в win95: - включить/выключить панель по горячей клавише - режим "автоматически убирать с экрана", как в EDP - распологать панель сверху или снизу экрана Реализация панели в BGE тоже конечно вариант, но мо-моему, совсем нелогичный и непривычный. Зачем нужно дополнительное нажатие на fire, чтобы убрать панель, если она может убираться сама? Вообще BGE, к сожалению, несколько раздражает тем, что он постоянно ждет отпускания клавиши, или лишнего нажатия. После EDP это весьма неуютно. Проще вместо ожидания отпускания просто производить действие по нажатию, а затем делать паузу и все. Короче, очень много вещей исправляются введением файла конфигурации, куда сохраняются изменяемые настройки: ждать того же отпускания клавиши или нет, автоматически убирать панель, или пусть она всегда висит и убирается по горячей клавише, располагать панель сверху или снизу... это все элементарно, но увы авторы редакторов этим пренебрегают, прикрывая свою лень фразами типа: "не нравится, не сидите". Теперь о принципиально новых идеях. Эффект grid, то есть сетка. Он представляет собой задание дискретизации перемещения курсора по вертикали и горизонтали в пикселах. Точнее двигается он как и раньше, плавно, но нажатие fire приводит к тому, что курсор кликает нет уда, куда он попадает, а в узел сетки. Этоп озволяет совместить окна x1 и x8. То есть когдас етка кратна 8, то просто активировать опции дляо кон x8. Но и окна, как таковые не существуют вт ом же GFX2, с которого я и пересказываю всеи деи. Произвольная кисточка вместо оконых операций. Вместо окон есть кисти, задаваемые пользователем. То, что мы вырезаем окном, становится кистью, и уже не зависит от того что есть на экране. Далее с такой кистью можно совершать кучу действий: flip x, flip y, rotate 90, rotate 180 - это обычное, что есть в BGE и будет в EDP. Copy, copy+ - это логичные операции для кисти рисование кистью и рисование кистью на другой странице ;), ведь кисть уже не зависит от экрана... Правда для этого нужен буфер в 6912 байт, или 6144... Stretch - изменение размера, аналог resize из Art Studio - где же он в BGE и EDP??? Rotate any angle - это то, что делается плагином в BGE. Тот плагин, в принципе, бесполезен, так как поворот экрана операция слишком долгая и нудная. Нужен лишь поворот произвольного окна, то есть кисти и все... Brush handle - изменение положения курсора на кисти - то есть то, за какой угол мы ее держим, это уже было в Scrapbook/Art Studio. Вообще, Scrapbook был хорошим прототипом, который увы не развился. Brush effects - в BGE уже реализовано аж 4 эффекта - обводка, выемка, утолщение, утоншение, можно придумать и еще. Кроме этого еще нужно добавить save/load для такой кисти. Многие операции можно проделывать и с атрибутами (когда xgrid=ygrid=8 и включен флаг "оперировать атрибутами"), хотя большинство все же для монохромной кисти. И хорошо бы интегрировать кисть со всеми остальными операциями и интсрументами: примитивами, пульверизатором, размывкой краев текстурой (ведь размывать окно глупо и ненужно, размывать надо именно кисточкой - только нужную область). Сразу предвижу скептические замечания, о том, что с большой кистью (например в четверть экрана) интегрировать пульверизатор или линию не то что трудно, а невозможно даже - и пусть! Я согласен, можно сделать кисти ограниченными по размерам, но это в ограничение сильно снижает гибкость редактора. А развитие редакторов - в развитии их гибкости! а не в развитии фильтров, которое идет сейчас ;-(. Далее, еще один глобальный эффект - sieve, то есть сито. Заключается он в том, что все операции рисования на экран проходят, грубо говоря, через сито с произвольной текстурой. Частным случаем этого эффекта является привычное нам textured fill. В GFX2, например, аналогичный эффект достигается сочетанием sieve с текстурой 16x16 и floodfill. Вводя sieve, кроме упрощения заливки мы получаем мощнейший инструмент для рисования любой текстурой. Как при рисовании под лупой, так и при рисовании кистями, примитивами! Да вообще все, что я тут описываю - попытка перенести GFX2 на спектрум, а ведь это возможно, почти полностью! Какие еще улучшения возможны? Например - отказ от системы меню, за счет увеличения количества пиктограмм (их запросто можно сделать в 2 ряда, размерами 12x12 пикселов) и введения второй активной кнопки. За счет этого можно сократить количество действий, необходимых для выбора любой функции. Две активные кнопки: на мышке это понятно, lmb и rmb, а на клавиатуре например space и enter (или любая другая, ведь в идеальном редакторе клавиши переопределяемы!). Основная кнопка (space, lmb) обычно совершает основную операцию, включает инструмент, а дополнительная кнопка совершает дополнительную/противоположную операцию, переключает режимы инструмента, либо вызывает дополнительное окно настроек инструмента. Короче, если можно долго описывать GFX2 и то, как это приспособить к спектруму, это уже будет техническим дизайном редактора нового поколения и, я думаю, пока навряд ли найдет поддержку среди кодеров ;-), не даром я выбрал такое название для статьи. Поэтому вернемся ка на землю и покритикуем то, что мы имеем. Например, дисковые операции. Если в BGE 2 bitplanes имеют стандартный формат (2 экрана друг за другом), то в EDP во всех версиях формат другой - экраны хранятся в спрайтовом формате, не совсем понятно зачем нужен новый формат для 2ух битпланов, когда до этого все прекрасно обходились тем, что поддерживается в XColor, QSV и прочих? Хотя это мелочи, ведь конверсия из одного формата в другой дело простое. BGE в дополниние к стандартным предлагает 2 опции меню: - смена дисковода (имхо не такая уж и нужная опция, хотя при невозможности смены дисковода в "save as" она нужна, но об этом ниже) - merge screen (при наличии двух экранов смысл этой опции теряется, так как наложение второго экрана дублирует ее, предоставляя к тому же более широкие возможности, то есть merge в данном случае всего лишь рудимент artstudio) BGE отличается от EDP наличием опции "сохранить как", при которой не выводится каталог диска, а опция "сохранить в" сохраняет в выбраный файл из каталога. Реализация записи в EDP кажется более логичной, потому что опция save всего одна. В ней можно создать новый файл, сделать overwrite или rewrite на старый. BGE, в отличие от EDP, не показывает количества файлов на диске, но зато идентифицирует файлы только по количеству секторов (27/54), что позволяет работать с любыми расширениями, а EDP не может загрузить даже свои файлы graphics.sys или cursors.sys..., так как отфильтровывает файлы по маске "*.C". И к тому же, неосторожное нажатие на BREAK в EDP, во время любой дисковой операции убивает редактор, а в BGE, нажатие BREAK просто игнорируется. Идеальный редактор должен: - иметь одну опцию save - делать save new/overwrite/rewrite как EDP - уметь работать с любыми расширениями, грузить как файлы без атрибутов, так и файлы длиной менее 24 секторов. Это легко реализовать введя например несколько фильтров: "<24", "24", "27", ">27". В последнем случае загружать только первые 27 секторов. - корректно обрабатывать BREAK: при загрузке - прерывать ее, при записи - тоже, при этом восстанавливая данные в области каталога, если что-то изменено. - легко выходить из save/load (нажатием EDIT или BREAK) - работа с каталогом по одному нажатию (меню дисковых операций в принципе не нужно, все опции записи и загрузки можно перенести на save/load окна, и повесить их на горячие клавиши и иконки) - reload/autosave - парезагрузка текущего экрана, запись текущего экрана по одному нажатию С диском все, что можно сделать еще? Индикатор текущего цвета. То что вызывается в EDP по Symbol Shift - не есть индикатор, так как с таким же успехом можно лазать в меню выбора цветов. А ведь и в BGE и в EDP, в режиме лупы - есть неиспользуемое место. Можно просто отвести под индикатор пару знакомест. Индикатор координат. Он конечно есть в EDP, но зачем он нужен, если рисование и наличие индикатора на экране - процессы несовместимые??? А он нужен именно в процессе рисования. Примитивы. То как это сделано в BGE и EDP - снова частные случаи GFX2. - point (EDP/BGE), жирная точка (BGE) (это просто 2 из набора стандартных кистей, вешается на одну иконку) - line, cont.line, rays (EDP/BGE) (это тоже все одна иконка, выбираемая lmb, переключаемая rmb) - spline (EDP) (lmb: выбор, rmb: переключение режима: 3 или 4 контрольных точки) - triangle (EDP/BGE) (частный случай полигона - произвольной ломаной, у которой конец автоматически соединяется с началом) - circle (EDP/BGE), rectangle (EDP/BGE) (ну это вещи обычные, не хватает только эллипсов, с произвольно повернутыми осями) Яркостная сетка. Никогда ее не использую, но кому-то она нужна. Поэтому почему бы не сделать так, что set bright grid автоматически включал transparent bright, а remove grid восстанавливал ту яркость, которая была раньше? Текст. Векторные шрифты BGE - прекрасно, но елки-палки, не хватает простейщих шрифтов Wx8. Почему это никто не реализует? Ведь даже специальный редактор шрифтов не нужен, если только реализовать режим grid и ввести дополнительный формат отгрузки куска экрана - в файл шрифта. Шрифты 4x8 и 8x8 я, например, давно уже редакирую в EDP, а с появлением BGE стало просто копировать символы (правда только 8x8, но это от того что нет эффекта grid). Снова вернемся к magnify. Чем меня привлекает EDP и почему я не могу рисовать в BGE - это cell shower [T]. Не мешало бы реализовать аналогичный инструмент и в BGE. Кроме этого можно сделать и знакоместную сетку на манер cell shower'а - разделить знакоместа тонкими линиями. По-моему, это гораздо лучше пиксельной сетки или сочетания пиксельной сетки с яркостной... Примитивы в magnify, я так думаю, реализовать в принципе конечно можно и нужно, но маловероятно, что кто-то за это возьмется. Но, как минимум, нужна заливка и рисование линии. Резюме по EDP и BGE: BGE быстро совершенствуется, имеет несколько урезанные возможности, но хорош как picture fucker - своим обилием фильтров и плагинов. Очень удобные окна x8 и обилие горячих клавиш делают его вполне приемлемым, но не для тех, кто привык к EDP. EDP более дружес твенный и продуманныйредактор, но с мень шим количеством горячихклавиш. Хотя и не имеет такого количествафильтров и плагинов к ак BGE, но зато некоторыеинструменты EDP превосх одят аналогичные в BGE, атак же в EDP есть инструменты, не имеющиеаналогов в каких-ли бо других редакторах.Недостаток EDP в нал ичии большего каличествабагов и неполной реализ ации окон и примитивов. На этом я пожалуй закруглюсь. Вообще, можно было бы придумать пару типов цветных заливок, эффекты smooth и smear для текстурирования, anitaliasing и еще всякие приколы. А тот факт, что magnify является основным инструментом, и качественная цветная графика в основном рисуется вручную попиксельно, говорит как раз о неразвитости инструментов и эффектов. Ведь они как раз и предназначены для того, чтобы ускорять процесс рисования. На PC, да и на Amiga я думаю тоже, редакторы 8-битной графики похоже развивались аналогичным образом, и то, чего они достигли - графика рисуется в них не попиксельно, а с помощью совместного использования различных комбинаций эффектов, кистей, пульверизатора (это я не о эффектах накладываемых на фотографии, а именно о картинках с фотокачеством, нарисованных в 8ми битах, вручную) - это тот предел к которому рано или поздно придут спектрумовские редакторы. На PC меня приятно поразил тот факт, что автор GFX2 художник и кодер одновременно, именно поэтому GFX2 так хорош, я думаю при создании Brilliance тоже не обошлось без художников. В общем, я никого не заставляю и не прошу реализовывать то, что описано в данной статье. Лично я как рисовал пока в EDP1_1demo (scorpion fdd/ibm keyboard fixed by Siril, superfast nonelastic primitives added by Siril) так и рисую. Наброски делаю в GFX2, за окнами x8 лазаю в BGE1_03. Если ничего не изменится - я как рисовал так и буду рисовать. Но я хочу сказать одну вещь: именно наличие мощного, легкого в обращении и комфортного редактора может стимулировать графическую сцену. Я начал рисовать только потому, что появился EDP с быстрой стрелкой, комфортным magnify ([T], [Enter], [K]), cell works и roll screen. Больше _ничего_ я не использую. Конечно я во многом сужу только по себе, но ведь я - конкретный пример, и я не требую переделки редакторов именно под меня, я хочу чтобы редакторы стали как можно более удобными для всех. Следует заметить также, что в этой статье не шла речь о двухэкранных картинках, мультиколорных редакторах или еще того круче - двухэкранных мультиколорах. А ведь именно за этими видеорежимами будущее, если оно конечно у спектрума будет. По этому пути развился c=64, так что и нам светит нечто похожее. А редакторы такой графики - уже совершенно другое дело, так как для них можно реализавть множество цветных эффектов и инструментов, в том числе и просто перенести что-нибудь с того же GFX2. А вообще не мешало бы ознакомиться и с редакторами для c=64 и c Brilliance, а уж потом что-то делать.