[go: up one dir, main page]

RU2325699C1 - Graphic conveyor and method for early depth detection - Google Patents

Graphic conveyor and method for early depth detection Download PDF

Info

Publication number
RU2325699C1
RU2325699C1 RU2006134736/09A RU2006134736A RU2325699C1 RU 2325699 C1 RU2325699 C1 RU 2325699C1 RU 2006134736/09 A RU2006134736/09 A RU 2006134736/09A RU 2006134736 A RU2006134736 A RU 2006134736A RU 2325699 C1 RU2325699 C1 RU 2325699C1
Authority
RU
Russia
Prior art keywords
testing
alpha
depth
stage
texturing
Prior art date
Application number
RU2006134736/09A
Other languages
Russian (ru)
Inventor
Майкл Хью АНДЕРСОН (US)
Майкл Хью АНДЕРСОН
Энн Крис ИРВИН (US)
Энн Крис ИРВИН
Нидисх Рамачандра КАМАТХ (US)
Нидисх Рамачандра КАМАТХ
Чун ЮЙ (US)
Чун ЮЙ
Дан Минглун ЧУАН (US)
Дан Минглун ЧУАН
Юши ТЯНЬ (US)
Юши ТЯНЬ
Инюн ЦИ (US)
Инюн ЦИ
Original Assignee
Квэлкомм Инкорпорейтед
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US10/949,012 external-priority patent/US20050195198A1/en
Application filed by Квэлкомм Инкорпорейтед filed Critical Квэлкомм Инкорпорейтед
Application granted granted Critical
Publication of RU2325699C1 publication Critical patent/RU2325699C1/en

Links

Images

Landscapes

  • Image Processing (AREA)
  • Image Generation (AREA)

Abstract

FIELD: technological processes.
SUBSTANCE: invention is related to graphic engines. Technical result is achieved because graphic conveyor includes multitude of sequentially located processing stages, where imaging pixels data is visualized from input data of elementary objects. Processing stages include at least texturing stage and depth testing stage, and depth testing stage may be located earlier in the graphic conveyor than the texturing stage.
EFFECT: reduces consumed carrying capacity and power.
16 cl, 5 dwg

Description

Перекрестная ссылка на родственную заявку (заявки)Cross reference to related application (s)

Испрашивается приоритет предварительной патентной заявки США № 60/550,018 от 3 марта 2004 г. и предварительной патентной заявки США № 60/550,024 от 3 марта 2004, полное содержание которых включено здесь путем ссылки.Priority is claimed for US provisional patent application No. 60 / 550,018 of March 3, 2004 and US provisional patent application No. 60 / 550,024 of March 3, 2004, the entire contents of which are incorporated herein by reference.

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

1. Область техники, к которой относится изобретение1. The technical field to which the invention relates.

Настоящее изобретение относится, в общем, к графическим процессорам, и более конкретно, настоящее изобретение относится к трехмерному графическому конвейеру, в котором стадия тестирования глубины помещена в начале в конвейере, чтобы снизить до минимума потребляемую пропускную способность и/или потребляемую мощность.The present invention relates generally to graphics processors, and more specifically, the present invention relates to a three-dimensional graphics pipeline in which the depth testing step is placed at the beginning in the pipeline to minimize the bandwidth and / or power consumption.

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

Графические машины использовались для отображения трехмерных (3D) изображений на стационарных устройствах отображения, таких как компьютерные и телевизионные экраны. Эти машины обычно содержатся в настольных системах, запитываемых от обычных штепсельных розеток сети переменного тока, и таким образом, существенно не сдерживаются ограничениями потребляемой мощности. Однако последние тенденции заключаются во включении трехмерных графических машин в карманные устройства, запитываемые от аккумуляторных батарей. Примеры таких устройств включают в себя мобильные телефоны и персональные цифровые ассистенты (ПЦА). К сожалению, однако, обычные графические машины потребляют большие количества мощности и, таким образом, не подходят для этих условий эксплуатации с низким энергопотреблением.Graphic machines were used to display three-dimensional (3D) images on stationary display devices, such as computer and television screens. These machines are typically contained in desktop systems powered by conventional AC wall outlets, and thus are not significantly constrained by power limitations. However, recent trends are the inclusion of three-dimensional graphics machines in handheld devices powered by batteries. Examples of such devices include mobile phones and personal digital assistants (OCAs). Unfortunately, however, conventional graphics machines consume large amounts of power and are thus not suitable for these low-energy operating conditions.

Фиг.1 изображает схематическое представление основного конвейера растеризации Open GL (открытый графический язык), содержащегося в обычной трехмерной графической машине. Как показано, конвейер этого примера включает в себя стадию 101 настройки треугольников, стадию 102 затенения пикселей (минимальных элементов изображения), стадию 103 текстурного отображения, стадию 104 плавного сопряжения (смешивания) текстур, стадию 105 тестирования отсечения, стадию 106 альфа-тестирования, стадию 107 тестирования трафарета, стадию 108 тестирования глубины, стадию 109 альфа-сопряжения (взвешенного наложения смешиваемых цветов) и стадию 110 логических операций.Figure 1 depicts a schematic representation of the main pipeline rasterization Open GL (open graphics language) contained in a conventional three-dimensional graphics machine. As shown, the pipeline of this example includes a step 101 for setting up triangles, a stage 102 for shading pixels (minimum image elements), a stage 103 for texture mapping, a stage 104 for smoothly blending (mixing) textures, a stage 105 for testing clipping, a stage 106 for alpha testing, a stage 106 107 stencil testing, stage 108 depth testing, stage 109 alpha conjugation (weighted blending of mixed colors) and stage 110 logical operations.

В трехмерных графических системах каждый объект, подлежащий отображению, обычно разделяется на поверхностные треугольники, определяемые информацией о вершинах, хотя могут использоваться другие элементарные формы. Также обычно графический конвейер предназначен для обработки последовательных пакетов треугольников объекта или изображения. Треугольники любого данного пакета могут визуально накладываться друг на друга в пределах данной сцены.In three-dimensional graphics systems, each object to be displayed is usually divided into surface triangles defined by vertex information, although other elementary shapes can be used. Also typically a graphics pipeline is designed to process successive packets of triangles of an object or image. The triangles of any given package can visually overlap each other within a given scene.

Что касается фиг. 1, то на ней стадия 101 настройки треугольников "настраивает" каждый пакет треугольников с помощью вычислительных коэффициентов, подлежащих использованию в вычислениях, выполняемых на более поздних конвейерных стадиях.With reference to FIG. 1, then in it the stage 101 of setting up the triangles “tunes in” each package of triangles using computational coefficients to be used in the calculations performed at later pipeline stages.

Стадия 102 затенения пикселей использует информацию о вершинах для вычисления того, какие пиксели охвачены каждым треугольником из обрабатываемого пакета треугольников. Поскольку треугольники могут накладываться друг на друга, многочисленные пиксели различной глубины могут быть расположены в одной и той же точке на экранном устройстве отображения. В частности, стадия 101 затенения пикселей интерполирует затенение (величину освещения), значение цвета и величину глубины для каждого пикселя, используя информацию о вершинах. Для этой цели можно выбрать любой из множества методов затенения и операции затенения могут выполняться на основании треугольников, вершин или пикселей.The pixel shading stage 102 uses vertex information to calculate which pixels are covered by each triangle from the processed triangle packet. Since triangles can overlap, multiple pixels of different depths can be located at the same point on the screen display device. In particular, the pixel shading step 101 interpolates the shading (lighting amount), color value, and depth value for each pixel using vertex information. For this purpose, any of a variety of shading methods can be selected and shading operations can be performed based on triangles, vertices or pixels.

Стадия 103 текстурного отображения и стадия 104 плавного сопряжения текстур действуют, чтобы добавлять и смешивать текстуры в каждом пикселе обрабатываемого пакета треугольников. В самом общем смысле, это выполняется посредством отображения предварительно определенных текстур на пиксели в соответствии с информацией о вершинах. Как и с затенением, можно выбирать множество методов, чтобы получать текстурирование. Также, может быть реализован метод, известный как обработка вуалированием (наложение тумана).The texture mapping step 103 and the texture smooth blending step 104 act to add and mix textures in each pixel of the processed triangles package. In the most general sense, this is accomplished by mapping predefined textures to pixels in accordance with vertex information. As with shading, you can select many methods to get texturing. Also, a method known as veiling processing (fogging) can be implemented.

Стадия 105 тестирования отсечения действует, чтобы отбрасывать пиксели, содержащиеся в участках (фрагментах) треугольников, которые выходят за пределы поля зрения отображаемой сцены. В общем, это выполняется посредством определения, лежат ли пиксели в пределах так называемого прямоугольника отсечения.Clipping testing step 105 is operative to discard pixels contained in portions (fragments) of triangles that extend outside the field of view of the displayed scene. In general, this is accomplished by determining whether pixels lie within the so-called clipping rectangle.

Модуль 106 альфа-тестирования условно отбрасывает фрагмент треугольника (более точно, пиксели, содержащиеся во фрагменте) на основании сравнения между величиной альфа-фактора (величиной прозрачности), связанного с этим фрагментом, и эталонной величиной альфа-фактора. Точно так же, тестирование трафарета условно отбрасывает фрагменты на основании сравнения между каждыми фрагментами и сохраненным значением трафарета.Alpha testing module 106 conditionally discards a fragment of a triangle (more precisely, pixels contained in a fragment) based on a comparison between the value of the alpha factor (transparency value) associated with this fragment and the reference value of the alpha factor. Similarly, stencil testing conditionally discards fragments based on a comparison between each fragments and the stored stencil value.

Стадия 108 тестирования глубины (также называемая удалением скрытой поверхности (УСП)) отбрасывает пиксели, содержащиеся во фрагментах треугольника, основываясь на величине глубины этих пикселей и величине глубины других пикселей, имеющих то же самое расположение на дисплее. В общем, это выполняется посредством сравнения использования значения по оси Z (величины глубины) пикселя, проходящего тестирование глубины, со значением по оси Z, сохраненным в соответствующем местоположении так называемого z-буфера или буфера глубины. Тестируемый пиксель отбрасывается, если его значение по оси Z указывает, что пиксель может быть блокирован от наблюдения другим пикселем, имеющим значение по оси Z, сохраненное в z-буфере. С другой стороны, значение z-буфера перезаписывается на значение по оси Z тестируемого пикселя в случае, когда тестируемый пиксель не может быть блокирован от наблюдения. При таком способе, нижележащие пиксели, которые блокированы от наблюдения, отбрасываются в пользу вышележащих пикселей.The depth testing step 108 (also called Hidden Surface Removal (USP)) discards the pixels contained in the fragments of the triangle based on the depth of these pixels and the depth of other pixels having the same location on the display. In general, this is done by comparing the use of the value of the Z axis (depth value) of the pixel undergoing depth testing with the value of the Z axis stored in the corresponding location of the so-called z-buffer or depth buffer. The tested pixel is discarded if its value along the Z axis indicates that the pixel can be blocked from being observed by another pixel having a value along the Z axis stored in the z-buffer. On the other hand, the value of the z-buffer is overwritten by the value along the Z axis of the tested pixel in the case when the tested pixel cannot be blocked from observation. With this method, the underlying pixels that are blocked from observation are discarded in favor of the overlying pixels.

Стадия 109 альфа-сопряжения объединяет визуализируемые пиксели с пикселями, предварительно сохраненными в цветовом буфере, на основании величин альфа-факторов, с целью достижения прозрачности объекта.Alpha-coupling step 109 combines the rendered pixels with pixels previously stored in the color buffer based on the values of the alpha factors in order to achieve transparency of the object.

Модуль 110 логических операций в общем обозначает разнообразные остающееся процессы конвейера для получения в конечном счете данных отображения пикселей.Logic operation module 110 generally denotes the various remaining pipeline processes for ultimately obtaining pixel display data.

В любой графической системе желательно сохранять пропускную способность процессора и памяти до степени, возможной при поддержании удовлетворительной эффективности. Это особенно важно в случае переносных или карманных устройств, где пропускные способности могут быть ограничены. Также, как было предварительно предложено, имеется конкретная потребность в промышленности в снижении до минимума потребляемой мощности при обработке трехмерной графики для отображения на переносных или карманных устройствах.In any graphics system, it is desirable to maintain processor and memory bandwidth to the extent possible while maintaining satisfactory performance. This is especially important with portable or handheld devices where bandwidth may be limited. Also, as previously proposed, there is a specific industry need to minimize power consumption when processing three-dimensional graphics for display on portable or handheld devices.

Сущность изобретенияSUMMARY OF THE INVENTION

В соответствии с одним аспектом настоящего изобретения обеспечен графический конвейер для обработки данных пикселей, и он включает в себя множество последовательно выполняемых стадий обработки, посредством которых визуализируют данные пикселей отображения из входных данных элементарных объектов, где стадии обработки включают в себя по меньшей мере стадию текстурирования и стадию тестирования глубины, и в котором стадия тестирования глубины расположена раньше в графическом конвейере, чем стадия текстурирования.In accordance with one aspect of the present invention, there is provided a graphics pipeline for processing pixel data, and it includes a plurality of sequentially executed processing steps by which visualization of pixel data is displayed from input data of elementary objects, where the processing steps include at least a texturing step and a depth testing step, and in which the depth testing step is located earlier in the graphics pipeline than the texturing step.

В соответствии с другим аспектом настоящего изобретения обеспечен графический конвейер для обработки данных пикселей, и он включает в себя множество последовательно выполняемых стадий обработки, посредством которых визуализируют данные отображения из входных данных элементарных объектов. Стадии обработки включают в себя по меньшей мере стадию текстурирования, стадию альфа-тестирования и стадию тестирования глубины. Кроме того, конвейер динамически переупорядочивается между по меньшей мере первой и второй последовательностями стадий в соответствии с состоянием альфа-тестирования обрабатываемых данных пикселей. В первой последовательности стадий, стадия тестирования глубины функционально расположена раньше в графическом конвейере, чем стадия текстурирования. Во второй последовательности стадий, стадия тестирования глубины функционально расположена после стадии текстурирования и стадии альфа-тестирования.In accordance with another aspect of the present invention, there is provided a graphics pipeline for processing pixel data, and it includes a plurality of sequentially executed processing steps by which display data is visualized from input data of elementary objects. The processing steps include at least a texturing step, an alpha testing step, and a depth testing step. In addition, the pipeline is dynamically reordered between at least the first and second sequences of stages in accordance with the alpha test state of the processed pixel data. In the first sequence of stages, the depth testing stage is functionally located earlier in the graphics pipeline than the texturing stage. In the second sequence of steps, the depth testing step is functionally located after the texturing step and the alpha testing step.

В соответствии с еще одним аспектом настоящего изобретения обеспечен графический конвейер для обработки данных пикселей, и он включает в себя буфер глубины, который сохраняет величины глубины, и стадию тестирования глубины, на которой сравнивается текущая величина глубины обрабатываемого пикселя с предыдущей величиной глубины, сохраненной в буфере глубины, и на которой выдается команда записи, чтобы перезаписать предыдущую величину глубины на текущую величину глубины, основываясь на результате сравнения. Графический процессор дополнительно включает в себя схему задержки записи, которая временно задерживает команду записи, выданную на стадии тестирования глубины, стадию текстурирования, на которой принимается обработанный пиксель после обработки стадией тестирования глубины, и стадию альфа-тестирования, на которой принимается обработанный пиксель после обработки стадией текстурирования. Схема задержки записи зависит от стадии альфа-тестирования в отношении того, игнорировать или выполнять команду задержанной записи, выданную на стадии тестирования глубины.In accordance with another aspect of the present invention, there is provided a graphics pipeline for processing pixel data, and it includes a depth buffer that stores depth values, and a depth testing step, at which the current depth value of the processed pixel is compared with the previous depth value stored in the buffer depth, and at which a write command is issued to overwrite the previous depth value by the current depth value, based on the comparison result. The graphics processor further includes a recording delay circuit that temporarily delays a recording command issued in the depth testing step, a texturing step in which the processed pixel is received after processing by the depth testing step, and an alpha testing step in which the processed pixel is received after processing by the step texturing. The recording delay scheme depends on the alpha testing stage as to whether to ignore or execute the delayed recording command issued at the depth testing stage.

Краткое описание чертежейBrief Description of the Drawings

Вышеупомянутые и другие аспекты изобретения станут более очевидными из последующего подробного описания со ссылкой на прилагаемые чертежи, на которых:The above and other aspects of the invention will become more apparent from the following detailed description with reference to the accompanying drawings, in which:

фиг.1 - схематическое представление примера основного конвейера растеризации Open GL, содержащегося в трехмерной графической машине;figure 1 is a schematic representation of an example of the main pipeline rasterization Open GL contained in a three-dimensional graphics machine;

фиг.2 - схематическое представление трехмерного графического конвейера согласно примеру первого варианта осуществления настоящего изобретения;FIG. 2 is a schematic representation of a three-dimensional graphical conveyor according to an example of a first embodiment of the present invention; FIG.

фиг.3 - схематическое представление трехмерного графического конвейера согласно примеру второго варианта осуществления настоящего изобретения;3 is a schematic representation of a three-dimensional graphical conveyor according to an example of a second embodiment of the present invention;

фиг.4 - схематическое представление трехмерного графического конвейера согласно примеру третьего варианта осуществления настоящего изобретения; и4 is a schematic representation of a three-dimensional graphic conveyor according to an example of a third embodiment of the present invention; and

фиг.5 - схематическое представление трехмерного графического конвейера согласно примеру четвертого варианта осуществления настоящего изобретения.5 is a schematic representation of a three-dimensional graphic conveyor according to an example of a fourth embodiment of the present invention.

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

Настоящее изобретение по меньшей мере частично отличается помещением стадии тестирования глубины в начале в графическом конвейере, чтобы снизить до минимума потребляемую мощность и пропускную способность более поздних конвейерных стадий. Тестирование глубины действует, чтобы отбрасывать пиксели, которые не могут быть видимыми, потому что они скрыты от наблюдения вышележащими пикселями. Таким образом, благодаря перемещению тестирования глубины на раннюю позицию в конвейере, скрытые пиксели отбрасываются перед обработкой на более поздних стадиях конвейера с большим потреблением пропускной способности и мощности. Также, ресурсы конвейера не расходуются на отброшенные пиксели.The present invention is at least partially distinguished by placing the depth testing stage at the beginning in the graphics pipeline in order to minimize the power consumption and throughput of the later pipeline stages. Depth testing works to discard pixels that cannot be visible because they are hidden from view by overlying pixels. Thus, by moving depth testing to an early position in the pipeline, hidden pixels are discarded prior to processing at later stages of the pipeline with high throughput and power consumption. Also, pipeline resources are not spent on discarded pixels.

Настоящее изобретение также по меньшей мере частично отличается необязательным размещением альфа-тестирования, при расположении тестирования глубины в трехмерном графическом конвейере в начале. Это может быть выполнено посредством динамического переупорядочивания конвейера в зависимости от того, допущено ли альфа-тестирование, или посредством задержки записи результатов тестирования глубины до тех пор, пока не сможет быть установлен итог альфа-тестирования.The present invention is also at least partially distinguished by the optional placement of alpha testing, with the location of the testing depth in a three-dimensional graphics pipeline at the beginning. This can be done by dynamically reordering the pipeline depending on whether alpha testing is allowed, or by delaying the recording of depth testing results until the result of alpha testing can be established.

Теперь настоящее изобретение будет описано посредством нескольких предпочтительных, но не ограничивающих вариантов осуществления. Описанные ниже трехмерные графические конвейеры предназначены для визуализации данных пикселей отображения из входных данных элементарных объектов и могут быть включены в соответствующим образом сконфигурированные трехмерные графические машины.Now the present invention will be described by means of several preferred, but not limiting embodiments. The three-dimensional graphic conveyors described below are intended for visualization of display pixel data from the input data of elementary objects and can be included in appropriately configured three-dimensional graphic machines.

Фиг.2 изображает схематическое представление трехмерного графического конвейера согласно примеру первого варианта осуществления настоящего изобретения. Как показано, конвейер включает в себя стадию 201 настройки треугольников, стадию 202 затенения пикселей, стадию 203 тестирования отсечения, стадию 204 тестирования глубины, стадию 205 текстурного отображения, стадию 206 плавного сопряжения (смешивания) текстур, стадию 207 альфа-сопряжения и стадию 208 логических операций.FIG. 2 is a schematic diagram of a three-dimensional graphical conveyor according to an example of a first embodiment of the present invention. As shown, the pipeline includes a triangulation step 201, a pixel shading step 202, a clipping testing step 203, a depth testing step 204, a texture mapping step 205, a texture smooth blending (blending) step 206, an alpha blending step 207, and a logic step 208 operations.

Операции соответствующих стадий конвейера, показанных на фиг. 2, могут быть такими же, как предварительно описанные в связи с конфигурацией Open GL на фиг. 1, и соответственно, подробное описание каждой стадии в данном описании опущено, чтобы избежать избыточной информации. Однако, как показано на фиг.2, стадия 204 тестирования глубины помещена в конвейере в начальной части, и в частности, перед стадией 205 текстурного отображения.The operations of the respective conveyor stages shown in FIG. 2 may be the same as previously described in connection with the configuration of Open GL in FIG. 1, and accordingly, a detailed description of each step in this description is omitted to avoid redundant information. However, as shown in FIG. 2, the depth testing step 204 is placed in the conveyor in the initial part, and in particular, before the texture mapping step 205.

Согласно конфигурации по фиг.2, тестирование глубины выполняется в конвейере как можно раньше, чтобы сохранять пропускную способность памяти и потребляемую мощность, связанную с пикселями, которые в конечном счете не являются видимыми. Другими словами, пропускная способность и мощность не растрачиваются на пиксели, которые, в конце концов, не визуализируются в отображаемом изображении. Это особенно выгодно при обработке трехмерной графики для отображения на переносных или карманных устройствах.According to the configuration of FIG. 2, depth testing is performed in the pipeline as early as possible in order to maintain memory bandwidth and power consumption associated with pixels that are ultimately not visible. In other words, throughput and power are not wasted on pixels, which, after all, are not rendered in the displayed image. This is especially beneficial when processing three-dimensional graphics for display on portable or handheld devices.

Вариант осуществления примера по фиг.2 не включает в себя альфа-тестирование. Это происходит потому, что для альфа-тестирования требуется альфа-фактор для пикселя, который не может быть вычислен до тех пор, пока не произошло смешивание текстуры, и тестирование глубины пикселя не может происходить до тех пор, пока альфа-тестирование не подтвердило, что пиксель превышает порог прозрачности. Соответственно, в примере по фиг.2, тестирование глубины расположено перед стадией текстурного отображения, чтобы снизить до минимума пропускную способность и потребляемую мощность, но за счет отсутствия стадии альфа-тестирования в конвейере. Остальные варианты осуществления изобретения ориентированы на конфигурации, в которых обеспечено альфа-тестирование несмотря на раннее размещение стадии тестирования глубины в конвейере.The embodiment of the example of FIG. 2 does not include alpha testing. This is because alpha testing requires an alpha factor for a pixel, which cannot be calculated until texture mixing has occurred, and pixel depth testing cannot occur until alpha testing confirms that pixel exceeds transparency threshold. Accordingly, in the example of FIG. 2, the depth test is located in front of the texture mapping step to minimize throughput and power consumption, but due to the absence of an alpha test step in the pipeline. Other embodiments of the invention are focused on configurations in which alpha testing is provided despite the early placement of the depth testing stage in the pipeline.

Фиг.3 изображает схематическое представление графического конвейера согласно примеру второго варианта осуществления настоящего изобретения. Как показано, конвейер включает в себя стадию 301 настройки треугольников, стадию 302 затенения пикселей, стадию 303 тестирования отсечения, первую стадию 304 тестирования глубины, стадию 305 текстурного отображения, стадию 306 плавного сопряжения (смешивания) текстур, стадию 307 альфа-тестирования, вторую стадию тестирования глубины 308, стадию 309 альфа-сопряжения и стадию 310 логических операций.Figure 3 depicts a schematic representation of a graphics pipeline according to an example of a second embodiment of the present invention. As shown, the pipeline includes a triangulation step 301, a pixel shading step 302, a clipping testing step 303, a first depth testing step 304, a texture mapping step 305, a smooth texture blending (mixing) step 306, an alpha testing step 307, a second step depth testing 308, alpha conjugation step 309 and logical operation step 310.

Операции над пикселями на соответствующих конвейерных стадиях, показанных на фиг.3, в общем, могут быть такими же, как операции, предварительно описанные в связи с конфигурацией Open GL по фиг.1, и соответственно, подробное описание каждой стадии здесь опущено, чтобы избежать избыточной информации. Однако, как показано на фиг.3, первая стадия 304 тестирования глубины помещена в начальной части в конвейере, и в частности перед стадией 305 текстурного отображения, а вторая стадия 308 тестирования глубины расположена между стадией 307 альфа-тестирования и стадией 309 альфа-сопряжения.The pixel operations at the respective pipeline stages shown in FIG. 3 can generally be the same as the operations previously described in connection with the Open GL configuration of FIG. 1, and accordingly, a detailed description of each stage is omitted here to avoid redundant information. However, as shown in FIG. 3, the first depth testing stage 304 is placed at the start of the conveyor, and in particular, before the texture mapping stage 305, and the second depth testing stage 308 is located between the alpha testing stage 307 and the alpha conjugation stage 309.

Операционная последовательность стадий конвейера по фиг.3 динамически переупорядочивается в зависимости от того, разрешается ли альфа-тестирование для обрабатываемого пикселя. То есть, в случае, когда альфа-тестирование не разрешается, конвейер организуется, как показано ссылочной позицией "a" на фиг.3 следующим образом: стадия 301 настройки треугольников → стадия 302 затенения пикселей → стадия 303 тестирования отсечения → стадия 304 тестирования глубины → стадия 305 текстурного отображения → стадия 306 плавного сопряжения (смешивания) текстур → стадия 309 альфа-сопряжения → стадия 310 логических операций.The operational sequence of the stages of the conveyor of FIG. 3 is dynamically reordered depending on whether alpha testing is allowed for the pixel being processed. That is, in the case where alpha testing is not permitted, the conveyor is organized as shown by the reference numeral “a” in FIG. 3 as follows: step 301 of setting up triangles → step 302 of pixel shading → step 303 of clipping testing → step 304 of depth testing → texture mapping stage 305 → texture smoothing (blending) stage 306 → alpha blending stage 309 → logical operation stage 310.

В случае, когда альфа-тестирование для пикселя разрешается, стадии продвигаются, как показано ссылочной позицией "b" на фиг.3 следующим образом: стадия 301 настройки треугольников → стадия 302 затенения пикселей → стадия 303 тестирования отсечения → стадия 305 текстурного отображения → стадия 306 плавного сопряжения (смешивания) текстур → стадия 307 альфа-тестирования → стадия 308 тестирования глубины → стадия 309 альфа-сопряжения → стадия 310 логических операций.In the case where alpha testing for the pixel is enabled, the steps advance as shown by the reference number “b” in FIG. 3 as follows: triangulation step 301 → pixel shading step 302 → clipping testing step 303 → texture mapping step 305 → step 306 smooth texture blending (blending) → alpha-testing stage 307 → depth testing stage 308 → alpha-coupling stage 309 → logical operations stage 310.

В общем, графический конвейер включает в себя управляющие биты, которые сдвигаются в сторону младшего разряда конвейера вместе с данными пикселя. Один из этих управляющих битов представляет собой бит альфа-тестирования. Также в общем, когда пакет треугольников применяется к конвейеру, каждый треугольник пакета будет иметь те же самые установочные параметры альфа-тестирования.In general, a graphics pipeline includes control bits that are shifted toward the least significant bit of the pipeline along with pixel data. One of these control bits is an alpha test bit. Also in general, when a package of triangles is applied to the pipeline, each triangle of the package will have the same alpha test settings.

Предположим, что альфа-тестирование первоначально является запрещенным, и соответственно, конвейер по фиг.3 структурируется в соответствии со ссылочной позицией "a", так что выполняется первая стадия 304 тестирования глубины, и так, что альфа-тестирование 307 и второе тестирование 308 глубины обходят. Предположим дополнительно, что затем обнаруживается бит альфа-тестирования в конвейере, который указывает, что альфа-тестирование разрешается. В это время, выполняется локальный сброс данных от тестирования 304 глубины к стадии 306 плавного сопряжения (смешивания) текстур, и первое тестирование 304 глубины опускается, а альфа-тестирование 307 и второе тестирование 308 глубины задействуются (не опускаются). При таком способе, достигается компоновка по ссылочной позиции "b" на фиг. 3. В конечном счете, когда бит альфа-тестирования указывает, что альфа-тестирование является запрещенным, конвейер переупорядочивается обратно к компоновке по ссылочной позиции "a".Assume that alpha testing is initially prohibited, and accordingly, the pipeline of FIG. 3 is structured according to the reference numeral “a”, so that the first stage 304 of depth testing is performed, and so that alpha testing 307 and second depth testing 308 get around. Suppose further that an alpha test bit is then detected in the pipeline, which indicates that alpha testing is permitted. At this time, data is being discarded locally from depth testing 304 to smooth texture blending (mixing) stage 306, and the first depth testing 304 is omitted, and alpha testing 307 and the second depth testing 308 are invoked (not omitted). With this method, the arrangement at reference position “b” in FIG. 3. Ultimately, when the alpha test bit indicates that alpha testing is prohibited, the pipeline reorders back to the layout at reference position “a”.

Фиг.4 изображает схематическое представление графического конвейера согласно примеру третьего варианта осуществления настоящего изобретения. Как показано, конвейер включает в себя стадию 401 настройки треугольников, стадию 402 затенения пикселей, стадию 403 тестирования отсечения, первый мультиплексор 404, стадию 405 тестирования глубины, второй мультиплексор 406, стадию 407 текстурного отображения, стадию 408 плавного сопряжения (смешивания) текстур, стадию 409 альфа-тестирования, третий мультиплексор 410, стадию 411 альфа-сопряжения и стадию 412 логических операций. 4 is a schematic diagram of a graphics pipeline according to an example of a third embodiment of the present invention. As shown, the pipeline includes a triangle setting step 401, a pixel shading step 402, a clipping testing step 403, a first multiplexer 404, a depth testing step 405, a second multiplexer 406, a texture mapping step 407, a texture blending (mixing) step 408, a texture step 409 alpha tests, third multiplexer 410, alpha conjugation step 411 and logical operations step 412 .

Операции над пикселями соответствующих конвейерных стадий, показанных на фиг.4, в общем могут быть такими же, как предварительно описанные в связи с конфигурацией Open GL по фиг.1, и соответственно, подробное описание каждой стадии здесь опущено, чтобы избежать избыточной информации. Однако, как показано на фиг.4, стадия 405 тестирования глубины помещена в начальной части в конвейере, и в частности, прежде чем стадия 407 текстурного отображения, и используются мультиплексоры 404, 406 и 410 для обеспечения возможности динамического переупорядочивания конвейера, чтобы при необходимости обеспечить альфа-тестирование.The pixel operations of the respective pipeline stages shown in FIG. 4 can generally be the same as previously described in connection with the Open GL configuration of FIG. 1, and accordingly, a detailed description of each stage is omitted here to avoid redundant information. However, as shown in FIG. 4, the depth testing step 405 is placed at the initial part in the pipeline, and in particular, before the texture mapping step 407, and multiplexers 404, 406, and 410 are used to enable dynamic reordering of the conveyor to provide, if necessary alpha testing.

Условие "АТ = 0" по фиг.4 обозначает состояние, где альфа-тестирование является запрещенным для обрабатываемых пикселей. В этом случае, мультиплексор 404 выбирает выходной сигнал со стадии 403 тестирования отсечения и применяет его к стадии 405 тестирования глубины; мультиплексор 406 выбирает выходной сигнал со стадии 405 тестирования глубины и применяет его к стадия 407 текстурного отображения; и мультиплексор 410 выбирает выходной сигнал со стадии 408 плавного сопряжения (смешивания) текстур и применяет его к стадии 411 альфа-сопряжения. Таким образом, когда АТ = 0, последовательность конвейера является следующей: стадия 401 настройки треугольников → стадия 402 затенения пикселей → стадия 403 тестирования отсечения → стадия 405 тестирования глубины → стадия 407 текстурного отображения → стадия 408 плавного сопряжения (смешивания) текстур → стадия 411 альфа-сопряжения → стадия 412 логических операций.The condition “AT = 0” of FIG. 4 indicates a state where alpha testing is prohibited for processed pixels. In this case, the multiplexer 404 selects an output signal from the clipping testing step 403 and applies it to the depth testing step 405; the multiplexer 406 selects the output signal from the depth testing step 405 and applies it to the texture mapping step 407; and multiplexer 410 selects an output signal from step 408 of smooth blending (mixing) of the textures and applies it to step 411 alpha-pairing. Thus, when AT = 0, the pipeline sequence is as follows: triangle setting stage 401 → pixel shading stage 402 → clipping testing stage 403 → depth testing stage 405 → texture rendering stage 407 → texture smoothing (blending) stage 408 → alpha stage 411 -conjugation → stage 412 logical operations.

Когда АТ ≠ 0, альфа-тестирование разрешается для пикселей, подлежащих обработке. В этом случае, мультиплексор 404 выбирает выходной сигнал со стадии 409 альфа-тестирования и применяет его к стадии 405 тестирования глубины; мультиплексор 406 выбирает выходной сигнал со стадии 403 тестирования отсечения и применяет его к стадия 407 текстурного отображения; и мультиплексор 410 выбирает выходной сигнал со стадии 405 тестирования глубины и применяет его к стадии 411 альфа-сопряжения. Таким образом, когда АТ ≠ 0, последовательность конвейера является следующей: стадия 401 настройки треугольников → стадия 402 затенения пикселей → стадия 403 тестирования отсечения → стадия 407 текстурного отображения → стадия 408 плавного сопряжения (смешивания) текстур → стадия 409 альфа-тестирования → стадия 405 тестирования глубины → стадия 411 альфа-сопряжения → стадия 412 логических операций.When AT ≠ 0, alpha testing is allowed for pixels to be processed. In this case, the multiplexer 404 selects the output signal from the alpha testing step 409 and applies it to the depth testing step 405; multiplexer 406 selects an output signal from clipping testing step 403 and applies it to texture mapping step 407; and the multiplexer 410 selects the output from the depth testing step 405 and applies it to the alpha conjugation step 411. Thus, when AT ≠ 0, the pipeline sequence is as follows: stage 401 of setting up triangles → stage 402 of pixel shading → stage 403 of testing clipping → stage 407 of texture mapping → stage 408 of smooth blending (mixing) of texture → stage 409 alpha testing → stage 405 depth testing → stage 411 alpha-conjugation → stage 412 logical operations.

В каждом из вариантов осуществления по фиг.3 и 4, трехмерный графический конвейер переупорядочивается в зависимости от того, разрешается ли альфа-тестирование. Если альфа-тестирование разрешается, то стадия тестирования глубины функционально располагается после стадии альфа-тестирования, поскольку результаты альфа-тестирования необходимы перед тестированием глубины. Если альфа-тестирование является запрещенным, то стадия тестирования глубины функционально располагается перед стадией текстурного отображения, чтобы устранить скрытые пиксели в начальной части в конвейере, таким образом сохраняя мощность и пропускную способность.In each of the embodiments of FIGS. 3 and 4, the three-dimensional graphics pipeline is reordered depending on whether alpha testing is allowed. If alpha testing is permitted, then the depth testing phase is functionally located after the alpha testing stage, since the results of alpha testing are necessary before depth testing. If alpha testing is forbidden, then the depth testing stage is functionally located before the texture rendering stage to eliminate hidden pixels in the initial part of the pipeline, thereby preserving power and throughput.

Фиг.5 изображает схематическое представление примера другого варианта осуществления настоящего изобретения. Подобно вариантам осуществления по фиг.3 и 4, конфигурация по фиг.5 способна обеспечивать альфа-тестирование при расположении в то же самое время стадии тестирования глубины в начальной части конвейера.5 is a schematic representation of an example of another embodiment of the present invention. Like the embodiments of FIGS. 3 and 4, the configuration of FIG. 5 is capable of providing alpha testing at the same time that the depth testing stage is located in the initial part of the pipeline.

На фиг.5 иллюстрируются стадия 501 тестирования глубины (HSR) (быстродействующее считывающее устройство), стадия 502 текстурного отображения, стадия 503 текстурирования, стадия 504 альфа-тестирования, схема 505 FIFO ("первым пришел - первым обслужен"), интерфейс 506 буфера глубины и буфер 507 глубины. Стадия 501 тестирования глубины, стадия 502 текстурного отображения, стадия 503 текстурирования и стадия 504 альфа-тестирования формируют часть графического конвейера трехмерной графической машины.5 illustrates a Depth Testing Step (HSR) step 501 (high-speed reader), a texture mapping step 502, a texturing step 503, an alpha testing step 504, a FIFO (first-come-first-serve) scheme 505, and a depth buffer interface 506 and buffer 507 depth. Depth testing step 501, texture mapping step 502, texturing step 503, and alpha testing step 504 form part of a graphics pipeline of a three-dimensional graphics machine.

При работе, обрабатываемый пиксель прибывает через конвейер на стадию 501 тестирования глубины, и значение по оси Z (величина глубины) пикселя сравнивается со значением по оси Z, хранящимся в соответствующем местоположении буфера 507 глубины. Это выполняется посредством передачи адреса считывания [addr_r(14:0)] в буфер 507 глубины через интерфейс 506 буфера и приема значения по оси Z буфера глубины [depth_r(15:0)], сохраненного в буфере 507 глубины. Значение по оси Z пикселя и значение по оси Z буфера глубины сравниваются, и если результат сравнения указывает, что пиксель может быть невидимым, пиксель эффективно отбрасывается. С другой стороны, если результат сравнения предсказывает, что пиксель может быть видимым, выполняется процесс задержанной записи в буфер, как описано ниже.In operation, the processed pixel arrives through the conveyor to the depth testing step 501, and the value along the Z axis (depth value) of the pixel is compared with the value along the Z axis stored in the corresponding location of the depth buffer 507. This is accomplished by transmitting the read address [addr_r (14: 0)] to the depth buffer 507 via the buffer interface 506 and receiving the Z axis value of the depth buffer [depth_r (15: 0)] stored in the depth buffer 507. The value on the Z axis of the pixel and the value on the Z axis of the depth buffer are compared, and if the comparison result indicates that the pixel may be invisible, the pixel is effectively discarded. On the other hand, if the comparison result predicts that the pixel may be visible, a delayed write process to the buffer is performed, as described below.

Предполагая, что схема 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] указывает, разрешено ли альфа-тестирование для обрабатываемого пикселя.Assuming that the FIFO circuitry 505 is not complete, as indicated by the [fifo_full] signal, the delayed write process to the buffer is performed by issuing the FIFO write command [fifo_write], and then writing the write address signal to the buffer [addr_w (14: 0)], new values along the Z axis of the pixel [depth_w (15: 0)] and the alpha test signal [alpha_test] in the FIFO scheme 505. The buffer write address signal [addr_w (14: 0)] is indicative of the corresponding location of the processed pixel in the depth buffer 507. The new value on the Z axis of the pixel [depth_w (15: 0)] represents the value on the Z axis of the processed pixel (which passed the depth test). The alpha test signal [alpha_test] indicates whether alpha testing is allowed for the pixel being processed.

Как и сигнал адреса записи в буфере [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 текстурирования.Like the buffer write address signal [addr_w (14: 0)], the new value along the Z axis of the pixel [depth_w (15: 0)] and the alpha test signal [alpha_test] are shifted through the FIFO circuit 505, the processed pixel is simultaneously subjected to texture mapping and texturing by texture mapping step 502 and texturing step 503, respectively. The depth "n" of the FIFO circuit 505 is preferably equal to the sum of the pixel capacities of the pipeline stages located between the depth testing step 501 and the alpha testing step 504. In this embodiment, the depth of the FIFO circuitry 505 is equal to the sum of the pixel information capacities of the texture mapping stage 502 and the texturing stage 503. As a result, the pixel will be processed on its way to the end of the FIFO scheme 505 in time matching, which coincides with the pixel processing by the texture mapping stage 502 and the texturing stage 503.

После текстурного отображения и текстурирования обрабатываемый пиксель затем применяется к стадии 504 альфа-тестирования. В это время, для пикселя альфа-тестирование либо разрешено, либо альфа-тестирование не разрешено.After texture mapping and texturing, the processed pixel is then applied to alpha testing step 504. At this time, for a pixel, alpha testing is either allowed or alpha testing is not allowed.

Если для пикселя альфа-тестирование не разрешено, пиксель передается вниз по конвейеру для дальнейшей обработки, а в интерфейс 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 глубины.If alpha testing is not allowed for a pixel, the pixel is sent down the pipeline for further processing, and the [valid_pixel] signal is sent to the depth buffer interface 506. Assuming the FIFO circuit 505 is not empty, as indicated by the [fifo_empty] signal, the depth buffer interface responds to the [valid_pixel] signal with a read command [fifo_read] in the FIFO circuit 505, and reads the write address signal in the [addr_w buffer (14: 0 )], the new value on the Z axis of the pixel [depth_w (15: 0)] and the alpha test signal [alpha_test]. Then, the depth buffer interface 506 updates the depth buffer 507 by accessing the depth buffer 507 at the address [addr_w (14: 0)] and overwriting the new value along the Z axis of the pixel [depth_w (15: 0)] in the depth buffer 507.

Если для пикселя альфа-тестирование разрешено, стадия 504 альфа-тестирования сравнивает величину альфа-фактора обрабатываемого пикселя с эталонной величиной. Если пиксель проходит альфа-тестирование, сигнал [alpha_pass] передается в интерфейс 506 буфера глубины, и пиксель передается вниз по конвейеру для дальнейшей обработки. Если происходит неуспешное завершение альфа-тестирования пикселя, в интерфейс 506 буфера глубины передается сигнал [alpha_fail], и пиксель эффективно отбрасывается.If alpha testing is enabled for a pixel, alpha testing step 504 compares the alpha value of the processed pixel with a reference value. If the pixel passes alpha testing, the signal [alpha_pass] is passed to the depth buffer interface 506, and the pixel is sent down the pipeline for further processing. If a pixel alpha test fails, an [alpha_fail] signal is transmitted to the depth buffer interface 506 and the pixel is effectively discarded.

Снова предполагая, что схема 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 глубины.Assuming again that the FIFO circuit 505 is not empty as indicated by the [fifo_empty] signal, the depth buffer interface, in response to the [alpha_pass] and [alpha_fail] signals, issues a read command [fifo_read] to the FIFO circuit 505 and reads the write address signal in the buffer [addr_w (14: 0)], the new value on the Z axis of the pixel [depth_w (15: 0)] and a signal that allows alpha testing [alpha_test]. If the [alpha_fail] signal is enabled, the depth buffer interface 506 does not update the depth buffer 507 with a new value on the pixel axis Z [depth_w (15: 0)]. On the other hand, if the [alpha_pass] signal is activated, the depth buffer interface 506 updates the depth buffer 507. That is, the depth buffer interface is formed to the depth buffer 507 at the address [addr_w (14: 0)] and overwrites the new value along the Z axis of the pixel [depth_w (15: 0)] in the depth buffer 507.

Реализация, описанная выше в связи с фиг. 5, включает в себя схему (например, схему FIFO), которая временно сохраняет результаты тестирования глубины. Фактическая запись нового значения по оси Z в буфер глубины задерживается до тех пор, пока не будут доступны результаты альфа-тестирования, связанного с новым пикселем. Если альфа-тестирование пройдено, новое значение по оси Z нового пикселя сохраняется в буфере глубины. Если альфа-тестирование завершается неуспешно, это не происходит. Если альфа-тестирование отсутствует, новое значение по оси Z может быть записано немедленно, но только после того, как записаны какие-нибудь значения по оси Z, которые находятся в процессе решения альфа-тестирования. Для этой цели может использоваться сигнал [alpha_test]. То есть, если результаты всех находящихся в процессе решения значений по оси Z не показывают альфа-тестирование, интерфейс буфера глубины может быть сконфигурирован так, чтобы немедленно считывать из схемы 505 FIFO и обновлять буфер 507 глубины соответствующим образом.The implementation described above in connection with FIG. 5 includes a circuit (eg, a FIFO circuit) that temporarily stores depth test results. The actual recording of a new value along the Z axis in the depth buffer is delayed until the results of alpha testing associated with the new pixel are available. If alpha testing is passed, the new value along the Z axis of the new pixel is stored in the depth buffer. If alpha testing fails, this does not happen. If there is no alpha testing, the new value on the Z axis can be recorded immediately, but only after any values on the Z axis are recorded that are in the process of solving alpha testing. The signal [alpha_test] can be used for this purpose. That is, if the results of all the z-axis values that are being processed do not show alpha testing, the depth buffer interface can be configured to immediately read from the FIFO circuitry 505 and update the depth buffer 507 accordingly.

Благодаря задерживанию обновления буфера глубины, ждущего результата альфа-тестирования, как в варианте осуществления по фиг.5, стадия тестирования глубины может быть расположена в начальной части конвейера, чтобы избежать обработки позже скрытых пикселей, таким образом сохраняя потребляемую мощность и пропускную способность.By delaying the update of the depth buffer waiting for the result of alpha testing, as in the embodiment of FIG. 5, the depth testing step can be located at the initial part of the pipeline to avoid processing later hidden pixels, thereby preserving power consumption and throughput.

На чертежах и в описании были раскрыты типичные предпочтительные варианты осуществления данного изобретения, и хотя были сформулированы определенные примеры, они используются только в универсальном и описательном смысле, а не с целью ограничения. Поэтому должно быть понятно, что объем настоящего изобретения должен толковаться прилагаемой формулой изобретения, а не описанными вариантами осуществления.In the drawings and in the description, typical preferred embodiments of the present invention have been disclosed, and although specific examples have been formulated, they are used only in a universal and descriptive sense, and not for the purpose of limitation. Therefore, it should be understood that the scope of the present invention should be construed by the appended claims, and not by the described embodiments.

Claims (16)

1. Графический конвейер для обработки данных пикселей, содержащий множество последовательно расположенных стадий обработки, которые визуализируют данные пикселей отображения из входных данных элементарных объектов, в котором стадии обработки включают в себя по меньшей мере стадию текстурирования, стадию альфа-тестирования и стадию тестирования глубины, в котором конвейер динамически переупорядочивается между по меньшей мере первой и второй последовательностями стадий в соответствии с состоянием альфа-тестирования обрабатываемых данных пикселей, в котором в первой последовательности стадий соответствующих запрещенному состоянию альфа-тестирования, стадия тестирования глубины функционально расположена раньше в графическом конвейере, чем стадия текстурирования, и в котором во второй последовательности стадий соответствующих разрешенному состоянию альфа-тестирования, множество последовательно расположенных стадий обработки включают в себя две стадии тестирования глубины, причем первая стадия тестирования глубины функционально расположена раньше в графическом конвейере, чем стадия текстурирования, и причем вторая стадия тестирования глубины функционально расположена после стадии текстурирования и стадии альфа-тестирования.1. A graphics pipeline for processing pixel data, comprising a plurality of sequentially arranged processing steps that visualize display pixel data from input data of elementary objects, wherein the processing steps include at least a texturing step, an alpha testing step and a depth testing step, wherein the pipeline is dynamically reordered between at least the first and second sequences of stages in accordance with the alpha testing state of the processed pixel data, in which in the first sequence of stages corresponding to the forbidden state of alpha testing, the stage of testing depth is functionally located earlier in the graphics pipeline than the stage of texturing, and in which in the second sequence of stages corresponding to the allowed state of alpha testing, many sequential processing steps include there are two stages of depth testing, and the first stage of depth testing is functionally located earlier in the graph. skom conveyor than texturing step, and wherein the second depth test stage situated after step functionally texturing and alpha testing. 2. Графический конвейер по п.1, дополнительно содержащий буфер глубины, который сохраняет величины глубины, полученные стадией тестирования глубины, в котором стадия альфа-тестирования расположена после стадии текстурирования, и в котором сохранение величин глубины в буфере глубины временно задерживается под управлением стадии альфа-тестирования.2. The graphics pipeline according to claim 1, further comprising a depth buffer that stores depth values obtained by the depth testing step, in which the alpha testing step is located after the texturing step, and in which the storage of depth values in the depth buffer is temporarily delayed by the control of the alpha step -testing. 3. Графический конвейер по п.1, дополнительно содержащий множество мультиплексоров, оперативно подсоединенных между стадиями обработки конвейера и управляемых в соответствии с состоянием альфа-тестирования обрабатываемых данных пикселей.3. The graphics pipeline according to claim 1, further comprising a plurality of multiplexers operatively connected between the processing stages of the pipeline and controlled in accordance with the alpha test state of the processed pixel data. 4. Графический конвейер по п.3, в котором множество мультиплексоров содержит первый мультиплексор, который применяет выходной сигнал от предыдущей конвейерной стадии к стадии тестирования глубины, когда состояние альфа-тестирования является запрещенным, и который применяет выходной сигнал со стадии альфа-тестирования к стадии тестирования глубины, когда состояние альфа-тестирования является разрешенным, второй мультиплексор, который применяет выходной сигнал со стадии тестирования глубины к стадии текстурирования, когда состояние альфа-тестирования является запрещенным, и который применяет выходной сигнал от предыдущей конвейерной стадии к стадии текстурирования, когда состояние альфа-тестирования является разрешенным, и третий мультиплексор, который применяет выходной сигнал от стадии текстурирования к последующей стадии, когда состояние альфа-тестирования является запрещенным, и который применяет выходной сигнал со стадии тестирования глубины к последующей стадии, когда состояние альфа-тестирования является разрешенным.4. The graphics pipeline according to claim 3, in which the plurality of multiplexers comprises a first multiplexer that applies the output from the previous pipeline to the depth testing stage when the alpha test state is disabled and that applies the output from the alpha test to the stage depth testing when the alpha testing state is enabled, the second multiplexer that applies the output from the depth testing stage to the texturing stage when the alpha state alpha testing is forbidden, and which applies the output from the previous pipeline stage to the texturing stage when the alpha test state is enabled, and a third multiplexer that applies the output from the texturing stage to the next stage when the alpha testing state is forbidden, and which applies the output from the depth testing stage to the next stage when the alpha testing state is enabled. 5. Графический конвейер по п.4, в котором предыдущая стадия представляет собой стадию тестирования отсечения.5. The graphics pipeline according to claim 4, in which the previous stage is a test stage clipping. 6. Графический конвейер по п.5, в котором последующая стадия представляет собой стадию альфа-сопряжения.6. The graphics pipeline according to claim 5, in which the subsequent stage is an alpha-conjugation stage. 7. Графический конвейер по п.1, в котором стадия текстурирования содержит стадию текстурного отображения и стадию плавного сопряжения (смешивания) текстур.7. The graphics pipeline according to claim 1, wherein the texturing step comprises a texture mapping step and a smooth blending (blending) step of the textures. 8. Графический конвейер по п.1, в котором данные пикселей по меньшей мере одной стадии графического конвейера сбрасываются при переключении между первой и второй последовательностями стадий.8. The graphics pipeline according to claim 1, in which the pixel data of at least one stage of the graphics pipeline is reset when switching between the first and second sequences of stages. 9. Графический конвейер для обработки данных пикселей, содержащий множество последовательно расположенных средств обработки, которые визуализируют данные пикселей отображения из входных данных элементарных объектов, в котором средства обработки включают в себя по меньшей мере средство текстурирования, средство альфа-тестирования и средство тестирования глубины, в котором конвейер динамически переупорядочивается между по меньшей мере первой и второй последовательностями стадий в соответствии с состоянием альфа-тестирования обрабатываемых данных пикселей, в котором в первой последовательности стадий соответствующих запрещенному состоянию альфа-тестирования, средство тестирования глубины функционально расположено раньше в графическом конвейере, чем средство текстурирования, и в котором во второй последовательности стадий соответствующих разрешенному состоянию альфа-тестирования, множество последовательно расположенных стадий обработки включает в себя два средства тестирования глубины, причем первое средство тестирования глубины функционально расположено раньше в графическом конвейере, чем средство текстурирования, и причем второе средство тестирования глубины функционально расположено после средства текстурирования и средства альфа-тестирования.9. A graphics pipeline for processing pixel data comprising a plurality of sequentially arranged processing means that visualize display pixel data from input data of elementary objects, in which the processing means include at least texturing means, alpha testing means and depth testing means, wherein the pipeline is dynamically reordered between at least the first and second sequences of stages in accordance with the alpha test state of the process pixel data, in which in the first sequence of stages corresponding to the forbidden state of alpha testing, the depth testing tool is functionally located earlier in the graphics pipeline than the texturing means, and in which in the second sequence of stages corresponding to the allowed state of alpha testing, there are many sequential processing steps includes two depth testing means, the first depth testing means being functionally located used in the graphics pipeline than the texturing means, and wherein the second depth testing means operatively positioned after the texturing means and means for the alpha test. 10. Графический конвейер по п.9, дополнительно содержащий средство сохранения величин глубины, полученных средством тестирования глубины, в котором средство альфа-тестирования расположено после средства текстурирования, и в котором сохранение величин глубины в средстве сохранения величин глубины временно задерживается под управлением средства альфа-тестирования.10. The graphics conveyor according to claim 9, further comprising means for storing depth values obtained by depth testing means, in which alpha testing means is located after the texturing means, and in which the storage of depth values in the means for storing depth values is temporarily delayed by alpha means testing. 11. Графический конвейер по п.9, дополнительно содержащий множество средств мультиплексирования, оперативно подсоединенных между средствами обработки конвейера и управляемых в соответствии с состоянием альфа-тестирования обрабатываемых данных пикселей.11. The graphics pipeline according to claim 9, further comprising a plurality of multiplexing means operatively connected between the processing means of the pipeline and controlled in accordance with the alpha test state of the processed pixel data. 12. Графический конвейер по п.11, в котором множество средств мультиплексирования содержит первое средство мультиплексирования, которое применяет выходной сигнал от предыдущего конвейерного средства к средству тестирования глубины, когда состояние альфа-тестирования является запрещенным, и которое применяет выходной сигнал со средства альфа-тестирования к средству тестирования глубины, когда состояние альфа-тестирования является разрешенным, второе средство мультиплексирования, которое применяет выходной сигнал со средства тестирования глубины к средству текстурирования, когда состояние альфа-тестирования является запрещенным, и которое применяет выходной сигнал от предыдущего конвейерного средства к средству текстурирования, когда состояние альфа-тестирования является разрешенным, и третье средство мультиплексирования, которое применяет выходной сигнал от средства текстурирования к последующему средству, когда состояние альфа-тестирования является запрещенным, и который применяет выходной сигнал со средства тестирования глубины к последующему средству, когда состояние альфа-тестирования является разрешенным.12. The graphics pipeline of claim 11, wherein the plurality of multiplexing means comprises first multiplexing means that applies the output from the previous conveyor means to the depth testing means when the alpha testing state is disabled and which uses the output from the alpha testing means to the depth testing means, when the alpha testing state is enabled, a second multiplexing means that applies the output from the test means depth to the texturing means when the alpha test state is disabled, and which applies the output from the previous pipeline means to the texturing means when the alpha testing state is enabled, and the third multiplexing tool that applies the output from the texturing means to the subsequent means when the alpha testing state is prohibited, and which applies the output from the depth testing means to the subsequent means, to When the alpha test state is enabled. 13. Графический конвейер по п.12, в котором предыдущее средство представляет собой средство тестирования отсечения.13. The graphics pipeline of claim 12, wherein the previous tool is a clipping test tool. 14. Графический конвейер по п.13, в котором последующее средство представляет собой средство альфа-сопряжения.14. The graphics pipeline according to item 13, in which the subsequent tool is an alpha-conjugate. 15. Графический конвейер по п.9, в котором средство текстурирования содержит средство текстурного отображения и средство плавного сопряжения (смешивания) текстур.15. The graphic conveyor according to claim 9, in which the texturing means comprises a texture display means and a means for smoothly blending (mixing) the textures. 16. Графический конвейер по п.9, в котором данные пикселей по меньшей мере одного средства графического конвейера сбрасываются при переключении между первой и второй последовательностями средств.16. The graphics pipeline according to claim 9, in which the pixel data of at least one means of the graphics pipeline are reset when switching between the first and second sequences of means.
RU2006134736/09A 2004-09-23 2005-03-02 Graphic conveyor and method for early depth detection RU2325699C1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/949,012 2004-09-23
US10/949,012 US20050195198A1 (en) 2004-03-03 2004-09-23 Graphics pipeline and method having early depth detection

Publications (1)

Publication Number Publication Date
RU2325699C1 true RU2325699C1 (en) 2008-05-27

Family

ID=39586697

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2006134736/09A RU2325699C1 (en) 2004-09-23 2005-03-02 Graphic conveyor and method for early depth detection

Country Status (1)

Country Link
RU (1) RU2325699C1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2680355C1 (en) * 2017-11-01 2019-02-19 Общество с ограниченной ответственностью "ВГТ" Method and system of removing invisible surfaces of a three-dimensional scene

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5850224A (en) * 1992-05-15 1998-12-15 Fujitsu Limited Three dimensional parallel drawing apparatus for synthesizing graphics data with image data using a pixel depth buffer and an image depth register
WO2000049574A1 (en) * 1999-02-17 2000-08-24 Sun Microsystems, Inc. Graphics system which renders samples into a sample buffer and generates pixels in response to stored samples at different rates
US6222550B1 (en) * 1998-12-17 2001-04-24 Neomagic Corp. Multiple triangle pixel-pipelines with span-range pixel interlock for processing separate non-overlapping triangles for superscalar 3D graphics engine
US6339432B1 (en) * 1999-09-24 2002-01-15 Microsoft Corporation Using alpha values to control pixel blending
RU2001118221A (en) * 2001-06-29 2003-05-27 Самсунг Электроникс Ко., Лтд. Image-based method for representing and visualizing a three-dimensional object and method for representing and visualizing an animated object
RU2001126577A (en) * 1999-03-01 2003-07-20 Сони Компьютер Энтертейнмент Инк. (Jp) Method and device for image visualization

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2216781C2 (en) * 2001-06-29 2003-11-20 Самсунг Электроникс Ко., Лтд Image-based method for presenting and visualizing three-dimensional object and method for presenting and visualizing animated object

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5850224A (en) * 1992-05-15 1998-12-15 Fujitsu Limited Three dimensional parallel drawing apparatus for synthesizing graphics data with image data using a pixel depth buffer and an image depth register
US6222550B1 (en) * 1998-12-17 2001-04-24 Neomagic Corp. Multiple triangle pixel-pipelines with span-range pixel interlock for processing separate non-overlapping triangles for superscalar 3D graphics engine
WO2000049574A1 (en) * 1999-02-17 2000-08-24 Sun Microsystems, Inc. Graphics system which renders samples into a sample buffer and generates pixels in response to stored samples at different rates
RU2001126577A (en) * 1999-03-01 2003-07-20 Сони Компьютер Энтертейнмент Инк. (Jp) Method and device for image visualization
US6339432B1 (en) * 1999-09-24 2002-01-15 Microsoft Corporation Using alpha values to control pixel blending
RU2001118221A (en) * 2001-06-29 2003-05-27 Самсунг Электроникс Ко., Лтд. Image-based method for representing and visualizing a three-dimensional object and method for representing and visualizing an animated object

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2680355C1 (en) * 2017-11-01 2019-02-19 Общество с ограниченной ответственностью "ВГТ" Method and system of removing invisible surfaces of a three-dimensional scene

Similar Documents

Publication Publication Date Title
US20050195198A1 (en) Graphics pipeline and method having early depth detection
US8228328B1 (en) Early Z testing for multiple render targets
US8698828B2 (en) Graphics processing systems
JP5296169B2 (en) Tiled prefetch and cached depth buffer
US20040189651A1 (en) Programmable graphics system and method using flexible, high-precision data formats
US5790134A (en) Hardware architecture for image generation and manipulation
CA2826405C (en) Graphics processing architecture for an fpga
US20110148892A1 (en) Forming a windowing display in a frame buffer
WO2000011605B1 (en) Fragment operations in a 3d-graphics pipeline
WO2012158817A2 (en) Rendering mode selection in graphics processing units
US20240070962A1 (en) Graphics processing method and system
JP2004280125A (en) Video/graphic memory system
US7629982B1 (en) Optimized alpha blend for anti-aliased render
US10769838B2 (en) Hierarchical graphics processing for primitives
US7609273B1 (en) Pixel load instruction for a programmable graphics processor
US7612781B2 (en) Memory control method of graphic processor unit
JP3504240B2 (en) Image processing system, device, method and computer program
US5966142A (en) Optimized FIFO memory
TWI474280B (en) System and method for improving throughput of a graphics processing unit
CN106204407B (en) Graphics processing system and related graphics processing method thereof
RU2325699C1 (en) Graphic conveyor and method for early depth detection
US7400326B1 (en) System and method for delivering multiple data streams via multiple buses
US8081182B2 (en) Depth buffer for rasterization pipeline
US9613392B2 (en) Method for performing graphics processing of a graphics system in an electronic device with aid of configurable hardware, and associated apparatus
EP1210691B1 (en) Method, system, and computer program product for overlapping graphics data collection and transmission using a single processor

Legal Events

Date Code Title Description
MM4A The patent is invalid due to non-payment of fees

Effective date: 20110303