Область техники, к которой относится изобретение
Изобретение относится к устройству, способу и распространяемому носителю информации, в частности к устройству, способу и распространяемому носителю информации для создания высококачественного изображения, например в компьютерах для создания трехмерных графических изображений, создаваемых на компьютере, или в устройствах, воспроизводящих специальные видеоэффекты (эффекторы), аппаратуре для видеоигр и т.п.
Предпосылки создания изобретения
Высокая степень интеграции и высокие скорости обработки информации, достигнутые в последнее время в процессорах и запоминающих устройствах, позволяют решать задачи, казавшиеся ранее неразрешимыми, и, в частности, получать изображения в реальном времени с эффектом присутствия в аппаратуре для видеоигр. Создаваемое трехмерное (объемное) изображение во многих случаях разбивается на множество многоугольников (единичных графических форм или полигонов), которые в совокупности создают единое трехмерное изображение. Иначе говоря, трехмерное изображение (образ) определяется соответствующей комбинацией полигонов.
Например, создание трехмерного образа осуществляется выполнением координатных преобразований параметров (данных) полигона, выполнением геометрической обработки, такой как отсечка и подсветка, с последующими перспективным и проективным преобразованиями полученных таким образом данных и получением исходных данных в трехмерном пространстве и превращением их в конкретные элементы изображения (в дальнейшем - пикселей) в двухмерной плоскости, на которой воспроизводится создаваемое изображение. При таком способе положение полигона, задаваемое числом с фиксированной или плавающей точкой, преобразуется в целые числа, соответствующие фиксированным положениям пикселей на экране. В результате возникает наложение спектров и создаваемое изображение имеет "рваные", похожие на лестницу, края и низкое по сравнению с изображением, получаемым с помощью видеокамеры, качество.
Помимо этого, при таком способе возникает и еще одна проблема, заключающаяся в том, что в результате наложения спектров изображение начинает дрожать, что естественно мешает его правильному восприятию.
Наложение спектров не только снижает качество изображения; при представлении сигнала конечным слишком малым числом точек возникает ошибка квантования.
Один из способов уменьшения влияния наложения спектров на качество изображения заключается в виртуальном делении каждого пикселя на отдельные более мелкие части, называемые субпикселями, с последующим отслеживанием прохождения лучей в этих субпикселях и выполнением некоторых вычислений с ними и усреднением результатов вычислений для ближайшего пикселя; однако вычисления для отслеживания прохождения лучей в субпикселях занимают значительное время, и несмотря на увеличение быстродействия процессоров, запоминающих и других устройств, в настоящее время не представляется возможным выполнять такие вычисления в реальном времени для движущихся изображений. Так, движущееся изображение обычно состоит из около 20-30 меняющихся каждую секунду кадров и в настоящее время невозможно создать имеющую разумную стоимость аппаратуру, позволяющую выполнять вычисления, необходимые для отслеживания прохождения лучей в меняющихся с такой скоростью кадрах.
Другой способ уменьшения влияния наложения спектров (снижение качества изображения из-за наложения спектров) заключается в создании изображения с высоким разрешением и фильтрацией его с целью сокращения числа пикселей; однако повышение качества движущихся изображений таким способом требует использования быстродействующего имеющего большую емкость кадрового буфера или Z-буфера для хранения изображений с высоким разрешением, что делает применяемую для этого аппаратуру очень громоздкой и дорогой.
Еще одним способом уменьшения влияния наложения спектров на качество изображений является способ, известный как альфа-сопряжение, в котором при изображении определенной графической формы определяется пропорция в этой форме занимающего ее пикселя, после чего эта графическая форма и фон изображения альфа-сопрягаются в этой пропорции. Этот способ используется для формирования краев графических форм, но он неэффективен для мерцающих структур, наложенных на графические формы и не ограничивает влияния наложения спектров, которое происходит в том случае, когда трехмерные формы пересекают друг друга (линии пересечения) (например, на линии пересечения двух сфер, одна из которых входит в другую).
Исходя из всего вышеизложенного, задачей настоящего изобретения является разработка способа снижения ухудшения качества изображения, вызываемого наложением спектров, без всякого увеличения стоимости и размеров используемой для создания изображений аппаратуры.
Краткое изложение сущности изобретения
Устройство для создания изображений по п.1 включает задающее устройство для задания множества величин сдвигов положения изображения для сдвига положения изображения с точностью выше одного пикселя при запоминании данных пикселей в памяти устройства запоминания данных пикселей, и устройство для записи данных пикселей в устройство запоминания данных пикселей с целью перезаписи изображения путем записи данных пикселей в каждое место устройства запоминания данных пикселей, соответствующее множеству величин сдвигов, заданных устройством задания величин сдвигов.
Способ создания изображений по п. 43 включает шаг установки величины сдвига из множества задаваемых величин сдвигов для сдвига с точностью выше одного пикселя положения изображения при запоминании данных пикселей в памяти устройства запоминания данных пикселей, и шаг записи данных пикселей в устройство для запоминания данных пикселей с целью перезаписи изображения путем записи данных пикселей в каждое место устройства запоминания данных пикселей, соответствующее множеству величин сдвигов.
Распространяемый носитель информации по п. 75 содержит компьютерную программу, по которой выполняется шаг установки множества величин сдвигов изображений для сдвига с точностью выше одного пикселя положения изображения при запоминании данных пикселей в памяти устройства запоминания данных пикселей, и шаг записи данных пикселей, при котором происходит перезапись изображения путем записи данных пикселей в каждое место устройства запоминания данных пикселей, соответствующее множеству величин сдвигов.
В устройстве для создания изображения по п.1 устройство для задания множества величин сдвигов задает множество величин сдвигов для сдвига с точностью выше одного пикселя положения изображения при запоминании данных пикселей в памяти устройства запоминания данных пикселей, а устройство для записи данных пикселей в устройство запоминания данных пикселей переписывает изображение путем записи данных пикселей в каждое место устройства запоминания данных пикселей, соответствующее множеству величин сдвигов, заданных устройством задания величин сдвигов.
В способе создания изображения по п.43 устанавливается множество величин сдвигов для сдвига с точностью выше одного пикселя положения изображения при запоминании данных пикселей в памяти устройства запоминания данных пикселей, и изображение перезаписывается путем записи данных пикселей в каждое место устройства запоминания данных пикселей, соответствующее множеству величин сдвигов.
В распространяемом носителе информации по п.75 имеется компьютерная программа, по которой компьютер устанавливает величины многократных сдвигов для сдвига с точностью выше одного пикселя положения изображения при запоминании данных пикселей в памяти устройства запоминания данных пикселей и по которой осуществляется перезапись изображения путем записи данных пикселей в каждое место устройства запоминания данных пикселей, соответствующее множеству величин сдвигов.
Краткое описание чертежей
Ниже изобретение более подробно поясняется со ссылкой на прилагаемые чертежи, на которых показано:
на фиг. 1 - вид сверху примера выполнения видеоигрового устройства с предлагаемым в изобретении устройством для создания изображений по предлагаемому в изобретении способу,
на фиг.2 - вид спереди видеоаппаратуры, показанной на фиг.1,
на фиг.3 - вид сбоку видеоаппаратуры, показанной на фиг.1,
на фиг.4 - вид сверху на оптический диск (КД-ПЗУ) 51,
на фиг.5 - блок-схема, на которой показана электрическая схема основного блока видеоаппаратуры, показанной на фиг.1,
на фиг. 6 - блок-схема, на которой в деталях показана структура блока графической памяти видеоаппаратуры, электрическая схема которой показана на фиг.5,
на фиг.7(А)-7(Г) - диаграммы, объясняющие процесс перезаписи точки,
на фиг.8 - схема, на которой показан результат перезаписи точки,
на фиг.9 - диаграмма, на которой показан пиксель, состоящий из 2 х 2 субпикселей,
на фиг. 10 - диаграмма, показывающая результат создания изображения точки, полученной сразу, без перезаписи,
на фиг.11(А)-11(Г) - диаграммы, объясняющие процесс перезаписи точки,
на фиг.12 - диаграмма, на которой показан результат перезаписи точки,
на фиг.13(А)-13(Г) - диаграммы, объясняющие соотношение между положением изображаемой точки и результатом перезаписи,
на фиг. 14(А)-14(Г) - диаграммы, объясняющие процесс перезаписи прямой линии,
на фиг. 15 - диаграмма, на которой показан результат перезаписи прямой линии,
на фиг. 16(А)-16(Г) - диаграммы, объясняющие процесс перезаписи прямой линии,
на фиг. 17(А) и 17(Б) - диаграммы, на которых показан результат перезаписи прямой линии,
на фиг.18 - блок-схема, объясняющая процедуру создания и обработки изображений полигонов в основном блоке видеоигрового устройства, схема которого показана на фиг.5,
на фиг.19(А) и 19(Б) - графики, объясняющие причину формирования изображения в определенной последовательности, начиная с полигонов, ближайших к точке наблюдения,
на фиг. 20(А) и 20(Б) - графики, относящиеся к случаю, когда процесс создания изображения начинают с полигонов, наиболее удаленных от точки наблюдения,
на фиг. 21(А) и 21(Б) - графики, относящиеся к случаю, когда процесс создания изображения начинают с полигонов, ближайших к точке наблюдения, и
на фиг. 22 - блок-схема, объясняющая более подробно последовательность операций, выполняемых на шаге S14, процедуры, показанной на фиг.18.
Предпочтительный вариант выполнения изобретения
Ниже рассмотрены различные варианты выполнения изобретения, а с целью лучше раскрыть связь между всеми перечисленными в формуле изобретения вариантами и устройствами в описании различных вариантов изобретения указание на конкретные варианты устройств (которые следует рассматривать только в качестве примера) заключено в скобки. С учетом этого отличительные особенности изобретения можно описать следующим образом.
Устройство для создания изображений по п.1 включает устройство для запоминания данных пикселей, хранящее их с целью последующего вывода в двухмерное выходное устройство, на котором воспроизводится изображение (например, кадровый буфер 141 фиг.6), устройство для задания величин сдвигов изображений, задающее множество величин сдвигов для сдвига с точностью выше одного пикселя положения изображения при запоминании данных пикселей в памяти устройства запоминания данных пикселей (например, на шаге S6 программы обработки - фиг.18), и устройство для записи данных пикселей в устройство запоминания данных пикселей с целью перезаписи изображения путем записи данных пикселей в каждое место устройства запоминания данных пикселей, соответствующее множеству сдвигов изображения, заданному с помощью устройства для задания множества величин сдвигов изображений (например, на шаге S14 программы обработки - фиг.18).
Устройство для создания изображений по пп.3, 14, 25 и 35 включает также счетчик, который определяет, сколько раз происходит перезапись изображения (например, на шаге S5 программы обработки - фиг.18).
Устройство для создания изображений по пп.4, 15, 26 и 36 может включать также устройство оценки, которое оценивает, сколько времени необходимо для записи данных пикселей, относящихся к одному полному кадру информации, в устройство запоминания данных пикселей (например, на шаге S4 программы обработки - фиг. 18), после чего по этому времени, определенному устройством оценки, счетчик определяет количество перезаписей.
Устройство для создания изображений по пп.6, 17, 28 и 38 при его использовании для создания движущихся изображений содержит также устройство коррекции, корректирующее величины сдвигов на основе данных о движении изображения (например, на шаге S10 программы обработки - фиг.18).
Устройство для создания изображений по пп.8 и 19 при его использовании для создания трехмерных изображений содержит устройство для сортировки, которое сортируют элементы графических объектов по их глубине в направлении наблюдения (например, на шаге S7 программы обработки - фиг.18), и устройство, которое изображает эти объекты по глубине в соответствующем порядке, начиная от ближайшего к точке наблюдения.
Устройство для создания изображений по п.12 может также включать операционное устройство, используемое при заданном входе (например, операционное устройство 17 - фиг.1), устройство для выполнения арифметических операций, которое считывает данные из носителя информации, или устройства хранения, и совершает над ними заранее заданные арифметические действия на основе входного сигнала от операционного устройства (например, основной ЦП 111 - фиг.5), и устройство создания данных пикселей, например ГП, которое определяет данные пикселей на основе результатов арифметических действий, выполняемых соответствующим устройством (например ГП 115 - фиг.5).
Устройство для создания изображений по п.23 при его использовании для создания трехмерных изображений, образованных комбинацией элементов графических форм, имеет устройство преобразования, которое в зависимости от точки наблюдения преобразует (обращает) эти элементы, являющиеся трехмерными изображениями, в двухмерные, изображаемые в системе координат двумерного устройства вывода (например, основной ЦП 111 - фиг.5), устройство сортировки, которое сортируют элементы графических объектов, преобразованные устройством преобразования, по их глубине в направлении наблюдения (например, на шаге S7 программы обработки - фиг.18) и устройство для запоминания глубины элементов изображения, регистрирующее значения, которые характеризуют положение элементов графических объектов по их глубине в направлении наблюдения (например, Z-буфер 142 - фиг.6), используя которое устройство для создания изображений изображает элементы графических объектов в определенном по глубине порядке, начиная с ближайшего к точке наблюдения.
Устройство для создания изображения по п.33 при его использовании для создания трехмерных изображений, образованных комбинацией элементов графических форм, может также иметь операционное устройство для выполнения операций при заранее заданном входе (например, операционное устройство 17 - фиг.1), устройство для выполнения арифметических действий, которое считывает данные из носителя информации и совершает над ними заранее заданные арифметические действия на основе входного сигнала от операционного устройства (например, основной ЦП 111 - фиг.5), устройство преобразования, которое преобразует (обращает) элементы графических форм, полученные в результате вычислений, выполняемых устройством выполнения арифметических действий, в двухмерные, изображаемые в системе координат двумерного устройства вывода, устройство сортировки, которое сортирует элементы графических объектов, преобразованные устройством преобразования, по их глубине в направлении наблюдения (например, на шаге S7 программы обработки - фиг.18) и устройство для запоминания глубины элементов изображения, регистрирующее значения, которые характеризуют положение элементов графических объектов по их глубине в направлении наблюдения (например, Z-буфер 142 - фиг.6), используя которое устройство для создания изображений изображает элементы графических объектов в определенном по глубине порядке, начиная с ближайшего к точке наблюдения.
В настоящем описании не ставится цель ограничить каждое из используемых в изобретении устройств только упомянутыми выше.
Ниже более подробно рассмотрены конкретные варианты выполнения изобретения со ссылкой на прилагаемые чертежи, где, в частности, на фиг.1 в виде сверху показан пример возможного выполнения видеоигрового устройства (называемого также игровой видеоприставкой), в котором используется настоящее изобретение. На фиг.2 это видеоигровое устройство показано в виде спереди (если смотреть с нижней по фиг.1 стороны), а на фиг.3 - в виде сбоку справа (если смотреть с правой стороны по фиг.1).
Видеоигровое устройство состоит из основного блока 2, устройства 17 управления (джойстика), имеющего приблизительно прямоугольную форму соединительного разъема 26, подсоединяемого к соответствующему гнезду основного блока 2, и устройства 38 записи, также подсоединяемого к основному блоку 2.
Основной блок 2 видеоигрового устройства может иметь приблизительно прямоугольную форму с расположенным в центре дисководом 3, в который устанавливается носитель игровой информации, на который записаны компьютерные программы [включая программы для визуализации (формирования изображений), которые описаны ниже] и данные для проведения игр. В данном варианте, как показано на фиг. 4, в дисковод 3 можно вставлять (и извлекать из него) КД-ПЗУ (компакт-диск, предназначенный только для чтения) 51. Следует подчеркнуть, однако, что в качестве носителя игровой информации можно использовать и не только компакт-диски.
Слева от дисковода 3 расположены переключатель 4 сброса, необходимый для возврата игры в исходное состояние, выключатель питания 5 для включения и выключения питания системы, а с правой стороны находится кнопка 6 открывания дисковода, управляющая открытием и закрытием дисковода 3 для установки, соответственно извлечения диска. На фронтальной стороне основного блока 2 видеоигрового устройства расположены соединительные разъемы, или гнезда 7(А) и 7(В), с помощью которых основной блок соединяется с устройством 17 управления и устройством 38 записи. В рассматриваемом варианте выполнения гнезда 7(А) и 7(В) позволяют подключать к основному блоку по два устройства 17 управления и по два устройства 38 записи. Однако фактически в основном блоке можно предусмотреть столько гнезд, сколько необходимо для подключения двух или любого другого количества устройств 17 управления и устройств 38 записи. Кроме того, для подсоединения к основному блоку большего количества устройств управления и устройств записи можно использовать специальный переходник, который вставляется в гнездо 7(А) или 7(В) и позволяет увеличить количество разъемов для подключения устройств 17 управления и устройств 38 записи.
Показанные на фиг.2 и 3 соединительные гнезда 7(А) и 7(В) имеют двухуровневую конструкцию и состоят из расположенного наверху гнезда 8 под разъем устройства 38 записи и расположенного внизу гнезда 12, в которое вставляется соединительный разъем 26 устройства 17 управления.
Гнездо 8 под разъем устройства 38 записи имеет форму вытянутого в горизонтальном направлении прямоугольника, радиусы скругления нижних углов которого больше, чем у верхних углов, что исключает возможность неправильной (в перевернутом на 180o виде) установки в гнездо устройства 38 записи. Гнездо 8 под разъем устройства 38 записи закрыто створкой 9, защищающей расположенные внутри гнезда электрические контактные выводы (не показаны).
Створка 9 постоянно выталкивается наружу упругим элементом (не показан), например винтовой пружиной. При установленном в гнездо устройстве 38 записи, которое вставляется в гнездо своим передним концом, створка утапливается внутрь гнезда, а при извлечении устройства 38 записи из гнезда створка 9 под действием упругого элемента автоматически возвращается в ее первоначальное положение, закрывая гнездо и защищая таким образом внутренние контактные выводы от пыли и от повреждения в результате внешнего воздействия.
Показанное на фиг.2 и 3 гнездо 12 для подключения устройства управления также имеет форму вытянутого в горизонтальном направлении прямоугольника, нижние углы которого имеют большие радиусы кривизны, чем верхние, что исключает возможность неправильной (в перевернутом на 180o виде) установки в гнездо соединительного разъема 26 устройства 17 управления, при этом по своей форме и размеру это гнездо отличается от гнезда под разъем устройства 38 записи, который поэтому также нельзя вставить в него в перевернутом на 180o виде. Таким образом, устройство 38 записи и устройство 17 управления имеют соединительные разъемы, которые отличаются друг от друга по своим размерам и форме, что исключает ошибочное подсоединение устройства управления к гнезду, предназначенному для подключения устройства записи, и наоборот.
Показанное на фиг.1 устройство 17 управления имеет конструкцию, позволяющую держать его между ладонями обеих рук, свободно манипулируя при этом всеми пятью пальцами руки, и состоит из двух - первой и второй - рабочих (функциональных) частей 18 и 19, расположенных симметрично справа и слева и имеющих скругленную форму, первой и второй опорных частей 20 и 21, выступающих под некоторым углом наружу от первой и второй функциональных частей 18 и 19, кнопки 22 выбора режима игры и кнопки 23 пуска, расположенных на узкой перемычке между первой и второй функциональными частями 18 и 19, третьей и четвертой функциональных частей 24 и 25, выступающих наружу и расположенных перед первой и второй функциональными частями 18 и 19, и соединительного разъема 26 с проводом 27 для электрического подсоединения к основному блоку 2 видеоигрового устройства.
Устройство 17 управления можно выполнить и без соединительного разъема 26 с проводом 27 таким образом, чтобы связь с основным блоком 2 была беспроводной, например с помощью инфракрасного излучения.
В устройство 17 управления можно встроить, например, электрический двигатель, вызывающий его вибрации. Устройство 17 управления, которое приводится в вибрацию в соответствии с игровыми сценами, создает у игрока эффект непосредственного присутствия и участия в игре. При этом в устройство 17 управления можно встроить и несколько двигателей с различными скоростями вращения. Игрок в этом случае может испытывать малые или большие вибрации или вибрации с различным частотным составом, сопровождающие различные возникающие во время игры ситуации.
Соединительный разъем 26, который крепится к концу провода 27, используется для электрического подсоединения к основному блоку 2 видеоигрового устройства и, как показано на фиг.3, имеет слева и справа на обеих сторонах захваты (например, с насечкой), исключающие возможность соскальзывания пальцев руки и выполненные с этой целью рифлеными с чередующимися выступами и впадинами. Кроме того, захват соединительного разъема 26 используется для его извлечения из гнезда и имеет такие же ширину W и длину L, что и захват разъема устройства 38 записи, как описано ниже.
Устройство 38 записи имеет встроенную энергонезависимую память, например флэш-память, и расположенные на обеих сторонах захваты (фиг.3), выполненные так же, как и захваты соединительного разъема 26, и обеспечивающие простоту его подсоединения к основному блоку 2 видеоигрового устройства и отсоединения от него. Кроме того, устройство 38 записи выполнено таким образом, что, например, при временном прерывании игры ее состояние на этот момент запоминается (записывается), что дает возможность, считывая записанные в устройство записи данные, после повторного запуска видеоигрового устройства продолжить игру с того момента, на котором она была прервана.
При использовании для игры видеоигрового устройства описанного выше типа пользователь подсоединяет устройство 17 управления к основному блоку 2 видеоигрового устройства и при необходимости подключает к этому блоку 2 устройство 38 записи. С помощью кнопки 6 пользователь устанавливает в дисковод 3 КД-ПЗУ 51 в качестве носителя игровой информации и с помощью выключателя 5 питания включает питание основного блока 2 видеоигрового устройства. При этом сопровождающие игру образы и звуки воспроизводятся на основном блоке 2 видеоигрового устройства, и игра ведется с помощью устройства 17 управления.
На фиг.5 в качестве примера показана электрическая схема основного блока 2 видеоигрового устройства, показанного на фиг.1.
Этот основной блок 2 видеоигрового устройства имеет два типа шин для обмена данными между его различными блоками, а именно основную шину 101 и вспомогательную шину 102, которые соединены между собой шинным контроллером 116.
К основной шине 101 помимо шинного контроллера 116 подсоединены основной ЦП (центральный процессор) 111, представляющий собой, например, микропроцессор или иную микросхему, основная память 112, представляющая собой, например, ЗУПВ (запоминающее устройство с произвольной выборкой), основной КПДП 113 (контроллер прямого доступа к памяти), МДЕК 114 (MPEG-декодер, т.е. декодер, работающий в стандарте MPEG) и ГП (графический процессор) 115.
К вспомогательной шине 102 помимо шинного контроллера 116 подсоединены ГП 115, вспомогательный ЦП 121, выполненный так же, как и ЦП 111, вспомогательная память 122, выполненная так же, как и основная память 112, вспомогательный КПДП 123, ПЗУ (постоянное запоминающее устройство) 124, на котором, например, хранится операционная система, ЗП 125 (звуковой процессор), блок 126 АП-связи (связи в режиме асинхронной передачи), вспомогательное запоминающее устройство 127 и интерфейс 128 устройств ввода.
Таким образом, по основной шине 101 обмен данных происходит с высокой скоростью, а по вспомогательной шине 102 - с низкой скоростью. Поэтому в основном блоке в дополнение к высокоскоростной основной шине 101 используется и вспомогательная шина 102, предназначенная для обмена данными, которые могут передаваться с низкой скоростью.
Шинный контроллер 116 служит для соединения и разъединения основной и вспомогательной шин 101 и 102. Если основная 101 и вспомогательная 102 шины разъединены, то обмен данными по основной шине 101 может осуществляться только между устройствами, непосредственно соединенными с ней, а по вспомогательной шине 102 обмен данными может осуществляться только между устройствами, непосредственно соединенными с ней, но если основная и вспомогательная шины 101 и 102 соединены друг с другом, то обмениваться данными между собой могут все подключенные к ним устройства. В начальный момент времени, например сразу же после включения питания, шинный контроллер 116 находится в открытом состоянии (т.е. в состоянии, при котором основная и вспомогательная шины 101 и 102 соединены друг с другом).
Основной ЦП 111 выполняет различные операции в соответствии с программами, хранящимися в основной памяти 112. Иными словами, основной ЦП 111 при включении видеоигрового устройства считывает через шинный контроллер 116 из ПЗУ 124, соединенного со вспомогательной шиной 102, программу загрузки и запускает ее выполнение. Аналогичным образом основной ЦП 111 загружает прикладные программы (в данном случае игровые программы и описанные ниже программы для создания изображений) и необходимые данные из вспомогательного запоминающего устройства 127 в основную память 112 и вспомогательную память 122. Затем основной ЦП 111 выполняет загруженные таким путем в основную память 112 программы.
Основной ЦП 111 имеет встроенный в него ГмП 117 (геометрический процессор). Этот ГмП 117, в котором, например, предусмотрен параллельный механизм выполнения операций, параллельно выполняет множество операций и в соответствии с запросами от основного ЦП 111 производит с высокой скоростью арифметические вычисления для таких геометрических операций, как преобразование координат, вычисление освещенности и матричные и векторные операции. Таким образом, выполняя (геометрическую) обработку в соответствии с запросами от основного ЦП 111, ГмП 117 генерирует и передает основному ЦП 111 данные (здесь и далее для краткости называемые "полигональными данными") для различных полигонов (в контексте настоящего описания к таким полигонам помимо полигонов с тремя или более вершинами относятся также прямые линии (отрезки линий) и точки), из которых состоит воспроизводимое на экране трехмерное изображение. Когда основной ЦП 111 получает полигональные данные от ГмП 117, он преобразует их в данные двухмерного плоского изображения с помощью перспективных и проективных преобразований и передает их в ГП 115 через основную шину 101.
Основной ЦП 111 имеет также встроенную в него сверхоперативную память (кэш-память) 119, обращение к которой вместо основной памяти 112 позволяет ускорить процесс обработки.
Как уже было отмечено выше, основная память 112 помимо хранения программ и другой информации также служит для хранения данных, необходимых для обработки основным ЦП 111. Основной КПДП 113 управляет процессом передачи данных в режиме прямого доступа к памяти (ПДП) к устройствам, подключенным к основной шине 101. Однако, когда контроллер 116 находится в открытом состоянии, основной КПДП 113 также управляет устройствами, подключенными к вспомогательной шине 102. МДЕК 114, являющееся устройством ввода-вывода, которое может работать параллельно с основным ЦП 111, функционирует как устройство расширения или растяжения изображений. При этом МДЕК 114 декодирует видеоданные, сжатые при кодировании по стандарту MPEG.
ГП 115 работает как процессор визуализации. Иными словами, ГП 115 принимает полигональные данные, переданные от основного ЦП 111, вычисляет данные пикселей, определяющие параметры полигона, на основании, например, цветовых координат вершин полигона и Z-координат, показывающих глубину их расположения (от точки наблюдения), и выполняет процесс визуализации, записывая полученные результаты (создавая графическое изображение) в память 118 графических данных, или графическую память. Кроме того, ГП 115 считывает те данные пикселей, которые были записаны в графическую память 118, и выводит их в виде видеосигнала. Кроме того, ГП 115, если это необходимо, принимает полигональные данные от основного КПДП 113 или устройства, подключенного к вспомогательной шине 102, и выполняет процесс визуализации в соответствии с этими полигональными данными.
Показанная на фиг.6 графическая память 118 реализована, например, в виде ДЗУПВ (динамическое запоминающее устройство с произвольной выборкой) и имеет кадровую память 141, Z-буфер 142 и память 143 текстур. В кадровой памяти 141 хранится, например, один кадр изображения в течение времени, необходимого для воспроизведения данных пикселей на экране. В Z-буфере 142 хранятся Z-координаты полигона, ближайшего к наблюдателю в изображении, воспроизводимом на экране, и этот буфер имеет, например, достаточный объем для хранения Z-координат для одного полного кадра изображения. В памяти 143 текстур хранятся данные о текстурах, добавляемых к соответствующим полигонам при их прорисовке.
ГП 115 осуществляет процесс визуализации, используя для этого кадровую память 141, Z-буфер 142 и память 143 текстур. При этом ГП 115 запоминает Z-координату полигона, образующего трехмерное изображение и ближайшего к наблюдателю, и, основываясь на значениях, хранимых в Z-буфере 142, решает, следует ли передавать данные пикселей в кадровую память 141. Если данные пикселей следует передать в кадровую память, то из памяти 143 текстур считываются те данные о текстуре полигона, которые используются для определения подлежащих передаче в кадровую память данных пикселей, и осуществляется запись в кадровую память 141.
Кроме того, ГП 115 производит сортировку полигонов по Z-координате, упорядочивая полигоны по глубине их расположения от наблюдателя, и в этом случае визуализация осуществляется, начиная с полигона, ближайшего к наблюдателю.
Как показано далее на фиг.5, вспомогательный ЦП 121 выполняет различные операции, считывая и выполняя программы, хранящиеся во вспомогательной памяти 122. Как и в основной памяти 112, во вспомогательной памяти 122 помимо программ хранятся и необходимые данные. Вспомогательный КПДП 123 управляет процессом ПДП-передачи данных в устройства, соединенные со вспомогательной шиной 102. Кроме того, вспомогательный КПДП 123 может получать доступ к вспомогательной шине только тогда, когда шинный контроллер 116 находится в закрытом состоянии (т.е. когда основная шина 101 и вспомогательная шина 102 разъединены). Как уже было отмечено выше, в ПЗУ 124 хранятся программа загрузки, операционная система и другая соответствующая информация. Кроме того, в ПЗУ 124 хранятся программы для работы основного ЦП 111 и вспомогательного ЦП 121. ПЗУ 124 в данном случае является памятью с медленной выборкой и поэтому подключено к вспомогательной шине 102.
ЗП 125 принимает пакеты данных, передаваемые от вспомогательного ЦП 121 или вспомогательного КПДП 123, и считывает аудиоданные из звуковой памяти 129 в соответствии с командами звукового сопровождения, содержащимися в этих пакетах. Затем ЗП 125 выводит эти считанные аудиоданные на динамик (не показан). Блок 126 АП-связи управляет связью (связью в режиме асинхронной передачи), осуществляемой, например, по общедоступным линиям связи (не показаны). Таким образом пользователь видеоигрового устройства может играть с другими пользователями, обмениваясь с ним игровыми данными либо непосредственно, либо через сеть Интернет, либо через так называемый центр связи персональных компьютеров.
Вспомогательное запоминающее устройство 127 считывает информацию (программы, данные), записанные на КД-ПЗУ 51 (фиг.1 и 4), с помощью, например, имеющегося у основного блока дисковода. Вспомогательное запоминающее устройство 127 также записывает информацию в устройство 38 записи (фиг.1) и считывает с него информацию. Интерфейс 128 устройств ввода является интерфейсом, предназначенным для приема сигналов, относящихся к работе устройства 17 управления (фиг.1), таких как входные сигналы от пульта управления или от внешних устройств, например видео- и аудиосигналы, генерируемые другими устройствами, и для вывода на вспомогательную шину 102 сигналов в ответ на внешние входные сигналы. При этом все аудиоданные хранятся в звуковой памяти 129.
При включении основного блока 2 видеоигрового устройства, структура которого описана выше, из ПЗУ 124 считывается программа загрузки, которая выполняется в основном ЦП 111, и тем самым запускается процесс считывания программ и данных из КД-ПЗУ 51 (фиг.4), установленного во вспомогательном запоминающем устройстве 127, и их передача в основную память 112 и во вспомогательную память 122. После этого в основном ЦП 111 или во вспомогательном ЦП 121 соответственно происходит выполнение программ, введенных в основную память 112 или во вспомогательную память 122, и самым обеспечивается воспроизведение в процессе игры (предполагается движущихся) изображений и звука.
Таким образом, в соответствии с данными, хранящимися в основной памяти 112, в основном ЦП 111 формируются, например, полигональные данные для прорисовки полигонов, определяющих заранее выбранное трехмерное изображение. Эти полигональные данные, например, объединяются в пакеты, которые передаются в ГП 115 по основной шине 101.
После получения пакета данных от ЦП 111 ГП 115 производит их сортировку по Z-координате и использует Z-буфер 142 для передачи полигональных данных в кадровую память 141 в полученном при сортировке порядке, начиная с полигона, ближайшего к наблюдателю. Данные, полученные в результате передачи в кадровую память 141, соответствующим образом считываются в ГП 115 и выводятся из него в виде видеосигнала. Таким путем трехмерные изображения, сопровождающие игру, воспроизводятся на двухмерном экране, например на дисплее (не показан), являющемся двухмерным устройством вывода.
В то же время во вспомогательном ЦП 121 в соответствии с данными, хранящимися во вспомогательной памяти 122, формируются команды звукового сопровождения, которые предназначены для генерирования звука. Эти команды звукового сопровождения объединяются в пакеты, которые передаются в ЗП 125 по вспомогательной шине 102. ЗП 125 считывает аудиоданные из звуковой памяти 129 и выдает их в соответствии с поступающими от ЦП 121 командами звукового сопровождения на устройство воспроизведения звука. Таким путем на устройство воспроизведения звука выводится соответствующий музыкальный фон и другие звуковые эффекты, сопровождающие процесс игры.
Далее более подробно рассмотрен процесс визуализации (прорисовки) полигонов, осуществляемый в основном блоке 2 видеоигрового устройства, схема которого показана на фиг.5.
Как уже было отмечено выше, ГП 115 основного блока 2 видеоигрового устройства заносит в кадровый буфер 141 данные пикселей полигона. Однако по окончании этого процесса задаются величины многократного сдвига, на основании которых данные пикселей корректируются с учетом сдвига положения этих пикселей при отображении на экране на определенную величину с точностью, не превышающей размеров одного пикселя и равной, например, размеру субпикселя, и после этого данные пикселей записываются (заносятся) в каждую позицию (ячейку памяти) кадрового буфера 141 в соответствии с этими величинами многократного сдвига, в результате чего происходит не только перезапись полигонов, но и перезапись формируемых ими трехмерных изображений.
Сказанное выше можно пояснить на примере получения изображения точки, координаты которой в трехмерном пространстве определяются как (х, y, z), при этом в основном ЦП 111 эта точка с координатами (х, y, z) геометрически обрабатывается на основании того, как она должна восприниматься глазом наблюдателя, и на основании другой информации, а затем путем перспективного преобразования преобразуется в точку с координатами (X, Y, Z) в системе координат экрана, представляющего собой двухмерную плоскость (т.е. в системе координат дисплея, на экране которого воспроизводятся или отображаются трехмерные изображения). В данном случае х, y, z, X, Y, Z являются координатами, представленными числами с плавающей или фиксированной запятой. Кроме того, координата Z точки (X, Y, Z) в плоской системе координат означает глубину расположения точки в направлении наблюдения, т.е. ее удаление от наблюдателя.
ГП 115 определяет сигналы R, G, В (Ri, Gi, Bi), т.е. сигналы красного, зеленого, синего как цветовую информацию для точки с координатами (X, Y, Z) и другую информацию, основываясь на данных о положении наблюдателя, источнике освещения, текстуре и т.д. Индекс i y Ri, Gi, Bi указывает на то, что эти параметры являются целыми числами, каждое из которых представляется, например, 8 битами и поэтому имеет значение в диапазоне от 0 до 255.
Если в рассматриваемом примере принять также, что количество перезаписываний точки равно 4 и что каждый пиксель разделен по горизонтали и вертикали на 4 равные части, что дает велчину в 16 (=4 х 4) субпикселей, показанных на фиг.7(А)-7(Г), то ГП 115 задает величины (dX, dY) для каждого сдвига положения отображаемой точки в системе координат экрана, и эта точка (X, Y, Z) отображается последовательно 4 раза, например, в точках (0,0, 0,0), (0,5, 0,0), (0,5, 0,5), (0,0, 0,5), что соответствует точности, равной 2 субпикселям (в данном случае 1/2 пикселя). На фиг.7(А)-7(Г) (и в последующем на фиг. 8-17) положительное направление осей Х и Y выбрано направо и вверх соответственно.
Затем ГП 115 последовательно отображает точку в других положениях, каждый раз сдвигая ее на величину сдвига (dX, dY).
Иными словами, при первом отображении точки (X, Y, Z) ГП 115 сдвигает ее на величину (0,0, 0,0), а затем преобразует сдвинутую с субпиксельной точностью точку (X, Y, Z) в точку (Xs, Ys, Zs) (далее для удобства этот процесс называется субпиксельной коррекцией положения отображаемой точки). Индекс s у Xs, Ys, Zs означает, что соответствующая координата точки задана с субпиксельной точностью, при этом, поскольку на фиг.7(А)-7(Г) один пиксель разделен по горизонтали и вертикали на 4 равные части, субпиксельная точность для этого случая равна 0,25 (=1/4). Кроме того, показанные на фиг.7 координаты левого нижнего субпикселя равны (0,0, 0,0) и при каждом перемещении направо и вверх они увеличиваются на 0,25.
Цветовая информация (Ri, Gi, Bi), соответствующая точке (Xs, Ys, Zs), записывается в место расположения пикселя, включающего субпиксель с координатами (Xs, Ys, Zs). Для цветовой информации (информации пикселя) сюда записывается величина, полученная делением на количество перезаписываний. В частности, при количестве перезаписей, равном 4, в качестве цветовой информации записывается величина (Ri/4, Gi/4, Bi/4).
Если принять в рассматриваемом примере, что координаты Х и Y отображаемой точки (X, Y, Z) равняются, например, 1,6 и 1,3 соответственно, то при первом отображении точка (1,6, 1,3, Z) сдвигается на (0,0, 0,0), и, как показано на фиг.7(А), 1/4 часть от всей цветовой информации, которая должна быть записана и которая показана вертикальными черточками на фиг.7(А), записывается в место расположения пикселя (1,1), который включает субпиксель, соответствующий точке (1,5, 1,25, Zs), полученной в процессе субпиксельной коррекции положения при указанном сдвиге исходной точки в точку (1,6, 1,3, Z) (показано темным кружком на фиг.7(А)).
При втором отображении ГП 115 сдвигает точку (X, Y, Z) на (0,5, 0,0), и в процессе субпиксельной коррекции положения точка сдвигается в точку (Xs, Ys, Zs). После этого 1/4 часть всей цветовой информации (Ri, Gi, Bi) перезаписывается в в место расположения того пикселя, который содержит субпиксель, соответствующий точке (Xs, Ys, Zs).
В рассматриваемом примере предполагается далее, как указано выше, что координаты Х и Y отображаемой точки (X, Y, Z) равняются 1,6 и 1,3 соответственно, и тогда при втором отображении точка (1,6, 1,3, Z) сдвигается на (0,5, 0,0), и, как показано на фиг.7(Б), 1/4 часть всей цветовой информации, которая должна быть записана и которая показана горизонтальными черточками на фиг.7(Б), записывается в место расположения пикселя (2, 1), который включает субпиксель, соответствующий точке (2,0, 1,25, Zs), полученной в процессе субпиксельной коррекции положения при указанном сдвиге исходной точки в точку (2,1, 1,3, Z) (показано темным кружком на фиг.7(Б)). При этом, в частности, в пикселе (2, 1) 1/4 часть всей цветовой информации, которая должна быть записана, добавляется к цветовой информации, которая уже была записана в место расположения этого пикселя, и, таким образом, в этот пиксель (2, 1) записывается значение, полученное в результате такого суммирования.
То же самое происходит при отображении точки в третий и четвертый раз. Иными словами, при том же предположении, что координаты Х и Y отображаемой точки (X, Y, Z) были выбраны равными 1,6 и 1,3 соответственно, при третьем отображении точка (1,6, 1,3, Z) сдвигается на (0,5, 0,5), и, как показано на фиг. 7 (В), 1/4 часть всей цветовой информации, которая должна быть записана и которая показана наклонными черточками на фиг.7 (В), записывается в место расположения пикселя (2, 1), который включает субпиксель, соответствующий точке (2,0, 1,75, Zs), полученной в процессе субпиксельной коррекции положения при указанном сдвиге исходной точки в точку (2,1, 1,8, Z) (показано темным кружком на фиг.7(В)). При этом 1/4 значения цвета при перезаписи в пиксель (2, 1) складывается с уже имеющейся в нем цветовой информацией, и в этот пиксель записывается значение цвета, полученное в результате такого суммирования.
И, наконец, при отображении точки в четвертый раз точка (1,6, 1,3, Z) сдвигается на (0,0, 0,5), и, как показано на фиг.7(Г), 1/4 часть всей цветовой информации, которая должна быть записана и которая показана обратными косыми черточками на фиг.7(Г), записывается в место расположения пикселя (1, 1), который включает субпиксель, соответствующий точке (1,5, 1,75, Zs), полученной в процессе субпиксельной коррекции при указанном сдвиге исходной точки в точку (1,6, 1,8, Z) (показано темным кружком на фиг.7(Г)). При этом 1/4 значения цвета при перезаписи в пиксель (1,1) складывается с уже имеющейся в нем информацией о цвете, и в этот пиксель записывается значение цвета, полученное в результате такого суммирования.
В результате описанной выше процедуры отображения точки (1,6, 1,3, Z) (в результате перезаписи) получают изображение, показанное на фиг.8.
Описанный выше метод перезаписи изображения позволяет существенно, а именно в 4 раза повысить разрешение и, следовательно, достичь сглаживания изображений, т.е. достичь компенсации ступенчатости изображений.
Если при перезаписи величина (dX, dY) для каждого из четырех последовательных сдвигов отображаемой точки выбирается указанным выше образом, т.е. принимается последовательно равной (0,0, 0,0), (0,5, 0,0), (0,5, 0,5), (0,0, 0,5), то положение отображаемой точки может иногда смещаться к верхнему правому краю, и во избежание этого величины сдвигов (dX, dY) можно выбрать, равными, например, (-0,25, -0,25), (0,25, -0,25), (0,25, 0,25), (-0,25, 0,25) (при этом среднее значение величины сдвига dX или dY для каждой координаты равняется 0).
Помимо показанного на фиг.7(А)-7(Г) и фиг.8 разделения каждого пикселя на 16 субпикселей, перезапись такого же типа можно осуществлять и при разделении каждого пикселя, как показано на фиг.9, на две равные части по горизонтали и вертикали, получив при этом 4 (=2 х 2) субпикселя в одном полном пикселе.
Как показано на фиг.10, отображаемая точка (1,6, 2,2, Z) (для простоты координата Z в дальнейшем упоминаться не будет) или с учетом такого
допущения точка (1,6, 2,2) после субпиксельной коррекции ее положения отображается в точке (1,5, 2,0), показанной темным кружком на фиг.10. При этом вся цветовая информация, которая и должна быть записана, записывается в пиксель (1, 2), который включает субпиксель, соответствующий точке (1,5, 2,0), как показано наклонными линиями на фиг.10.
На фиг.11(А)-11(Г) показана схема, поясняющая процесс перезаписи точки. На фиг.11(А) показан воспроизводимый пиксель при величине сдвига dX=0,0, dY= 0,0 (первое отображение). На фиг.11(Б) показан воспроизводимый пиксель при величине сдвига dX= 0,5, dY=0,0 (второе отображение). На фиг.11(B) показан воспроизводимый пиксель при величине сдвига dX=0,0, dY=0,5 (третье отображение). На фиг.11(Г) показан воспроизводимый пиксель при величине сдвига dX= 0,5, dY=0,5 (четвертое отображение).
Таким образом, в основном блоке 2 видеоигрового устройства, показанном на фиг.5, вначале ГП 115 задает каждую из величин сдвига (dX, dY), на которые в системе координат экрана последовательно 4 раза должно сдвигаться с субпиксельной точностью (в данном случае равной 1/2 пикселя) положение отображаемой точки и которые равны, например, (0,0, 0,0), (0,5, 0,0), (0,0, 0,5), (0,5, 0,5) соответственно. При этом при первом отображении точки (1,6, 2,2) величина ее сдвига равна (0,0, 0,0). После субпиксельной коррекции эта точка, сдвинутая в точку (1,6, 2,2), отображается в точке (1,5, 2,0), как показано темным кружком на фиг.11(А). Кроме того, цветовая информация, которая равна 1/4 части от всей цветовой информации, которая должна быть записана, записывается в пиксель (1, 2), который включает субпиксель, соответствующий точке (1,5, 2,0), как показано вертикальными черточками на фиг. 11(А).
При втором отображении точка (1,6, 2,2) сдвигается на (0,5, 0,0). После субпиксельной коррекции точка (2,1, 2,2) изображается в точке (2,0, 2,0), как показано темным кружком на фиг.11(Б). При этом информация о цвете, равная 1/4 общей величины информации о цвете, записывается в положение (2, 2) пикселя, который включает субпиксель, соответствующий точке (2,0, 2,0), как показано горизонтальными черточками на фиг.11(Б).
При третьем изображении точка (1,6, 2,2) сдвигается на (0,0, 0,5). После субпиксельной коррекции точка (1,6, 2,7) изображается в точке (1,5, 2,5) - см. темный кружок на фиг. 11(Г). При этом информация о цвете, равная 1/4 общей величины информации о цвете, записывается в положение (1,2) пикселя, который включает субпиксель, соответствующий точке (1,5, 2,5) - см. наклонную штриховку на фиг.11(Г).
При четвертом изображении точка (1,6, 2,2) сдвигается на (0,5, 0,5). После субпиксельной коррекции точка (2,1, 2,7) изображается в точке (2,0, 2,5) - см. темный кружок на фиг.11(Г). При этом информация о цвете, равная 1/4 общей величины информации о цвете, записывается в положение (2,2) пикселя, который включает субпиксель, соответствующий точке (2,0, 2,5) - см. обратную наклонную штриховку на фиг.11(Г).
В результате такой процедуры получают изображение точки (1,6, 2,2), показанное пунктирными линиями на фиг.12; и из сравнения фиг.10 и фиг.12 становится очевидным достигнутый за счет перезаписи эффект, заключающийся в уменьшении влияния наложения спектров на качество получаемого изображения.
В данном случае (фиг.11(А)-11(Г)) использовались такие же, как и на фиг. 7(А)-7(Г) величины сдвигов, равные (0,0, 0,0), (0,5, 0,0), (0,0, 0,5), (0,5, 0,5). Однако последовательность выбора конкретной величины сдвига в этих четырех случаях была разной (на фиг.7 была выбрана последовательность (0,0, 0,0), (0,5, 0,0), (0,5, 0,5), (0,0, 0,5), а на фиг.11 - (0,0, 0,0), (0,5, 0,0), (0,0, 0,5), (0,5, 0,5)). Однако, как видно из полученных результатов, благодаря самой процедуре перезаписи последовательность выбора величины сдвига не влияет на качество полученного изображения.
Кроме того, и субпиксельная точность в обоих случаях (фиг.7(А)-7(Г) и фиг. 11(А)-11(Г) была разной (на фиг.7(А)-7(Г) - 1/16 пикселя, а на фиг. 11(А)-11(Г) - только 1/4 пикселя), однако и этот факт также не влияет на качество изображения благодаря самому факту перезаписи изображений (при четырехкратной перезаписи, независимо от субпиксельной точности, равной 1/4 или 1/16, качество изображения не меняется; однако при однократной перезаписи более высокая субпиксельная точность повышает качество получаемого изображения).
На фиг.13(А)-13(Г) также показан процесс перезаписи изображений. На фиг. 13(А) показан результат перезаписи при 1,5<Х<2,0, 2,5<Y<3,0 (пиксельное значение = 64). На фиг.13(Б) показан результат перезаписи при 1,5<Х<2,0, 2,0<Y<2,5 (пиксельное значение = 128). На фиг.13(В) показан результат перезаписи при 1,0<Х<1,5, 2,5<Y<3,0 (пиксельное значение = 128). На фиг.13(Г) показан результат перезаписи при 1,0<Х<1,5, 2,0<Y<2,5 (пиксельное значение = 255).
Как и в рассмотренном выше случае, число перезаписей было выбрано равным 4, а величины сдвигов при выполнении четырехкратного сдвига изображения были заданы равными (0,0, 0,0), (0,5, 0,0), (0,0, 0,5), (0,5, 0,5); при этом при координатах Х и Y точки (X,Y), больших или равных 1,5 и меньших 2,0 и больших или равных 2,5 и меньших 3,0 соответственно при каждом из четырех сдвигов, получали, как показано на фиг.13(А), пиксели с координатами (1,2), (2,2), (1,3), (2,3) соответственно. Поскольку каждый из 4 раз сопровождается получением процесса изображения, то в процессе перезаписи участвует лишь 1/4 общей информации о цвете, который должно иметь получаемое изображение; если, например, яркость изображения оценена 8 битами (от 0 до 255) и точка (X,Y) должна иметь максимальную яркость, значение которой равно 255, то тогда яркость каждого пикселя с координатами (1,2), (2,2), (1,3), (2,3) будет равна 64, то есть 1/4 части от 255 (при этом дробная часть округляется до ближайшего большего целого).
При координатах Х и Y точки (X,Y), больших или равных 1,5 и меньших 2,0 и больших или равных 2,0 и меньших 2,5 соответственно при каждом из четырех сдвигов, как показано на фиг. 13(Б), изображаются пиксели с координатами (1,2), (2,2), (1,2), (2,2) соответственно.
В этом случае 1/4 общей информации о цвете, который должна иметь точка, участвует в процессе перезаписи лишь два раза для каждого пикселя с координатами (1,2) и (2,2); если, например, яркость изображения оценена 8 битами и точка (X, Y) должна иметь максимальную яркость, значение которой равно 255, то тогда яркость каждого пикселя с координатами (1,2), (2,2) будет равна 128. Иначе говоря, по сравнению с рассмотренным выше случаем величина яркости первого изображения будет равна 64 и яркость пикселя после двух изображений будет равна 128 (=64+64).
При координатах Х и Y точки (X,Y), больших или равных 1,0 и меньших 1,5 и больших или равных 2,5 и меньших 3,0 соответственно при каждом из четырех сдвигов, как показано на фиг. 13(В), изображаются пиксели с координатами (1,2), (1,3), (1,2), (1,3) соответственно. В этом случае 1/4 общей информации о цвете, который должна иметь точка, участвует в процессе перезаписи лишь два раза для каждого пикселя с координагами (1,2) и (1,3); если, например, яркость изображения оценена 8 битами и точка (X, Y) должна иметь максимальную яркость, значение которой равно 255, то тогда яркость каждого пикселя с координатами (1,2), (1,3) будет так же, как и в случае, показанном на фиг.13(Б), равна 128.
Наконец, при координатах Х и Y точки (X, Y), больших или равных 1,0 и меньших 1,5 и больших или равных 2,0 и меньших 2,5 соответственно при каждом из четырех сдвигов, как показано на фиг.13(Г), изображаются пиксели с координатами (1,2). В этом случае 1/4 общей информации о цвете, который должна иметь точка, участвует в процессе перезаписи лишь четыре раза для пикселя с координатами (1,2); если, например, яркость изображения оценена 8 битами и точка (X, Y) должна иметь максимальную яркость, значение которой равно 255, то тогда яркость пикселя с координатами (1,2) будет равна 255. Таким образом, по сравнению с рассмотренным выше случаем в этом случае первое изображение формируется с яркостью 64, и яркость пикселя, изображаемого 4 раза, будет равна 256 (= 64+64+64+64); при этом однако, поскольку максимальное значение яркости выбрано равным 255, то фактическая яркость пикселя 256 будет уменьшена до максимально заданной, 255.
Если раньше речь шла об изображении точек, то далее, со ссылками на фиг. 14(А)-14(Г), будет подробно описана процедура изображения линейных отрезков, при этом на фиг.14(А) показан результат первого сдвига отрезка, на фиг.14(Б) - второго, на фиг.14(В) - третьего, а на фиг.14(Г) - четвертого.
Начальная и конечная точки изображаемого отрезка имеют координаты (x1, y1, z1) и (x2, y2, z2) соответственно. Считается также, что начальная и конечная точки являются точками в координатной системе экрана после перспективного преобразования изображений (преобразования перспективы и проекций).
Предполагается также, что число перезаписей равняется 4, что каждый пиксель разделен по горизонтали и вертикали на 4 равные части и состоит, как показано на фиг.14, из 16 субпикселей, что ГП 115 устанавливает каждую величину сдвига (dX,dY) для выбора положения изображения в системе координат экрана для каждого из четырех изображений линейного отрезка, равную, например, (0,0, 0,0), (0,5, 0,0), (0,5, 0,5), (0,0, 0,5), что обеспечивает точность, равную двум субпикселям (в данном случае, равную 1/2 пикселя).
После задания величин сдвигов ГП 115 изображает линейный отрезок, сдвигая его положение в соответствии с заданными величинами сдвигов (dX, dY).
При первом изображении отрезка ГП 115 сдвигает начальную точку (x1, y1, z1) и конечную точку (x2, y2, z2), каждую, на величину (0,0, 0,0) и определяет с субпиксельной точностью параметры расположенных между ними точек интерполяцией координат между начальной и конечной точками, используя для этого описанный ниже метод ЦДА (цифровой дифференциальный анализ), и другую информацию, в том числе информацию о цвете отрезка в этих точках. Обозначив множество промежуточных точек, определенных с субпиксельной точностью, как точки (X1s, Y1s, Z1s). ..(Xns, Yns, Zns), получим, что информация о цвете (как указано выше - 1/4 общей информации о цвете) записывается в пиксели, которые включают субпиксели, соответствующие точкам (X1s, Y1s, Z1s)...(Xns, Yns, Zns).
Отсюда следует, в частности, что в изображаемые пиксели, включающие два или более субпикселя, соответствующие точкам с субпиксельной точностью, составляющим изображаемый линейный отрезок, вносится информация о цвете, равная среднему значению соответствующей информации о цвете для каждого субпикселя пикселя, например 1/4 часть общей информации.
При втором и последующих, вплоть до 4-го, сдвигах изображение формируется аналогичным образом, как при первом изображении, за исключением того, что величины сдвигов выбираются при этом равными (0,5, 0,0), (0,5, 0,5), (0,0, 0,5) соответственно.
Предполагается далее, что начальной и конечной точками изображаемого линейного отрезка являются точки с координатами (1,6, 1,3, z1) и (4,6, 4,3, z2) соответственно, тогда при первом изображении отрезка изображаются пиксели, лежащие в области, заштрихованной на фиг.14(А) вертикальными пунктирными линиями, при втором изображении - пиксели, лежащие в области, заштрихованной на фиг. 14(Б) горизонтальными пунктирными линиями, при изображении в третий раз - пиксели, лежащие в области, заштрихованной на фиг.14(В) наклонными пунктирными штрихами, а при изображении в четвертый - пиксели, лежащие в области, заштрихованной на фиг.14(Г) наклонными пунктирными штрихами с обратным наклоном. В результате такой процедуры перезаписей получают изображение линейного отрезка, показанное пунктирными линиями на фиг.15.
Следует заметить, что вместо варианта, показанного на фиг.14(А)-14(Г) и фиг. 15 с разделением каждого пикселя на 16 субпикселей, тот же способ перезаписи можно использовать и при разделении, как показано на фиг.16(А)-16(Г), каждого пикселя на две равные части по горизонтали и вертикали, то есть на 4 субпикселя.
На фиг. 16 (А) показан пиксель при величине сдвига dX=0,0, dY=0,0. На фиг. 16(Б) показан пиксель при величине сдвига dX=0,5, dY=0,0. На фиг.16(В) показан пиксель при величине сдвига dX=0,0, dY=0,5. На фиг.16 (Г) показан пиксель при величине сдвига dX=0,5, dY=0,5.
Таким образом, при координатах начальной и конечной точек изображаемого линейного отрезка (1,6, 1,3, z1) и (4,6, 4,3, z2) соответственно и при четырехкратной, как и ранее, перезаписи изображения, когда в качестве значений сдвигов (dX, dY) изображаемых положений в системе координат экрана выбраны величины (0,0, 0,0), (0,5, 0,0), (0,0, 0,5), (0,5, 0,5) с субпиксельной точностью (равной в данном случае 1/2 пикселя), то при первом сдвиге изображаются пиксели, расположенные в области, заштрихованной на фиг.16(А) вертикальными пунктирными линиями, при втором сдвиге - пиксели, расположенные в области, заштрихованной на фиг.16(Б) горизонтальными пунктирными линиями, при третьем сдвиге - пиксели, расположенные в области, заштрихованной на фиг. 16(В) наклонными пунктирными линиями, при четвертом сдвиге - пиксели, расположенные в области, заштрихованной на фиг.16(Г) наклонными пунктирными линиями с обратным наклоном.
При этом в изображаемые пиксели, состоящие из одного или нескольких субпикселей, соответствующих точкам с субпиксельной точностью, из которых формируется изображаемый линейный отрезок, вносится информация о цвете, равная среднему значению соответствующей информации о цвете для каждого субпикселя, включенного в пиксель, которое, например, составляет 1/4 часть от общей информации о цвете изображения.
В результате перезаписи изображения линейного отрезка описанным выше способом получают изображение отрезка, показанное пунктирными линиями на фиг.17(А).
Показанная на фиг. 17(А) прямая линия, полученная в результате четырехкратной перезаписи изображений, позволяет сделать вывод о том, что такой способ создания изображений позволяет уменьшить влияние наложения спектров на качество изображения. На этом чертеже показаны пиксели, формирующие изображаемую линию и полученные в результате обработки составляющих их субпикселей по методу ЦДА.
В отличие от этого при однократном получении изображения отрезка прямой он будет иметь вид наклонных линий, показанный на фиг.17(Б). Из сравнения фиг. 17(А) и 17(Б) видно, что перезапись изображения уменьшает влияние наложения спектров на качество полученного изображения.
Ниже со ссылками на блок-схему, показанную на фиг.18, описан процесс создания изображения полигона в основном блоке 2 видеоигрового устройства. При этом предполагается, что необходимые для изображения полигона данные, включая информацию о его форме и освещенности, уже считаны главным процессором ЦП 111 из КД-ПЗУ 51 и хранятся в основной памяти 112.
В процессе изображения полигона на первом шаге S1 главный процессор ЦП 111 считывает с основной шины 101 данные, необходимые для изображения полигонов, включающие один кадр трехмерного изображения, и передает их ГмП 117. ГмП 117 на шаге S2 производит геометрические преобразования каждого полигона в трехмерном пространстве с учетом известной точки наблюдения, а затем полученные результаты подвергаются перспективному преобразованию. При этом точка наблюдения определяется, например, расположением глаз пользователя, управляющего операционным устройством 17 (фиг.1).
После этого на шаге S3 в главном процессоре ЦП 111 путем вычисления яркости и текстуры адресов прошедших перспективное преобразование полигонов определяются цветовые данные полигонов в системе координат экрана, после чего эти данные через основную шину 101 передаются ГП 115.
В рассматриваемом случае к полигонным данным относятся, например, X, Y, Z, R, G, В, α, S, Т, Q, F.
В полигонных данных X, Y, Z, R, G, В, α, S, Т, Q величины X, Y, Z соответственно означают координаты X, Y, Z каждой из трех вершин треугольного полигона, а R, G, В означают величины яркости для красного, зеленого и голубого цветов соответственно для каждой из трех вершин данного полигона.
Кроме того, α является коэффициентом смешивания, равным отношению значений R, G, B цветов пикселя, который требуется изобразить, и цветов уже изображенного пикселя (если такое α-смешивание требуется). Величина α представляет собой действительное число, большее или равное 0 и меньшее или равное 1; и если обозначить значение цвета пикселя (значение RBG), который требуется изобразить, через Fc, а пикселя, уже изображенного ранее, через Вc, то значение цвета пикселя, получаемое в результате α-смешивания, обозначенное через Сc, определяется следующим уравнением
Cc=αFc+(1-α)Вc.
S, Т, Q представляют собой координаты текстуры (однородные координаты текстуры) в каждой из трех вершин треугольного полигона. При этом рисунок (текстура) наносится на поверхность объекта с помощью текстурного отображения с использованием заданных значений S, Т, Q. Величина, получаемая перемножением S/Q, T/Q соответственно на размер текстуры становится адресом текстуры.
F является показателем завуалирования экрана и зависит от степени завуалированности изображения в том случае, когда и изображаемый пиксель должен быть завуалирован, причем чем выше эта величина, тем более завуалированным изображается пиксель.
После определения полигонных данных программа переходит к шагу S4, на котором главный процессор ЦП 111 оценивает время изображения одного кадра. При этом по количеству полигонов, данные которых были считаны на шаге S1 и которые изображаются в одном кадре, главный процессор ЦП 111 оценивает время, необходимое для изображения одного кадра, например один раз. Затем на шаге S5 главный процессор ЦП 111 с учетом оцененного на шаге S4 времени, необходимого для изображения одного кадра, определяет количество N перезаписей и через основную шину 101 передает его ГП 115.
В случаях, рассмотренных на фиг. от 7(А)-7(Г) до 17(А)-17(Б), число перезаписей равно фиксированному значению (4), однако при фиксированном количестве перезаписей процесс изображения может при слишком большом числе составляющих кадр полигонов не закончиться в течение времени, отведенного на изображение одного кадра, и может неожиданно прерваться. С другой стороны, если пренебречь динамическим диапазоном значений цвета RBG и субпиксельной точностью сдвига изображений, то чем больше будет количество перезаписей, тем выше будет разрешение у полученного изображения. Поэтому в данном варианте изобретения количество N перезаписей определяется адаптивно на основе количества времени, необходимого для создания изображения одного кадра, и перезапись проводится столько раз, сколько возможно при нормальной, без сбоев, работе аппаратуры (в данном случае при сохранении необходимой скорости изменения кадров).
Однако, если количество полигонов в кадре ограничено, то количество перезаписей можно сделать фиксированным и гарантирующим отсутствие сбоя в работе аппаратуры. Теоретически максимальный эффект от перезаписи, проявляющийся в улучшении качества изображения, достигается в том случае, когда количество перезаписей равно числу субпикселей в пикселе; при этом дальнейшее увеличение количества перезаписей никакого дополнительного эффекта не дает. Поэтому, даже в том случае, когда возможности аппаратуры достаточны для ее нормальной работы без сбоев при количестве перезаписей больше числа субпикселей в пикселе, все равно желательно для экономии времени ограничить количество перезаписей количеством субпикселей в пикселе. В связи с этим, даже при адаптивном определении количества перезаписей, желательно, чтобы они никогда не превышали количество субпикселей, из которых состоит пиксель.
После определения количества N перезаписей программа переходит к шагу S6, на котором главный процессор ЦП 111 задает величины сдвигов (dX, dY) для каждой из N перезаписей и передает их ГП 115. Желательно, чтобы точность задания величин сдвигов была равна или выше субпиксельной точности и ниже точности пикселя.
После получения ГП 115 от ЦП 111 полигонных данных для одного кадра (см. выше), а также количества N перезаписей и величин сдвигов (dX, dY) для каждой перезаписи выполняется шаг S7 Z-сортировки, заключающийся в сортировке составляющих кадр полигонов в порядке их глубины в направлении наблюдения. Подробности Z-сортировки описаны, в частности, в находящейся в настоящее время на рассмотрении патентной заявке Н7-114654 (1995).
Затем на шаге S8 ГП 115 очищает буфер 141 кадров до, например, 0, после чего переходит на шаг S9 и инициализирует переменную n, которая считает количество изображений, устанавливая ее, равной начальному значению, например, 1. После этого, переходя на шаг S10, ГП 115 корректирует величины сдвигов, используемые для изображения каждого полигона в n раз, на основе информации о движении кадра.
В рассматриваемом случае полигонные данные включают, кроме вышеупомянутых, еще векторы движения полигона. Предположив, что вектор движения данного полигона равен (vx, vy) и что величина сдвига, используемая для изображения полигона в n-й раз равняется (dXn, dYn), получим, что после коррекции величина сдвига (dXn, dYn) становится равной (dXn+vx/N, dYn+vy/N). При изображении с такой корректировкой значений сдвигов можно создать эффект размытости, обусловленный движением кадров.
После коррекции величин сдвигов программа переходит к шагу S11, на котором ГП 115 сдвигает координаты вершин каждого полигона на скорректированные величины, а затем - к шагу S12. На шаге S12 в ГП 115 происходит инициализация Z-буфера до значения, равного, например, +∞ (при этом считается, что величина Z возрастает с увеличением глубины расположения на экране изображаемой точки), после чего программа переходит к шагу S13. На шаге S13 координаты вершин полигона подвергаются субпиксельной коррекции, после чего значения RGB и другие параметры субпикселей, определяющие границы и внутренние области полигонов, рассчитываются с субпиксельной точностью выполнением арифметических действий методом ЦДА.
Выполнение арифметических операций методом ЦДА означает выполнение арифметических операций, при которых все параметры (RGB и т.п.) пикселей, определяющих линейный отрезок, соединяющий две точки, находятся методом линейной интерполяции двух значений. Если одну из точек принять за начальную, а другую - за конечную, и обеим этим точкам присвоить некоторые значения, то коэффициент пропорциональности (отношение), необходимый для определения значений параметров точек, лежащих между ними, равняется частному от деления разности значений в начальной и конечной точках на число пикселей, лежащих между ними, а значения параметров каждого пикселя, который расположен между начальной и конечной точками, определяются последовательными прибавлениями (интегрированием) этого значения к значениям начальной точки при последовательном движении пикселя к конечной точке.
Например, если пиксели р1, р2, р3 представляют собой три вершины треугольного полигона, то арифметические операции методом ЦДА проводятся с субпиксельной точностью по отношению к субпикселям р1 и р2, р2 и р3 и р1 и р3, при выборе в качестве переменных координаты X, Y и определении значений Z, R, G, В, α, S, Т, Q субпикселей, расположенных вдоль трех границ полигона, и значении параметров Z, R, G, В, α, S, Т, Q субпикселей, расположенных внутри полигона.
На шаге S14 в ГП 115 происходит процесс перезаписи, при котором значения RGB пикселей, определяющих полигон, переписываются в буфер 141 кадров с использованием Z-буфера 142.
Окончательные значения RGB, записываемые в буфер кадров 141 на шаге S14, определяются ГП 115 следующим образом.
ГП 115, в частности, выполняет текстурное отображение на основе полигонных данных X, Y, Z, R, G, В, α, S, Т, Q для субпикселей, определяющих полигон и полученных в результате арифметических операций по методу ЦДА. При этом ГП 115 вычисляет адрес текстуры U(S/Q), V(T/Q), разделив, например, S и Т на Q, и после необходимой фильтрации вычисляет цвет текстуры в точках с координатами X, Y для каждого субпикселя. Иначе говоря, ГП 115 считывает из памяти 143 текстур необходимые данные (цветовые данные текстуры), соответствующие адресу текстуры U, V. Кроме того, в ГП 115 происходит необходимая фильтрация значений RGB, являющихся данными текстур, и значений RGB, являющихся результатами выполнения арифметических действий по методу ЦДА; при этом ГП 115 смешивает, например, два цвета в заранее установленной пропорции, преобразует заранее заданный цвет в соответствии со значением показателя F завуалированности и окончательно вычисляет значения RGB для каждого составляющего полигон пикселя.
На шаге S14 определенные описанным выше способом значения RGB записываются в буфер 141 кадров.
Как правило, запись в буфер 141 кадров производится в определенной последовательности, начиная от ближайшего к точке наблюдения до самого далекого полигона после их Z-сортировки на шаге S7 в соответствии с их глубиной в направлении наблюдения. Причина этого рассмотрена ниже.
Если изображаемый пиксель состоит только из одного субпикселя, то значения RGB этого субпикселя записываются в адрес буфера 141 кадров, соответствующий пикселю, который включает этот субпиксель, если же пиксель состоит из нескольких субпикселей, то в адрес записывается значение RGB для всех субпикселей, например их среднее значение.
После окончания на шаге S14 перезаписи значений RGB для одного кадра в буфер 141 кадров программа переходит к шагу S15, на котором определяется, является ли переменная n большим числом, чем количество N перезаписей, и в случае, если n меньше N, программа переходит к шагу S16, на котором к n прибавляется 1, и процедура возвращается к шагу S10. Затем, на шаге S10 ГП 115 корректирует на основе данных о движении полигона величины сдвигов, используемые для n-кратного изображения полигона, и после этого шаги S10-S16 повторяются до тех пор, пока на шаге S15 не будет определено, что n больше N. Таким способом осуществляется процесс перезаписи изображений.
С другой стороны, если на шаге S15 окажется, что переменная n больше N, то есть что для одного кадра было сделано N перезаписей, то ГП 115 считывает значения RGB для одного кадра, хранящегося в буфере 141 кадров, и выводит их на экран, после чего программа возвращается к шагу S1. На шаге S1 главный процессор ЦП 111 считывает из основной памяти 112 через основную шину 101 данные для изображения полигонов, образующих трехмерное изображение следующего кадра, после чего процесс повторяется, создавая таким образом движущееся изображение.
Запись данных в буфер 141 кадров происходит, как указывалось выше, в определенной последовательности, начиная от ближайшего к точке наблюдения до самого далекого полигона после их Z-сортировки по их глубине в направлении наблюдения; обусловлено это тем, что, как указано выше, запись значений RGB в буфер 141 кадров осуществляется путем перезаписи и их суммирования с данными, ранее записанными в буфер 141 кадров.
Далее рассматривается ситуация, показанная на фиг.19(А), когда кадр С, включающий полигоны А и В, уже был записан в буфер 141 кадров, а следующий кадр С, состоящий из полигонов А и В, переписывается в находящийся в таком состоянии буфер 141 кадров. Предполагается, кроме того, что полигон А находится на большей глубине, чем полигон В, и что оба полигона частично перекрываются.
В этом случае, поскольку Z-буфер 142 на шаге S12 перед процессом перезаписи на шаге S14 очищается (см. блок-схему фиг.18), то после записи всего кадра С в буфер 141 кадров Z-буфер 142 будет находиться в состоянии, в котором значение бесконечно большой глубины изображения (максимальной глубины) записывается, как показано на фиг.19(Б), в виде значения Z.
Рассматриваются теперь два полигона А и В и предполагается, что полигон В, расположенный дальше от наблюдателя, чем полигон А, записывается первым; тогда при изображении полигона В значение Z, записанное в Z-буфере 142, будет бесконечно большим и поэтому при изображении полигона В с использованием Z-буфера 142, то есть при суммировании значений RGB полигона В со значениями RGB, уже хранящимися в буфере 141 кадров, переписываться будет и часть полигона В, принадлежащая кадру С, уже находящемуся в буфере 141 - см. фиг. 20(А). В этом случае значение Z полигона В записывается в ту часть Z-буфера 142, которую занимает полигон В.
Если затем в буфер 141 кадров записывается с использованием Z-буфера 142 полигон А, то благодаря наличию Z-буфера 142 полигон А, который лежит в стороне от полигона В, будет полностью записан в буфер 141 кадров. При этом все значения RGB полигона В складываются с уже хранящимися в буфере 141 кадров значениями RGB. В результате при изображении полигона В будут изображаться и перекрывающие друг друга части полигонов А и В (заштрихованы на фиг.20), хотя фактически следовало бы изображать только полигон А.
Если перезапись изображений осуществляется описанным выше способом (при котором значения RGB полигона складываются со значениями RGB, ранее записанными в буфер 141 кадров), то в случае, когда полигон, расположенный дальше от наблюдателя, изображается раньше полигона, расположенного ближе к наблюдателю, их перекрывающие друг друга части изображаются в процессе изображения полигона, расположенного дальше от наблюдателя, и полигон, расположенный дальше от наблюдателя, поверхности которого должны быть скрыты поверхностями ближнего к наблюдателю полигона, остается видимым.
Для устранения этого недостатка и скрытия в изображении поверхности, которая должна быть невидимой, предлагается решение, показанное на фиг.18, при котором изображение полигонов проводится после их Z-сортировки по глубине в определенной последовательности, начиная с ближайшего от наблюдателя полигона.
В этом случае для рассмотренных выше двух полигонов А и В первым записывается полигон А, расположенный ближе к наблюдателю, и только после этого записывается полигон В, расположенный дальше от наблюдателя. При этом во время изображения полигона А значение Z, записанное в Z-буфере 142, выражается бесконечно большой величиной, и поэтому при изображении полигона А с использованием Z-буфера 142, то есть суммировании значений RGB полигона А и значений RGB, уже хранящихся в буфере 141 кадров, переписывается часть полигона А, принадлежащая кадру С, уже находящемуся в буфере 141. В этом случае значение Z полигона А записывается в ту часть Z-буфера 142, которую занимает полигон А.
Если затем в буфер 141 кадров записывается с использованием Z-буфера 142 полигон В, расположенный дальше от наблюдателя, чем полигон А, то наличие Z-буфера 142 предотвращает перезапись той части полигона В, которая закрыта полигоном А, и, следовательно, в буфере 141 кадров переписывается только та часть полигона В, которая не закрыта полигоном А, а та часть полигона В, которая закрыта полигоном А, в этом буфере не отображается (не показано). В результате при изображении имеющих общую область полигонов А и В изображается только ближайший к наблюдателю полигон А, и всякое изображение скрытого им полигона В полностью исключается. Таким образом осуществляется гарантия того, что скрытые поверхности полигонов никогда изображаться не будут.
Наряду с этим во избежание изображения скрытой поверхности в процессе перезаписи, кроме описанного выше способа, основанного на использовании сочетания Z-сортировки и Z-буфера 142, можно использовать другой специально предназначенный для этого буфер (называемый ниже для удобства вторым буфером кадров) такого же типа, как буфер 141 кадров. При этом вполне достаточно, используя Z-буфер 142, передать данные второму буферу кадров и переписать данные из второго буфера кадров в буфер 141 кадров. В этом случае выполнение Z-сортировки не является необходимой процедурой, но при этом второй буфер кадров должен иметь такую же емкость, как буфер 141 кадров.
Кроме того, сочетание Z-сортировки и Z-буфера 142 можно, помимо выполнения перезаписи, использовать также и для создания естественных визуальных эффектов в тех случаях, когда изображение создается с использованием α смешивания, например при изображении полупрозрачного полигона или изображении тени (изображение полупрозрачных полигонов с использованием сочетания Z-сортировки и Z-буфера описано, в частности, в заявке на патент Н8-158145 (1996), поданной ранее заявителями по настоящей заявке). Однако процедуры с использованием сочетания Z-сортировки и Z-буфера разные для случаев скрытия невидимых линий или изображения полупрозрачных полигонов и каждый из этих случаев требует использования отдельного алгоритма.
Далее рассматривается показанная на фиг.22 блок-схема, на которой подробно объясняется процесс перезаписи, выполняемый на шаге S14. Для простоты объяснений опускается рассмотрение всей процедуры, связанной с разбиением пикселей на субпиксели и считается, что значения Z и RGB цвета пикселей уже известны. Обозначены: через р(х, y) пиксель, расстояние которого от левого края экрана равно х, а от нижнего - y, через Z(x, y) - значение Z этого пикселя р(х, y) и через depth(x, y) - значение глубины, которое заложено в память Z-буфера 142 и соответствует пикселю р(х, y). Кроме того, через n(х, y) обозначено значение яркости, которое записано в ячейку буфера 141 кадров, соответствующую положению пикселя р(х, y).
В процессе перезаписи сначала на шаге S21 из всех пикселей, которые образуют изображаемый в данный момент кадр, выбирается упомянутый выше пиксель р(х, y) и определяется, является ли значение Z величины Z(x,y) меньшим или равным значению depth (х, y), которое хранится в Z-буфере 142. Если на шаге S21 окажется, что значение Z величины Z(x, y) равно или больше хранящегося в буфере значения depth (х, y), то есть что существует полигон, расположенный к точке наблюдения ближе, чем полигон, включающий выбранный пиксель р(х, y), но еще не записанный в буфер 141 кадров, то процедура возвращается к шагу S21 и объектом дальнейшего анализа становится новый пиксель, в отношении которого повторяется описанная выше процедура.
Если же на шаге S21 окажется, что значение Z величины Z(x, y) меньше или равно значению depth (х, y), то процедура переходит к шагу S22, на котором осуществляется процесс уменьшения яркости. Если обозначить значение яркости RGB выбранного для анализа пикселя р(х, y) через М(х, y) и разделить М(х, y) на количество N перезаписей, то частное от такого деления (с отброшенной десятичной частью), обозначенное как m (x, y), будет являться показателем яркости пикселя в процессе его перезаписи.
Если обозначить наибольшее целое число, меньшее или равное частному от деления х/y, через INT [х/y], то вычисления, проводимые в процессе уменьшения яркости, определяются формулой m(х, y) = INT[M(x, y)/N].
При целом числе M(x, y)/N никаких проблем с яркостью пикселя не возникает, но при наличии в нем дробной части происходит уменьшение яркости пикселя. То есть если, например, максимальное значение яркости принять равным 255 и если пиксель с такой максимальной яркостью 4 раза переписывается, то значение яркости при каждой перезаписи оказывается равным 63 (= INT( 255/4)). Очевидно, что даже при четырехкратной перезаписи пикселя с яркостью, равной 63, в итоге пиксель будет иметь яркость, равную только 252, что меньше начального значения яркости, равного 255.
Если число, полученное при умножении N на величину INT[M(x, y)/N], окажется из-за уменьшения яркости меньше первоначального значения RGB яркости М(х, y), то значение переписываемой величины яркости RGB m(x,y) может быть определено суммой заранее заданной поправки D и значения INT[M(x, y)/N] .
Поправка D выбирается так, чтобы сумма, полученная при ее сложении с величиной INT[M(x, y)/N], умноженная на N, была бы больше или равна первоначальному значению яркости RGB M(x, y). В частности, если, как описано выше, создаваемое изображение должно иметь максимальную яркость, равную 255 единицам, и пиксель переписывается 4 раза, то величина поправки D принимается равной 1. В этом случае величина яркости при каждой перезаписи становится равной 64 (= 63+1) и при четырех перезаписях конечная яркость будет равна 256. При величине максимальной яркости, равной 255, значение, превышающее ее, снижается до максимального значения, равного 255.
После окончания процесса уменьшения яркости на шаге S23 из буфера 141 кадров считывается хранящееся в нем значение яркости n(х, y), соответствующее анализируемому пикселю р(х, y), и затем процедура переходит к шагу S24, на котором происходит перезапись изображения с добавлением к этому значению величины яркости RGB m(x, y), полученной после снижения яркости. Полученный в итоге результат сложения обозначается как v(x, y).
На шаге S25 результат сложения на шаге S24, то есть величина v(x, y), переписывается в ячейку буфера 141 кадров, в которой хранится n(х, y) (ячейку, соответствующую анализируемому пикселю р(х, y)). При следующем изображении пикселя р(х, y) из буфера считывается значение v(x, y), которое заменяет в буфере ранее записанное в него значение n(х, y).
Кроме того, на шаге S25 записанное в Z-буфер 142 значение depth (x, y) переписывается на значение Z величины Z(x, y), и процедура затем переходит к шагу S26, на котором определяется, все ли пиксели, образующие изображаемый кадр, были проанализированы и соответствующим образом переписаны. На шаге S26, если окажется, что не все пиксели, образующие изображаемый кадр, были проанализированы и переписаны, процедура возвращается к шагу S21, на котором происходит обработка пикселя, который до этого еще не анализировался; после этого весь описанный выше процесс повторяется.
Если, напротив, на шаге S26 окажется, что все пиксели, образующие изображаемый кадр, уже были проанализированы и переписаны, то на этом вся эта часть программы заканчивается.
В рассматриваемом случае процесс сокращения яркости может быть выполнен с использованием α смешивания. То есть значение m(х, y) можно определить подстановкой в формулу для вычисления m(x, y) =INT[αxM(x, y)] вместо величины 1/N коэффициента смешивания α. При этом значение коэффициента смешивания α, равное 1, соответствует, в частности, величине, равной 128 (=27), что следует из формулы α=А-->7, в которой А - целое число в диапазоне 0-128, а А-->7 означает сдвиг А вправо на 7 битов.
В этом случае для создания изображения с максимальной яркостью, равной 255, путем четырехкратной перезаписи (см. выше) достаточно принять А равным 32, то есть 1/4 от 128, и использовать для расчетов формулу m(x, y) = INT[αxM(x, y)].
Но даже и в этом случае, так же как и в описанных выше, иногда может произойти уменьшение яркости. То есть при максимальной яркости, равной 255, и четырехкратной перезаписи, если принять величину А равной 32, что соответствует 1/4 от 128, и применить формулу m(x, y) = INT[αxM(x,y)], то значение m(х, y) окажется равным 63 (=INT[(α255x32)-->7]), и даже при четырехкратной перезаписи изображения с яркостью 63 в результате получится изображение с яркостью, равной только 252, что меньше начального значения яркости, равного 255.
Поэтому, если величина произведения N на INT[αxM(x, y)] оказывается меньше начального RGB значения яркости М(х, y), то А корректируется таким образом, чтобы произведение N на INT[αxM(x, y)] стало больше или равно начальному RGB значению яркости М(х, y). Для этого, в частности, достаточно скорректировать значение А, увеличив его до 33, что на единицу больше 32, соответствующих 1/4 от 128. В этом случае значение яркости для однократно получаемого изображения будет равно 65 (=INT[(255•33)-->7]), и при четырехкратной перезаписи изображения с яркостью, равной 65, получится изображение с яркостью, равной 260. Поскольку это значение превышает максимальное значение яркости (255), оно соответствующим образом уменьшается до величины максимального значения, 255.
Как уже было указано выше, изображение переписывается путем выбора множества величин сдвигов для сдвига с точностью выше одного пикселя положения изображения при значении RGB пикселей в соответствующие определяемые величиной сдвига места буфера 141 кадров, что обеспечивает эффективное снижение влияния наложения спектров на качество изображения даже без использования высокоскоростного и имеющего большую емкость буфера кадров или Z-буфера.
Эффективное снижение влияния наложения спектров на качество изображения, достигаемое описанным выше способом перезаписи изображений, относится не только к краям полигонов, но также и к их внутренним областям и к тем участкам изображения, где трехмерные тела пересекают друг друга, что не только уменьшает зубчатость образующих границы изображения прямых линий, но и улучшает качество изображения в целом.
Возможность придания подвижным изображениям эффекта размытости позволяет плавно, без какого-либо мерцания создавать изображение подвижных объектов.
В приведенном выше описании настоящего изобретения было рассмотрено его применение в аппаратуре для видеоигр, однако изобретение может также найти применение в эффекторах, воспроизводящих изображения специальных эффектов, или в системах автоматического проектирования и других устройствах, где осуществляются процессы компьютерной графики. Кроме того, настоящее изобретение может также найти применение в записывающих и воспроизводящих устройствах или передающих устройствах, которые кодируют созданные в естественных условиях изображения, полученные, например, видеокамерой, и которые записывают и воспроизводят или передают и принимают такие изображения.
При этом, если полученные видеокамерой изображения в дальнейшем кодируются, то есть представляются полигонами, то при последующем их воспроизведении настоящее изобретение позволяет получить высокое качество такого рода изображений, снятых на видеокамеру в естественных условиях.
Помимо рассмотренного выше варианта, когда изображения создавались в виде кадров, возможен и другой вариант с использованием для создания изображений не кадров, а полукадров.
Настоящее изобретение может использоваться для изображения как подвижных, так и неподвижных изображений.
В рассмотренном выше варианте изобретения речь шла об изображении трехмерных объектов, хотя фактически изобретение относится и к изображению двухмерных объектов.
Величина сдвига, о которой идет речь в настоящем изобретении, не ограничивается субпиксельной точностью и может быть как выше, так и ниже ее.
Кроме того, в рассмотренном варианте изобретения компьютерная программа, обеспечивающая выполнение вышеописанного процесса создания изображений, была записана на КД-ПЗУ 51. Однако для этой цели вместо записи программы на КД-ПЗУ 51 можно использовать оптомагнитный диск или другие записывающие устройства, например Интернет, спутниковую систему или другие способы передачи информации.
Процесс создания изображения не обязательно должен выглядеть в виде определенной выполняемой компьютером программы, в принципе его можно реализовать и на специально разработанной для этого аппаратуре.
Помимо рассмотренного выше варианта, когда трехмерные изображения воспроизводились на экране монитора, изобретение может быть использовано и в других случаях, таких как печать трехмерных изображений на принтере (двухмерном устройстве вывода).
Вместо рассмотренного выше варианта, когда изображение одного кадра получали сдвигом изображения в двух направлениях Х и Y, возможен также и другой вариант со сдвигом изображения только в одном из этих направлений. То есть возможен вариант, при котором величины сдвигов (dX, dY) задаются равными, например, (0,0, -0,2), (0,0, -0,1), (0,0, 0,1), (0,0, 0,2).
Кроме того, величины сдвигов (dX, dY) можно заранее задать разными для каждой перезаписи.
Как уже было отмечено выше, увеличение количества перезаписей повышает качество изображения, однако при увеличении количества перезаписей из-за уменьшения яркости число бит, соответствующих RGB значению яркости при одной перезаписи, уменьшается, что отрицательно сказывается на градации яркости в создаваемом изображении. Поэтому желательно, чтобы количество перезаписей выбиралось не только с учетом разрешения создаваемого изображения, но и с учетом его шкалы яркости.
В предлагаемых в настоящем изобретении устройстве и способе задается множество величин сдвигов для сдвига положения изображения с точностью выше одного пикселя при записи данных пикселей в устройство запоминания данных пикселей и осуществляется перезапись изображений путем записи данных пикселей в те места устройства запоминания данных пикселей, которые соответствуют множеству заданных величин сдвигов. Кроме того, в настоящем изобретении предлагается распространяемый носитель информации, в котором записана компьютерная программа для перезаписи изображений путем задания множества величин сдвигов для сдвига с точностью выше одного пикселя положения изображения при записи данных пикселей в те места устройства запоминания данных пикселей, которые соответствуют множеству заданных величин сдвигов. Таким образом, становится возможным уменьшить воздействие эффекта наложения в процессе создания изображений.
Промышленная применимость
Как уже было отмечено выше, устройство и способ создания изображений и распространяемый носитель информации, предлагаемые в настоящем изобретении, могут использоваться, например, в трехмерных графических компьютерах, являющихся использующими компьютер устройствами для создания изображений трехмерных объектов, или в устройствах для получения специальных эффектов (эффекторах), аппаратуре для видеоигр и т.п., и позволяют уменьшить влияние наложения спектров на качество изображения не только на края, но и внутри полигонов, а также в тех местах изображения, где трехмерные тела пересекают друг друга, что не только уменьшает зубчатость ограничивающих изображение прямых линий, но и улучшает качество изображения в целом. Таким образом, настоящее изобретение может использоваться для создания высококачественных изображений.
Изобретение относится к устройствам и способам создания изображений. Его применение позволяет получить технический результат в виде уменьшения потерь качества изображения, вызываемого наложением спектров. Этот результат достигается благодаря тому, что задается множество величин сдвига с точностью выше одного пикселя положения изображения на основе записанных в буфер кадров параметров цвета (R, G, В) пикселей в определенные места буфера кадров, после чего производится перезапись данных пикселей в те места запоминающего устройства, которые соответствуют множеству величин сдвигов. 3 с. и 82 з.п.ф-лы, 41 ил.
УСТРОЙСТВО ДИСПЛЕЯ ПОДВИЖНОГО ИЗОБРАЖЕНИЯ И ВНЕШНЕЕ ЗАПОМИНАЮЩЕЕ УСТРОЙСТВО, ИСПОЛЬЗУЕМОЕ ДЛЯ НЕГО | 1991 |
|
RU2106012C1 |
СПОСОБ КОДИРОВАНИЯ-ДЕКОДИРОВАНИЯ ИЗОБРАЖЕНИЙ И УСТРОЙСТВО ДЛЯ ЕГО ОСУЩЕСТВЛЕНИЯ | 1995 |
|
RU2093968C1 |
Способ приготовления сернистого красителя защитного цвета | 1915 |
|
SU63A1 |
Очаг для массовой варки пищи, выпечки хлеба и кипячения воды | 1921 |
|
SU4A1 |
Разборный с внутренней печью кипятильник | 1922 |
|
SU9A1 |
Авторы
Даты
2003-09-27—Публикация
1999-03-31—Подача