:: СОДЕРЖАНИЕ НОМЕРА
:: Газетные рубрики
:: АВТОРЫ
:: Поиск
:: Поддержка проекта
Webmoney:
|
:: №7 (31.08.2001) Просмотров: 6021
Автор: Станислав Юдин. Рубрика: Читатель читателю. Номер: №7 (31.08.2001). Стереограммы на спектруме (Часть 2)(Окончание, начало в № 6.)Остался невыясненным вопрос: как же зависит расстояние между однородными точками стереограммы от цвета точки на картинке. Прежде всего, скажу, что расстояние может варьировать от 32 до 64 пикселей. Чем меньше расстояние между точками, тем ближе будет объект ими обозначенный и наоборот, чем больше расстояние, тем дальше будет объект. Замечу, что чем больше расстояние между точками, тем проще увидеть объемное изображение. И уж совсем непросто на экране Спектрума увидеть стереограмму, на которой одновременно встречаются расстояния 32 и 64 пикселя. Для разрешения 192х256 наиболее оптимальны расстояния 32-40 пикселей при восьмиплановой картинки или 32-48 при шестнадцати планах. Таким образом, становится очевидным, что стереограммы, которые встречаются в некоторых demo (например, в MQM-5) не были получены на Спектруме, а лишь конвертированы с других платформ. Дело в том, что на Спектруме на одном знакоместе удастся получить только два (по количеству цветов) плана, в то время как в той же MQM-5 их больше. Конвертер должен четко отличать одну точку от другой, для этого и используются цвета. Зная, что для формирования цвета пикселя на Спектруме используется три бита и еще два, отвечающие за BRIGHT и FLASH, получаем 5 бит на цвет, итого 32 цвета или 32 плана. Однако визуально, рисуя картинку, не получится отличить между собой просто черный цвет, яркий черный цвет, яркий мигающий черный цвет и т.д. Может быть кому-нибудь удастся использовать триколорные и мультиколорные картинки или Gigascreen для получения стереограмм - в этом случае будет снято ограничение на два плана на знакоместо. С программной точки зрения сложностей здесь нет, но, на сколько я знаю, для этих режимов не существует полноценных графических редакторов, поэтому подготовить картинки для конвертирования не представляется возможным. А сейчас мне хочется остановиться на способе просмотра подобных картинок. Сразу же оговорюсь, что тот «мусор», который возникает на экране в процессе конверсии и есть трехмерная картинка, ее нужно только увидеть. Увидеть объемную картинку может ЛЮБОЙ человек, независимо от остроты зрения, единственное непременное условие: наличие обоих глаз. Если Вы четко видите точки на экране, то Вы увидите и стереоизображение. Вспомогательные символы помогут Вам настроится на объемную картинку, но они немного портят стереограмму. Ими стоит пользоваться на первых порах, когда настройка на картинку вызывает затруднение. В дальнейшем, когда Вы научитесь быстро настраиваться на трехмерное изображение, от вспомогательных символов стоит отказаться, но это дело вкуса. Итак, посмотрите на два вспомогательных символа вверху стереограммы, а теперь попытайтесь посмотреть сквозь них, за плоскость поверхности экрана. Изображение потеряет резкость, а вспомогательные символы начнут двоиться и вместо двух четких значков Вы увидите четыре расплывчатых, постарайтесь не акцентировать внимание на значках и продолжать смотреть сквозь них. Значки начнут медленно продолжать раздваиваться (здесь нужно терпеливо ждать пока ваши глаза сделают эту работу за Вас) до тех пор, пока два центральных не сольются воедино. Теперь вместо четырех значков Вы увидите три, причем центральный значок Вы должны увидеть четко и резко, зафиксируйте свое внимание на нем, привыкните к этому фокусу зрения. Медленно переведите свой взгляд вниз, Вы должны видеть четко, до каждого пикселя, трехмерное изображение. Вы можете перемещаться взглядом по всей картинке, как если бы она была обычным рисунком. Возможно, в первый раз потребуется слишком много времени, чтобы научится смотреть стереограммы, но поверьте, оно стоит того. В следующий раз настроится на объемное изображение будет гораздо проще. Если по каким-либо причинам, мое объяснение, как смотреть картинки, оказалось непонятным, я приведу способы просмотра все из того же буклета «Новое измерение», только имейте ввиду, что эти способы описаны для конкретной печатной книги. «Наилучший способ увидеть трехмерное изображение на обложке этой книги! Посмотрите на свое отражение на глянцевой обложке этой книги. Картинка становится расплывчатой (не в фокусе). Именно такого результата и следует добиться. Если двухмерная поверхность картинки не станет расплывчатой, не появится и трехмерное изображение. Сосредоточив внимание на своем отражении, расслабьтесь. Иногда приходится подождать несколько минут, но уверяем вас, вы не зря потратите время. Вы почувствуете, как что-то начинает происходить. Продолжайте смотреть, и вскоре появится изображение. После того как вы увидите трехмерное изображение в первый раз, с каждым разом вам будет все проще и проще добиться этого результата. Далее в книге вы найдете описания других способов увидеть магические изображения в тех случаях, когда поверхность картинки не дает вашего отражения. Способ 2. Смотрите на картинку, но не фиксируйте внимание на конкретной точке. Расслабьтесь и не напрягайте зрение. Через некоторое время вам покажется, будто что-то происходит. Картинка начнет изменяться. По-прежнему не напрягайтесь - ваши глаза все сделают сами. А от вас требуется лишь терпение. Обычно вначале появляется рельефное изображение лишь части рисунка. Продолжайте смотреть, не сосредоточиваясь на какой-то определенной точке, и перед вами возникнет рельефное изображение рисунка целиком. Способ 3. Поднесите картинку к кончику носа. Вы увидите совершенно расплывчатое изображение. Дайте глазам привыкнуть. Затем, не меняя направления взгляда, медленно отодвигайте картинку, пока она не окажется на расстоянии вытянутых рук. Вы должны увидеть изображение. В противном случае проделайте все сначала. Несколько попыток должны увенчаться успехом. Существуют различные приемы рассматривания стереоскопических изображений. Но в любом случае главное - не фиксировать взгляд, оставляя рисунок нечетким. Если вы не увидели изображение с первой попытки, не отчаивайтесь - такое случается часто. Но не будьте слишком настойчивы, ведь вы вынуждаете глаза проделывать непривычные упражнения и рискуете их утомить. Лучше повторить попытку через некоторое время. Способ 4. Это так называемый метод «сквозного видения». При этом способе взгляд фиксируют за виртуальным изображением. Во время этого процесса рисунок начинает утрачивать четкость и происходит автоматическая аккомодация глаза. Как и в предыдущих случаях, не напрягайтесь. Когда вы привыкнете к таким упражнениям, возможно, именно этот способ поможет вам наиболее быстро увидеть скрытое изображение. Все рисунки этой книги задуманы, чтобы видеть их как бы в зеркале. Однако как только вы освоитесь с таким типом стереоскопической визуализации, поупражняйтесь смотреть на них, слегка скосив глаза к носу. Чтобы овладеть такой техникой, вам потребуется некоторое время, но в результате вы получите скрытое изображение в отраженном виде. На приведенном ниже рисунке наглядно показано, как это происходит: Тренированные читатели могут проверить этот способ, если они с легкостью видят все картинки этой книги. Получив одно стереоскопическое изображение, вы можете увидеть и другое. Для этого подождите, пока появится стереоскопическое изображение, и отыщите внутри него широкую плоскую поверхность. Поупражняйтесь с помощью одного из вышеописанных способов, добиваясь того, чтобы эта поверхность стала нерезкой. Будьте терпеливы, такой метод требует большой сосредоточенности, и вам может показаться, что вы начинаете с нуля. Но постепенно перед вами появится измененная версия первого изображения. Теперь вы видите только этот второй вариант. На практике некоторым удается получить до трех вариантов. Однако это значительно труднее, почти невозможно с изображениями, на которых не удается обнаружить широкой плоской поверхности. И не старайтесь сразу добиться полного успеха, поскольку это занятие создает большую нагрузку на глазные мышцы.» В конце статьи я привожу свою программу, которая позволяет конвертировать картинку в 8 планов. Программа не идеальна, ее можно еще долго оптимизировать, но, не смотря на это, она вполне работоспособна и может послужить основой для полноценного конвертера или plug-in’а к графическому редактору. ; ПРОГРАММА ДЛЯ ПРЕОБРАЗОВАНИЯ ВОСЬМИЦВЕТНОЙ КАРТИНКИ, ; ЗАГРУЖЕННОЙ ПО АДРЕСУ #C000, В СТЕРЕОГРАММУ ; (С) Станислав Юдин ; г. Владивосток, 2001 ORG #8000 ;Устанавливаем черный бордюр и очищаем экран DI XOR A OUT (#FE),A LD HL,#4000 LD DE,#4001 LD BC,#17FF LD (HL),L LDIR LD HL,#5800 LD DE,#5801 LD BC,#02FF LD (HL),#47 LDIR ;Заносим исходные адреса конвертируемой картинки и стереограммы LD HL,#C000 LD (ADR_SCR),HL LD HL,#4000 LD (ADR_3D),HL ;Задаем количество строк на экране LD B,#C0 NEXT_LN PUSH BC ;Заполняем строку случайными точками LD B,#FF XOR A LINERND PUSH BC PUSH HL PUSH AF RND0 LD HL,#0000 LD A,H OR L JR NZ,RND1 INC L RND1 SLA L RL H BIT 7,H JR Z,RND2 CCF RND2 BIT 5,H JR Z,RND3 CCF RND3 BIT 4,L JR Z,RND4 CCF RND4 JR NC,RND5 SET 0,L RND5 LD (RND0+1),HL POP AF RR L POP HL CALL POINT INC A POP BC DJNZ LINERND ;Задаем количество пикселей в строке, которое будем обрабатывать LD B,#DF XOR A NEXT_PT PUSH BC PUSH AF ;Начинаем проверку цвета точки на картинке LD HL,(ADR_SCR) PUSH AF LD A,H AND #18 LD H,A RLC L RLC L RLC L LD A,L AND #07 OR H LD E,A LD D,#00 POP AF PUSH AF CHECK1 SUB #08 JR C,CHECK2 INC D JR CHECK1 CHECK2 LD A,E AND #18 SRL A SRL A SRL A OR #D8 LD H,A LD A,E AND #07 OR A RRA RRA RRA RRA ADD A,D LD L,A POP AF PUSH HL LD HL,(ADR_SCR) CALL XPIXEL POP HL PUSH AF LD A,(HL) JR C,CHECK3 RRA RRA RRA CHECK3 AND #07 ;Зная цвет точки, вычисляем расстояние до дополнительной точки стереограммы LD HL,TABLE LD D,#00 LD E,A ADD HL,DE LD B,(HL) ;В нужном месте зажигаем или гасим ;пиксель POP AF LD HL,(ADR_3D) PUSH BC CALL XPIXEL POP BC RR D ADD A,B JR C,NO_PT RL D CALL POINT NO_PT POP AF INC A POP BC ;Переходим к обработке следующего пикселя DEC B JP NZ,NEXT_PT ;Переходим к следующей линии картинки и стереограммы LD HL,(ADR_SCR) LD DE,#0020 ADD HL,DE LD (ADR_SCR),HL LD HL,(ADR_3D) ADD HL,DE LD (ADR_3D),HL POP BC DEC B JP NZ,NEXT_LN ;Ставим вспомогательные символы и возвращаемся XOR A LD (#582C),A LD (#5834),A RET ;----------------------------- ;Подпрограмма проверки пикселя ;Входные параметры: ;HL - адрес строки ;A - номер точки в строке ;Выходные параметры: ;CY=1 пиксель зажжен ;CY=0 пиксель потушен XPIXEL PUSH HL PUSH AF XPIXEL2 SUB #08 JR C,XPIXEL1 INC L JR XPIXEL2 XPIXEL1 ADD A,#08 LD B,A INC B LD A,(HL) XPIXEL3 RLA DJNZ XPIXEL3 RR H POP AF RL H POP HL RET ;-------------------------------- ;Подпрограмма установки и удаления пикселя ;Входные параметры: ;HL - адрес строки экрана ;A - номер точки в строке ;CY=1 - поставить пиксель ;CY=0 - удалить пиксель POINT PUSH HL PUSH AF POINT1 SUB #08 JR C,POINT2 INC L JR POINT1 POINT2 ADD A,#08 LD B,A INC B XOR A SCF POINT3 RRA DJNZ POINT3 LD B,A POP AF PUSH AF LD A,B JR NC,POINT4 OR (HL) JR POINT5 POINT4 CPL AND (HL) POINT5 LD (HL),A POP AF POP HL RET ;Переменные, хранящие текущие адреса обрабатываемых строк картинки и стереограммы ADR_SCR DEFW #0000 ADR_3D DEFW #0000 ;Таблица соответствия цвета (порядковый номер) глубине плана (число) TABLE DEFB 64,63,62,61,60,59, 58,57 (С) Станислав ЮДИН Ссылки по теме:Стереограммы на спектруме (Часть 1) [№6] |