графический конвейер и способ, имеющий раннее обнаружение глубины

Классы МПК:G06T1/20 архитектура процессора; конфигурация процессора, например конвейерная обработка
Автор(ы):, , , , , ,
Патентообладатель(и):КВЭЛКОММ ИНКОРПОРЕЙТЕД (US)
Приоритеты:
подача заявки:
2005-03-02
публикация патента:

Изобретение относится к графическим процессорам. Техническим результатом является снижение потребляемой пропускной способности и потребляемой мощности. Технический результат достигается тем, что графический конвейер включает в себя множество последовательно расположенных стадий обработки, на которых визуализируются данные пикселей отображения из входных данных элементарных объектов. Стадии обработки включают в себя по меньшей мере стадию текстурирования и стадию тестирования глубины, и стадия тестирования глубины может быть расположена раньше в графическом конвейере, чем стадия текстурирования. 2 н. и 14 з.п. ф-лы, 5 ил. графический конвейер и способ, имеющий раннее обнаружение глубины, патент № 2325699

графический конвейер и способ, имеющий раннее обнаружение глубины, патент № 2325699 графический конвейер и способ, имеющий раннее обнаружение глубины, патент № 2325699 графический конвейер и способ, имеющий раннее обнаружение глубины, патент № 2325699 графический конвейер и способ, имеющий раннее обнаружение глубины, патент № 2325699 графический конвейер и способ, имеющий раннее обнаружение глубины, патент № 2325699

Формула изобретения

1. Графический конвейер для обработки данных пикселей, содержащий множество последовательно расположенных стадий обработки, которые визуализируют данные пикселей отображения из входных данных элементарных объектов, в котором стадии обработки включают в себя по меньшей мере стадию текстурирования, стадию альфа-тестирования и стадию тестирования глубины, в котором конвейер динамически переупорядочивается между по меньшей мере первой и второй последовательностями стадий в соответствии с состоянием альфа-тестирования обрабатываемых данных пикселей, в котором в первой последовательности стадий соответствующих запрещенному состоянию альфа-тестирования, стадия тестирования глубины функционально расположена раньше в графическом конвейере, чем стадия текстурирования, и в котором во второй последовательности стадий соответствующих разрешенному состоянию альфа-тестирования, множество последовательно расположенных стадий обработки включают в себя две стадии тестирования глубины, причем первая стадия тестирования глубины функционально расположена раньше в графическом конвейере, чем стадия текстурирования, и причем вторая стадия тестирования глубины функционально расположена после стадии текстурирования и стадии альфа-тестирования.

2. Графический конвейер по п.1, дополнительно содержащий буфер глубины, который сохраняет величины глубины, полученные стадией тестирования глубины, в котором стадия альфа-тестирования расположена после стадии текстурирования, и в котором сохранение величин глубины в буфере глубины временно задерживается под управлением стадии альфа-тестирования.

3. Графический конвейер по п.1, дополнительно содержащий множество мультиплексоров, оперативно подсоединенных между стадиями обработки конвейера и управляемых в соответствии с состоянием альфа-тестирования обрабатываемых данных пикселей.

4. Графический конвейер по п.3, в котором множество мультиплексоров содержит первый мультиплексор, который применяет выходной сигнал от предыдущей конвейерной стадии к стадии тестирования глубины, когда состояние альфа-тестирования является запрещенным, и который применяет выходной сигнал со стадии альфа-тестирования к стадии тестирования глубины, когда состояние альфа-тестирования является разрешенным, второй мультиплексор, который применяет выходной сигнал со стадии тестирования глубины к стадии текстурирования, когда состояние альфа-тестирования является запрещенным, и который применяет выходной сигнал от предыдущей конвейерной стадии к стадии текстурирования, когда состояние альфа-тестирования является разрешенным, и третий мультиплексор, который применяет выходной сигнал от стадии текстурирования к последующей стадии, когда состояние альфа-тестирования является запрещенным, и который применяет выходной сигнал со стадии тестирования глубины к последующей стадии, когда состояние альфа-тестирования является разрешенным.

5. Графический конвейер по п.4, в котором предыдущая стадия представляет собой стадию тестирования отсечения.

6. Графический конвейер по п.5, в котором последующая стадия представляет собой стадию альфа-сопряжения.

7. Графический конвейер по п.1, в котором стадия текстурирования содержит стадию текстурного отображения и стадию плавного сопряжения (смешивания) текстур.

8. Графический конвейер по п.1, в котором данные пикселей по меньшей мере одной стадии графического конвейера сбрасываются при переключении между первой и второй последовательностями стадий.

9. Графический конвейер для обработки данных пикселей, содержащий множество последовательно расположенных средств обработки, которые визуализируют данные пикселей отображения из входных данных элементарных объектов, в котором средства обработки включают в себя по меньшей мере средство текстурирования, средство альфа-тестирования и средство тестирования глубины, в котором конвейер динамически переупорядочивается между по меньшей мере первой и второй последовательностями стадий в соответствии с состоянием альфа-тестирования обрабатываемых данных пикселей, в котором в первой последовательности стадий соответствующих запрещенному состоянию альфа-тестирования, средство тестирования глубины функционально расположено раньше в графическом конвейере, чем средство текстурирования, и в котором во второй последовательности стадий соответствующих разрешенному состоянию альфа-тестирования, множество последовательно расположенных стадий обработки включает в себя два средства тестирования глубины, причем первое средство тестирования глубины функционально расположено раньше в графическом конвейере, чем средство текстурирования, и причем второе средство тестирования глубины функционально расположено после средства текстурирования и средства альфа-тестирования.

10. Графический конвейер по п.9, дополнительно содержащий средство сохранения величин глубины, полученных средством тестирования глубины, в котором средство альфа-тестирования расположено после средства текстурирования, и в котором сохранение величин глубины в средстве сохранения величин глубины временно задерживается под управлением средства альфа-тестирования.

11. Графический конвейер по п.9, дополнительно содержащий множество средств мультиплексирования, оперативно подсоединенных между средствами обработки конвейера и управляемых в соответствии с состоянием альфа-тестирования обрабатываемых данных пикселей.

12. Графический конвейер по п.11, в котором множество средств мультиплексирования содержит первое средство мультиплексирования, которое применяет выходной сигнал от предыдущего конвейерного средства к средству тестирования глубины, когда состояние альфа-тестирования является запрещенным, и которое применяет выходной сигнал со средства альфа-тестирования к средству тестирования глубины, когда состояние альфа-тестирования является разрешенным, второе средство мультиплексирования, которое применяет выходной сигнал со средства тестирования глубины к средству текстурирования, когда состояние альфа-тестирования является запрещенным, и которое применяет выходной сигнал от предыдущего конвейерного средства к средству текстурирования, когда состояние альфа-тестирования является разрешенным, и третье средство мультиплексирования, которое применяет выходной сигнал от средства текстурирования к последующему средству, когда состояние альфа-тестирования является запрещенным, и который применяет выходной сигнал со средства тестирования глубины к последующему средству, когда состояние альфа-тестирования является разрешенным.

13. Графический конвейер по п.12, в котором предыдущее средство представляет собой средство тестирования отсечения.

14. Графический конвейер по п.13, в котором последующее средство представляет собой средство альфа-сопряжения.

15. Графический конвейер по п.9, в котором средство текстурирования содержит средство текстурного отображения и средство плавного сопряжения (смешивания) текстур.

16. Графический конвейер по п.9, в котором данные пикселей по меньшей мере одного средства графического конвейера сбрасываются при переключении между первой и второй последовательностями средств.

Описание изобретения к патенту

Перекрестная ссылка на родственную заявку (заявки)

Испрашивается приоритет предварительной патентной заявки США № 60/550,018 от 3 марта 2004 г. и предварительной патентной заявки США № 60/550,024 от 3 марта 2004, полное содержание которых включено здесь путем ссылки.

Предшествующий уровень техники

1. Область техники, к которой относится изобретение

Настоящее изобретение относится, в общем, к графическим процессорам, и более конкретно, настоящее изобретение относится к трехмерному графическому конвейеру, в котором стадия тестирования глубины помещена в начале в конвейере, чтобы снизить до минимума потребляемую пропускную способность и/или потребляемую мощность.

2. Описание предшествующего уровня техники

Графические машины использовались для отображения трехмерных (3D) изображений на стационарных устройствах отображения, таких как компьютерные и телевизионные экраны. Эти машины обычно содержатся в настольных системах, запитываемых от обычных штепсельных розеток сети переменного тока, и таким образом, существенно не сдерживаются ограничениями потребляемой мощности. Однако последние тенденции заключаются во включении трехмерных графических машин в карманные устройства, запитываемые от аккумуляторных батарей. Примеры таких устройств включают в себя мобильные телефоны и персональные цифровые ассистенты (ПЦА). К сожалению, однако, обычные графические машины потребляют большие количества мощности и, таким образом, не подходят для этих условий эксплуатации с низким энергопотреблением.

Фиг.1 изображает схематическое представление основного конвейера растеризации Open GL (открытый графический язык), содержащегося в обычной трехмерной графической машине. Как показано, конвейер этого примера включает в себя стадию 101 настройки треугольников, стадию 102 затенения пикселей (минимальных элементов изображения), стадию 103 текстурного отображения, стадию 104 плавного сопряжения (смешивания) текстур, стадию 105 тестирования отсечения, стадию 106 альфа-тестирования, стадию 107 тестирования трафарета, стадию 108 тестирования глубины, стадию 109 альфа-сопряжения (взвешенного наложения смешиваемых цветов) и стадию 110 логических операций.

В трехмерных графических системах каждый объект, подлежащий отображению, обычно разделяется на поверхностные треугольники, определяемые информацией о вершинах, хотя могут использоваться другие элементарные формы. Также обычно графический конвейер предназначен для обработки последовательных пакетов треугольников объекта или изображения. Треугольники любого данного пакета могут визуально накладываться друг на друга в пределах данной сцены.

Что касается фиг. 1, то на ней стадия 101 настройки треугольников "настраивает" каждый пакет треугольников с помощью вычислительных коэффициентов, подлежащих использованию в вычислениях, выполняемых на более поздних конвейерных стадиях.

Стадия 102 затенения пикселей использует информацию о вершинах для вычисления того, какие пиксели охвачены каждым треугольником из обрабатываемого пакета треугольников. Поскольку треугольники могут накладываться друг на друга, многочисленные пиксели различной глубины могут быть расположены в одной и той же точке на экранном устройстве отображения. В частности, стадия 101 затенения пикселей интерполирует затенение (величину освещения), значение цвета и величину глубины для каждого пикселя, используя информацию о вершинах. Для этой цели можно выбрать любой из множества методов затенения и операции затенения могут выполняться на основании треугольников, вершин или пикселей.

Стадия 103 текстурного отображения и стадия 104 плавного сопряжения текстур действуют, чтобы добавлять и смешивать текстуры в каждом пикселе обрабатываемого пакета треугольников. В самом общем смысле, это выполняется посредством отображения предварительно определенных текстур на пиксели в соответствии с информацией о вершинах. Как и с затенением, можно выбирать множество методов, чтобы получать текстурирование. Также, может быть реализован метод, известный как обработка вуалированием (наложение тумана).

Стадия 105 тестирования отсечения действует, чтобы отбрасывать пиксели, содержащиеся в участках (фрагментах) треугольников, которые выходят за пределы поля зрения отображаемой сцены. В общем, это выполняется посредством определения, лежат ли пиксели в пределах так называемого прямоугольника отсечения.

Модуль 106 альфа-тестирования условно отбрасывает фрагмент треугольника (более точно, пиксели, содержащиеся во фрагменте) на основании сравнения между величиной альфа-фактора (величиной прозрачности), связанного с этим фрагментом, и эталонной величиной альфа-фактора. Точно так же, тестирование трафарета условно отбрасывает фрагменты на основании сравнения между каждыми фрагментами и сохраненным значением трафарета.

Стадия 108 тестирования глубины (также называемая удалением скрытой поверхности (УСП)) отбрасывает пиксели, содержащиеся во фрагментах треугольника, основываясь на величине глубины этих пикселей и величине глубины других пикселей, имеющих то же самое расположение на дисплее. В общем, это выполняется посредством сравнения использования значения по оси Z (величины глубины) пикселя, проходящего тестирование глубины, со значением по оси Z, сохраненным в соответствующем местоположении так называемого z-буфера или буфера глубины. Тестируемый пиксель отбрасывается, если его значение по оси Z указывает, что пиксель может быть блокирован от наблюдения другим пикселем, имеющим значение по оси Z, сохраненное в z-буфере. С другой стороны, значение z-буфера перезаписывается на значение по оси Z тестируемого пикселя в случае, когда тестируемый пиксель не может быть блокирован от наблюдения. При таком способе, нижележащие пиксели, которые блокированы от наблюдения, отбрасываются в пользу вышележащих пикселей.

Стадия 109 альфа-сопряжения объединяет визуализируемые пиксели с пикселями, предварительно сохраненными в цветовом буфере, на основании величин альфа-факторов, с целью достижения прозрачности объекта.

Модуль 110 логических операций в общем обозначает разнообразные остающееся процессы конвейера для получения в конечном счете данных отображения пикселей.

В любой графической системе желательно сохранять пропускную способность процессора и памяти до степени, возможной при поддержании удовлетворительной эффективности. Это особенно важно в случае переносных или карманных устройств, где пропускные способности могут быть ограничены. Также, как было предварительно предложено, имеется конкретная потребность в промышленности в снижении до минимума потребляемой мощности при обработке трехмерной графики для отображения на переносных или карманных устройствах.

Сущность изобретения

В соответствии с одним аспектом настоящего изобретения обеспечен графический конвейер для обработки данных пикселей, и он включает в себя множество последовательно выполняемых стадий обработки, посредством которых визуализируют данные пикселей отображения из входных данных элементарных объектов, где стадии обработки включают в себя по меньшей мере стадию текстурирования и стадию тестирования глубины, и в котором стадия тестирования глубины расположена раньше в графическом конвейере, чем стадия текстурирования.

В соответствии с другим аспектом настоящего изобретения обеспечен графический конвейер для обработки данных пикселей, и он включает в себя множество последовательно выполняемых стадий обработки, посредством которых визуализируют данные отображения из входных данных элементарных объектов. Стадии обработки включают в себя по меньшей мере стадию текстурирования, стадию альфа-тестирования и стадию тестирования глубины. Кроме того, конвейер динамически переупорядочивается между по меньшей мере первой и второй последовательностями стадий в соответствии с состоянием альфа-тестирования обрабатываемых данных пикселей. В первой последовательности стадий, стадия тестирования глубины функционально расположена раньше в графическом конвейере, чем стадия текстурирования. Во второй последовательности стадий, стадия тестирования глубины функционально расположена после стадии текстурирования и стадии альфа-тестирования.

В соответствии с еще одним аспектом настоящего изобретения обеспечен графический конвейер для обработки данных пикселей, и он включает в себя буфер глубины, который сохраняет величины глубины, и стадию тестирования глубины, на которой сравнивается текущая величина глубины обрабатываемого пикселя с предыдущей величиной глубины, сохраненной в буфере глубины, и на которой выдается команда записи, чтобы перезаписать предыдущую величину глубины на текущую величину глубины, основываясь на результате сравнения. Графический процессор дополнительно включает в себя схему задержки записи, которая временно задерживает команду записи, выданную на стадии тестирования глубины, стадию текстурирования, на которой принимается обработанный пиксель после обработки стадией тестирования глубины, и стадию альфа-тестирования, на которой принимается обработанный пиксель после обработки стадией текстурирования. Схема задержки записи зависит от стадии альфа-тестирования в отношении того, игнорировать или выполнять команду задержанной записи, выданную на стадии тестирования глубины.

Краткое описание чертежей

Вышеупомянутые и другие аспекты изобретения станут более очевидными из последующего подробного описания со ссылкой на прилагаемые чертежи, на которых:

фиг.1 - схематическое представление примера основного конвейера растеризации Open GL, содержащегося в трехмерной графической машине;

фиг.2 - схематическое представление трехмерного графического конвейера согласно примеру первого варианта осуществления настоящего изобретения;

фиг.3 - схематическое представление трехмерного графического конвейера согласно примеру второго варианта осуществления настоящего изобретения;

фиг.4 - схематическое представление трехмерного графического конвейера согласно примеру третьего варианта осуществления настоящего изобретения; и

фиг.5 - схематическое представление трехмерного графического конвейера согласно примеру четвертого варианта осуществления настоящего изобретения.

Подробное описание предпочтительных вариантов осуществления

Настоящее изобретение по меньшей мере частично отличается помещением стадии тестирования глубины в начале в графическом конвейере, чтобы снизить до минимума потребляемую мощность и пропускную способность более поздних конвейерных стадий. Тестирование глубины действует, чтобы отбрасывать пиксели, которые не могут быть видимыми, потому что они скрыты от наблюдения вышележащими пикселями. Таким образом, благодаря перемещению тестирования глубины на раннюю позицию в конвейере, скрытые пиксели отбрасываются перед обработкой на более поздних стадиях конвейера с большим потреблением пропускной способности и мощности. Также, ресурсы конвейера не расходуются на отброшенные пиксели.

Настоящее изобретение также по меньшей мере частично отличается необязательным размещением альфа-тестирования, при расположении тестирования глубины в трехмерном графическом конвейере в начале. Это может быть выполнено посредством динамического переупорядочивания конвейера в зависимости от того, допущено ли альфа-тестирование, или посредством задержки записи результатов тестирования глубины до тех пор, пока не сможет быть установлен итог альфа-тестирования.

Теперь настоящее изобретение будет описано посредством нескольких предпочтительных, но не ограничивающих вариантов осуществления. Описанные ниже трехмерные графические конвейеры предназначены для визуализации данных пикселей отображения из входных данных элементарных объектов и могут быть включены в соответствующим образом сконфигурированные трехмерные графические машины.

Фиг.2 изображает схематическое представление трехмерного графического конвейера согласно примеру первого варианта осуществления настоящего изобретения. Как показано, конвейер включает в себя стадию 201 настройки треугольников, стадию 202 затенения пикселей, стадию 203 тестирования отсечения, стадию 204 тестирования глубины, стадию 205 текстурного отображения, стадию 206 плавного сопряжения (смешивания) текстур, стадию 207 альфа-сопряжения и стадию 208 логических операций.

Операции соответствующих стадий конвейера, показанных на фиг. 2, могут быть такими же, как предварительно описанные в связи с конфигурацией Open GL на фиг. 1, и соответственно, подробное описание каждой стадии в данном описании опущено, чтобы избежать избыточной информации. Однако, как показано на фиг.2, стадия 204 тестирования глубины помещена в конвейере в начальной части, и в частности, перед стадией 205 текстурного отображения.

Согласно конфигурации по фиг.2, тестирование глубины выполняется в конвейере как можно раньше, чтобы сохранять пропускную способность памяти и потребляемую мощность, связанную с пикселями, которые в конечном счете не являются видимыми. Другими словами, пропускная способность и мощность не растрачиваются на пиксели, которые, в конце концов, не визуализируются в отображаемом изображении. Это особенно выгодно при обработке трехмерной графики для отображения на переносных или карманных устройствах.

Вариант осуществления примера по фиг.2 не включает в себя альфа-тестирование. Это происходит потому, что для альфа-тестирования требуется альфа-фактор для пикселя, который не может быть вычислен до тех пор, пока не произошло смешивание текстуры, и тестирование глубины пикселя не может происходить до тех пор, пока альфа-тестирование не подтвердило, что пиксель превышает порог прозрачности. Соответственно, в примере по фиг.2, тестирование глубины расположено перед стадией текстурного отображения, чтобы снизить до минимума пропускную способность и потребляемую мощность, но за счет отсутствия стадии альфа-тестирования в конвейере. Остальные варианты осуществления изобретения ориентированы на конфигурации, в которых обеспечено альфа-тестирование несмотря на раннее размещение стадии тестирования глубины в конвейере.

Фиг.3 изображает схематическое представление графического конвейера согласно примеру второго варианта осуществления настоящего изобретения. Как показано, конвейер включает в себя стадию 301 настройки треугольников, стадию 302 затенения пикселей, стадию 303 тестирования отсечения, первую стадию 304 тестирования глубины, стадию 305 текстурного отображения, стадию 306 плавного сопряжения (смешивания) текстур, стадию 307 альфа-тестирования, вторую стадию тестирования глубины 308, стадию 309 альфа-сопряжения и стадию 310 логических операций.

Операции над пикселями на соответствующих конвейерных стадиях, показанных на фиг.3, в общем, могут быть такими же, как операции, предварительно описанные в связи с конфигурацией Open GL по фиг.1, и соответственно, подробное описание каждой стадии здесь опущено, чтобы избежать избыточной информации. Однако, как показано на фиг.3, первая стадия 304 тестирования глубины помещена в начальной части в конвейере, и в частности перед стадией 305 текстурного отображения, а вторая стадия 308 тестирования глубины расположена между стадией 307 альфа-тестирования и стадией 309 альфа-сопряжения.

Операционная последовательность стадий конвейера по фиг.3 динамически переупорядочивается в зависимости от того, разрешается ли альфа-тестирование для обрабатываемого пикселя. То есть, в случае, когда альфа-тестирование не разрешается, конвейер организуется, как показано ссылочной позицией "a" на фиг.3 следующим образом: стадия 301 настройки треугольников графический конвейер и способ, имеющий раннее обнаружение глубины, патент № 2325699 стадия 302 затенения пикселей графический конвейер и способ, имеющий раннее обнаружение глубины, патент № 2325699 стадия 303 тестирования отсечения графический конвейер и способ, имеющий раннее обнаружение глубины, патент № 2325699 стадия 304 тестирования глубины графический конвейер и способ, имеющий раннее обнаружение глубины, патент № 2325699 стадия 305 текстурного отображения графический конвейер и способ, имеющий раннее обнаружение глубины, патент № 2325699 стадия 306 плавного сопряжения (смешивания) текстур графический конвейер и способ, имеющий раннее обнаружение глубины, патент № 2325699 стадия 309 альфа-сопряжения графический конвейер и способ, имеющий раннее обнаружение глубины, патент № 2325699 стадия 310 логических операций.

В случае, когда альфа-тестирование для пикселя разрешается, стадии продвигаются, как показано ссылочной позицией "b" на фиг.3 следующим образом: стадия 301 настройки треугольников графический конвейер и способ, имеющий раннее обнаружение глубины, патент № 2325699 стадия 302 затенения пикселей графический конвейер и способ, имеющий раннее обнаружение глубины, патент № 2325699 стадия 303 тестирования отсечения графический конвейер и способ, имеющий раннее обнаружение глубины, патент № 2325699 стадия 305 текстурного отображения графический конвейер и способ, имеющий раннее обнаружение глубины, патент № 2325699 стадия 306 плавного сопряжения (смешивания) текстур графический конвейер и способ, имеющий раннее обнаружение глубины, патент № 2325699 стадия 307 альфа-тестирования графический конвейер и способ, имеющий раннее обнаружение глубины, патент № 2325699 стадия 308 тестирования глубины графический конвейер и способ, имеющий раннее обнаружение глубины, патент № 2325699 стадия 309 альфа-сопряжения графический конвейер и способ, имеющий раннее обнаружение глубины, патент № 2325699 стадия 310 логических операций.

В общем, графический конвейер включает в себя управляющие биты, которые сдвигаются в сторону младшего разряда конвейера вместе с данными пикселя. Один из этих управляющих битов представляет собой бит альфа-тестирования. Также в общем, когда пакет треугольников применяется к конвейеру, каждый треугольник пакета будет иметь те же самые установочные параметры альфа-тестирования.

Предположим, что альфа-тестирование первоначально является запрещенным, и соответственно, конвейер по фиг.3 структурируется в соответствии со ссылочной позицией "a", так что выполняется первая стадия 304 тестирования глубины, и так, что альфа-тестирование 307 и второе тестирование 308 глубины обходят. Предположим дополнительно, что затем обнаруживается бит альфа-тестирования в конвейере, который указывает, что альфа-тестирование разрешается. В это время, выполняется локальный сброс данных от тестирования 304 глубины к стадии 306 плавного сопряжения (смешивания) текстур, и первое тестирование 304 глубины опускается, а альфа-тестирование 307 и второе тестирование 308 глубины задействуются (не опускаются). При таком способе, достигается компоновка по ссылочной позиции "b" на фиг. 3. В конечном счете, когда бит альфа-тестирования указывает, что альфа-тестирование является запрещенным, конвейер переупорядочивается обратно к компоновке по ссылочной позиции "a".

Фиг.4 изображает схематическое представление графического конвейера согласно примеру третьего варианта осуществления настоящего изобретения. Как показано, конвейер включает в себя стадию 401 настройки треугольников, стадию 402 затенения пикселей, стадию 403 тестирования отсечения, первый мультиплексор 404, стадию 405 тестирования глубины, второй мультиплексор 406, стадию 407 текстурного отображения, стадию 408 плавного сопряжения (смешивания) текстур, стадию 409 альфа-тестирования, третий мультиплексор 410, стадию 411 альфа-сопряжения и стадию 412 логических операций.

Операции над пикселями соответствующих конвейерных стадий, показанных на фиг.4, в общем могут быть такими же, как предварительно описанные в связи с конфигурацией Open GL по фиг.1, и соответственно, подробное описание каждой стадии здесь опущено, чтобы избежать избыточной информации. Однако, как показано на фиг.4, стадия 405 тестирования глубины помещена в начальной части в конвейере, и в частности, прежде чем стадия 407 текстурного отображения, и используются мультиплексоры 404, 406 и 410 для обеспечения возможности динамического переупорядочивания конвейера, чтобы при необходимости обеспечить альфа-тестирование.

Условие "АТ = 0" по фиг.4 обозначает состояние, где альфа-тестирование является запрещенным для обрабатываемых пикселей. В этом случае, мультиплексор 404 выбирает выходной сигнал со стадии 403 тестирования отсечения и применяет его к стадии 405 тестирования глубины; мультиплексор 406 выбирает выходной сигнал со стадии 405 тестирования глубины и применяет его к стадия 407 текстурного отображения; и мультиплексор 410 выбирает выходной сигнал со стадии 408 плавного сопряжения (смешивания) текстур и применяет его к стадии 411 альфа-сопряжения. Таким образом, когда АТ = 0, последовательность конвейера является следующей: стадия 401 настройки треугольников графический конвейер и способ, имеющий раннее обнаружение глубины, патент № 2325699 стадия 402 затенения пикселей графический конвейер и способ, имеющий раннее обнаружение глубины, патент № 2325699 стадия 403 тестирования отсечения графический конвейер и способ, имеющий раннее обнаружение глубины, патент № 2325699 стадия 405 тестирования глубины графический конвейер и способ, имеющий раннее обнаружение глубины, патент № 2325699 стадия 407 текстурного отображения графический конвейер и способ, имеющий раннее обнаружение глубины, патент № 2325699 стадия 408 плавного сопряжения (смешивания) текстур графический конвейер и способ, имеющий раннее обнаружение глубины, патент № 2325699 стадия 411 альфа-сопряжения графический конвейер и способ, имеющий раннее обнаружение глубины, патент № 2325699 стадия 412 логических операций.

Когда АТ графический конвейер и способ, имеющий раннее обнаружение глубины, патент № 2325699 0, альфа-тестирование разрешается для пикселей, подлежащих обработке. В этом случае, мультиплексор 404 выбирает выходной сигнал со стадии 409 альфа-тестирования и применяет его к стадии 405 тестирования глубины; мультиплексор 406 выбирает выходной сигнал со стадии 403 тестирования отсечения и применяет его к стадия 407 текстурного отображения; и мультиплексор 410 выбирает выходной сигнал со стадии 405 тестирования глубины и применяет его к стадии 411 альфа-сопряжения. Таким образом, когда АТ графический конвейер и способ, имеющий раннее обнаружение глубины, патент № 2325699 0, последовательность конвейера является следующей: стадия 401 настройки треугольников графический конвейер и способ, имеющий раннее обнаружение глубины, патент № 2325699 стадия 402 затенения пикселей графический конвейер и способ, имеющий раннее обнаружение глубины, патент № 2325699 стадия 403 тестирования отсечения графический конвейер и способ, имеющий раннее обнаружение глубины, патент № 2325699 стадия 407 текстурного отображения графический конвейер и способ, имеющий раннее обнаружение глубины, патент № 2325699 стадия 408 плавного сопряжения (смешивания) текстур графический конвейер и способ, имеющий раннее обнаружение глубины, патент № 2325699 стадия 409 альфа-тестирования графический конвейер и способ, имеющий раннее обнаружение глубины, патент № 2325699 стадия 405 тестирования глубины графический конвейер и способ, имеющий раннее обнаружение глубины, патент № 2325699 стадия 411 альфа-сопряжения графический конвейер и способ, имеющий раннее обнаружение глубины, патент № 2325699 стадия 412 логических операций.

В каждом из вариантов осуществления по фиг.3 и 4, трехмерный графический конвейер переупорядочивается в зависимости от того, разрешается ли альфа-тестирование. Если альфа-тестирование разрешается, то стадия тестирования глубины функционально располагается после стадии альфа-тестирования, поскольку результаты альфа-тестирования необходимы перед тестированием глубины. Если альфа-тестирование является запрещенным, то стадия тестирования глубины функционально располагается перед стадией текстурного отображения, чтобы устранить скрытые пиксели в начальной части в конвейере, таким образом сохраняя мощность и пропускную способность.

Фиг.5 изображает схематическое представление примера другого варианта осуществления настоящего изобретения. Подобно вариантам осуществления по фиг.3 и 4, конфигурация по фиг.5 способна обеспечивать альфа-тестирование при расположении в то же самое время стадии тестирования глубины в начальной части конвейера.

На фиг.5 иллюстрируются стадия 501 тестирования глубины (HSR) (быстродействующее считывающее устройство), стадия 502 текстурного отображения, стадия 503 текстурирования, стадия 504 альфа-тестирования, схема 505 FIFO ("первым пришел - первым обслужен"), интерфейс 506 буфера глубины и буфер 507 глубины. Стадия 501 тестирования глубины, стадия 502 текстурного отображения, стадия 503 текстурирования и стадия 504 альфа-тестирования формируют часть графического конвейера трехмерной графической машины.

При работе, обрабатываемый пиксель прибывает через конвейер на стадию 501 тестирования глубины, и значение по оси Z (величина глубины) пикселя сравнивается со значением по оси Z, хранящимся в соответствующем местоположении буфера 507 глубины. Это выполняется посредством передачи адреса считывания [addr_r(14:0)] в буфер 507 глубины через интерфейс 506 буфера и приема значения по оси Z буфера глубины [depth_r(15:0)], сохраненного в буфере 507 глубины. Значение по оси Z пикселя и значение по оси Z буфера глубины сравниваются, и если результат сравнения указывает, что пиксель может быть невидимым, пиксель эффективно отбрасывается. С другой стороны, если результат сравнения предсказывает, что пиксель может быть видимым, выполняется процесс задержанной записи в буфер, как описано ниже.

Предполагая, что схема 505 FIFO не является полной, как указывается сигналом [fifo_full], процесс задержанной записи в буфер выполняется посредством выдачи команды записи FIFO [fifo_write], а затем записи сигнала адреса записи в буфере [addr_w(14:0)], нового значения по оси Z пикселя [depth_w(15:0)] и сигнала альфа-тестирования [alpha_test] в схеме 505 FIFO. Сигнал адреса записи в буфере [addr_w(14:0)] является показательным для соответствующего местоположения обрабатываемого пикселя в буфере 507 глубины. Новое значение по оси Z пикселя [depth_w(15:0)] представляет значение по оси Z обрабатываемого пикселя (который прошел тестирование глубины). Сигнал альфа-тестирования [alpha_test] указывает, разрешено ли альфа-тестирование для обрабатываемого пикселя.

Как и сигнал адреса записи в буфере [addr_w(14:0)], новое значение по оси Z пикселя [depth_w(15:0)] и сигнал альфа-тестирования [alpha_test] сдвигаются через схему 505 FIFO, обрабатываемый пиксель одновременно подвергается текстурному отображению и текстурированию посредством стадии 502 текстурного отображения и стадии 503 текстурирования, соответственно. Глубина "n" схемы 505 FIFO предпочтительно равна сумме пиксельных емкостей конвейерных стадий, расположенных между стадией 501 тестирования глубины и стадией 504 альфа-тестирования. В этом варианте осуществления, глубина схемы 505 FIFO равна сумме информационных емкостей пикселей стадии 502 текстурного отображения и стадии 503 текстурирования. В результате, пиксель будет обработан на его пути к концу схемы 505 FIFO при согласовании во времени, которое совпадает с обработкой пикселя стадией 502 текстурного отображения и стадией 503 текстурирования.

После текстурного отображения и текстурирования обрабатываемый пиксель затем применяется к стадии 504 альфа-тестирования. В это время, для пикселя альфа-тестирование либо разрешено, либо альфа-тестирование не разрешено.

Если для пикселя альфа-тестирование не разрешено, пиксель передается вниз по конвейеру для дальнейшей обработки, а в интерфейс 506 буфера глубины передается сигнал [valid_pixel]. Предполагая, что схема 505 FIFO не пуста, как указано сигналом [fifo_empty], интерфейс буфера глубины в ответ на сигнал [valid_pixel] выдает команду считывания [fifo_read] в схему 505 FIFO, и считывает сигнал адреса записи в буфере [addr_w(14:0)], новое значение по оси Z пикселя [depth_w(15:0)] и сигнал альфа-тестирования [alpha_test]. Затем интерфейс 506 буфера глубины обновляет буфер 507 глубины, обращаясь к буферу 507 глубины по адресу [addr_w(14:0)] и перезаписывая новое значение по оси Z пикселя [depth_w(15:0)] в буфере 507 глубины.

Если для пикселя альфа-тестирование разрешено, стадия 504 альфа-тестирования сравнивает величину альфа-фактора обрабатываемого пикселя с эталонной величиной. Если пиксель проходит альфа-тестирование, сигнал [alpha_pass] передается в интерфейс 506 буфера глубины, и пиксель передается вниз по конвейеру для дальнейшей обработки. Если происходит неуспешное завершение альфа-тестирования пикселя, в интерфейс 506 буфера глубины передается сигнал [alpha_fail], и пиксель эффективно отбрасывается.

Снова предполагая, что схема 505 FIFO не пуста, как указана сигналом [fifo_empty], интерфейс буфера глубины в ответ на сигналы [alpha_pass] и [alpha_fail] выдает команду считывания [fifo_read] в схему 505 FIFO и считывает сигнал адреса записи в буфере [addr_w(14:0)], новое значение по оси Z пикселя [depth_w(15:0)] и сигнал, допускающий альфа-тестирование [alpha_test]. Если задействуется сигнал [alpha_fail], интерфейс 506 буфера глубины не обновляет буфер 507 глубины новым значением по оси Z пикселя [depth_w(15:0)]. С другой стороны, если задействуется сигнал [alpha_pass], интерфейс 506 буфера глубины обновляет буфер 507 глубины. То есть, интерфейс буфера глубины образуется к буферу 507 глубины по адресу [addr_w(14:0)] и перезаписывает новое значение по оси Z пикселя [depth_w(15:0)] в буфере 507 глубины.

Реализация, описанная выше в связи с фиг. 5, включает в себя схему (например, схему FIFO), которая временно сохраняет результаты тестирования глубины. Фактическая запись нового значения по оси Z в буфер глубины задерживается до тех пор, пока не будут доступны результаты альфа-тестирования, связанного с новым пикселем. Если альфа-тестирование пройдено, новое значение по оси Z нового пикселя сохраняется в буфере глубины. Если альфа-тестирование завершается неуспешно, это не происходит. Если альфа-тестирование отсутствует, новое значение по оси Z может быть записано немедленно, но только после того, как записаны какие-нибудь значения по оси Z, которые находятся в процессе решения альфа-тестирования. Для этой цели может использоваться сигнал [alpha_test]. То есть, если результаты всех находящихся в процессе решения значений по оси Z не показывают альфа-тестирование, интерфейс буфера глубины может быть сконфигурирован так, чтобы немедленно считывать из схемы 505 FIFO и обновлять буфер 507 глубины соответствующим образом.

Благодаря задерживанию обновления буфера глубины, ждущего результата альфа-тестирования, как в варианте осуществления по фиг.5, стадия тестирования глубины может быть расположена в начальной части конвейера, чтобы избежать обработки позже скрытых пикселей, таким образом сохраняя потребляемую мощность и пропускную способность.

На чертежах и в описании были раскрыты типичные предпочтительные варианты осуществления данного изобретения, и хотя были сформулированы определенные примеры, они используются только в универсальном и описательном смысле, а не с целью ограничения. Поэтому должно быть понятно, что объем настоящего изобретения должен толковаться прилагаемой формулой изобретения, а не описанными вариантами осуществления.

Класс G06T1/20 архитектура процессора; конфигурация процессора, например конвейерная обработка

энергоэффективный механизм упреждающей выборки инструкций -  патент 2375745 (10.12.2009)
протокол связи для синхронизации анимационных систем -  патент 2363050 (27.07.2009)
параллельная вычислительная система активного видео -  патент 2229745 (27.05.2004)
способ кодирования координат перемещающегося на экране вычислительного устройства видеоизображения, устройство для декодирования визуального объекта, закодированного этим способом, и система, предназначенная для визуализации активного видео с помощью этого устройства -  патент 2225035 (27.02.2004)
способ кодирования координат перемещающегося на экране монитора компьютера видеоизображения -  патент 2212710 (20.09.2003)
способ объектно-ориентированной интерактивной обработки видеоинформации -  патент 2212709 (20.09.2003)
параллельная вычислительная система активного видео -  патент 2173883 (20.09.2001)
способ оптимального формирования визуального изображения -  патент 2045095 (27.09.1995)
Наверх