RU2325699C1 - Graphic conveyor and method for early depth detection - Google Patents
Graphic conveyor and method for early depth detection Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 13
- 238000001514 detection method Methods 0.000 title 1
- 238000012360 testing method Methods 0.000 claims abstract description 193
- 238000012545 processing Methods 0.000 claims abstract description 29
- 238000002156 mixing Methods 0.000 claims description 27
- 238000013507 mapping Methods 0.000 claims description 23
- 230000003111 delayed effect Effects 0.000 claims description 6
- 238000003384 imaging method Methods 0.000 abstract 1
- 239000000126 substance Substances 0.000 abstract 1
- 239000012634 fragment Substances 0.000 description 7
- 230000021615 conjugation Effects 0.000 description 5
- IXKSXJFAGXLQOQ-XISFHERQSA-N WHWLQLKPGQPMY Chemical compound C([C@@H](C(=O)N[C@@H](CC=1C2=CC=CC=C2NC=1)C(=O)N[C@@H](CC(C)C)C(=O)N[C@@H](CCC(N)=O)C(=O)N[C@@H](CC(C)C)C(=O)N1CCC[C@H]1C(=O)NCC(=O)N[C@@H](CCC(N)=O)C(=O)N[C@@H](CC(O)=O)C(=O)N1CCC[C@H]1C(=O)N[C@@H](CCSC)C(=O)N[C@@H](CC=1C=CC(O)=CC=1)C(O)=O)NC(=O)[C@@H](N)CC=1C2=CC=CC=C2NC=1)C1=CNC=N1 IXKSXJFAGXLQOQ-XISFHERQSA-N 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000009499 grossing Methods 0.000 description 2
- 238000009877 rendering Methods 0.000 description 2
- 238000012800 visualization Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 201000007909 oculocutaneous albinism Diseases 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Images
Landscapes
- Image Processing (AREA)
- Image Generation (AREA)
Abstract
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
В трехмерных графических системах каждый объект, подлежащий отображению, обычно разделяется на поверхностные треугольники, определяемые информацией о вершинах, хотя могут использоваться другие элементарные формы. Также обычно графический конвейер предназначен для обработки последовательных пакетов треугольников объекта или изображения. Треугольники любого данного пакета могут визуально накладываться друг на друга в пределах данной сцены.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
Стадия 102 затенения пикселей использует информацию о вершинах для вычисления того, какие пиксели охвачены каждым треугольником из обрабатываемого пакета треугольников. Поскольку треугольники могут накладываться друг на друга, многочисленные пиксели различной глубины могут быть расположены в одной и той же точке на экранном устройстве отображения. В частности, стадия 101 затенения пикселей интерполирует затенение (величину освещения), значение цвета и величину глубины для каждого пикселя, используя информацию о вершинах. Для этой цели можно выбрать любой из множества методов затенения и операции затенения могут выполняться на основании треугольников, вершин или пикселей.The
Стадия 103 текстурного отображения и стадия 104 плавного сопряжения текстур действуют, чтобы добавлять и смешивать текстуры в каждом пикселе обрабатываемого пакета треугольников. В самом общем смысле, это выполняется посредством отображения предварительно определенных текстур на пиксели в соответствии с информацией о вершинах. Как и с затенением, можно выбирать множество методов, чтобы получать текстурирование. Также, может быть реализован метод, известный как обработка вуалированием (наложение тумана).The
Стадия 105 тестирования отсечения действует, чтобы отбрасывать пиксели, содержащиеся в участках (фрагментах) треугольников, которые выходят за пределы поля зрения отображаемой сцены. В общем, это выполняется посредством определения, лежат ли пиксели в пределах так называемого прямоугольника отсечения.
Модуль 106 альфа-тестирования условно отбрасывает фрагмент треугольника (более точно, пиксели, содержащиеся во фрагменте) на основании сравнения между величиной альфа-фактора (величиной прозрачности), связанного с этим фрагментом, и эталонной величиной альфа-фактора. Точно так же, тестирование трафарета условно отбрасывает фрагменты на основании сравнения между каждыми фрагментами и сохраненным значением трафарета.
Стадия 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-
Модуль 110 логических операций в общем обозначает разнообразные остающееся процессы конвейера для получения в конечном счете данных отображения пикселей.
В любой графической системе желательно сохранять пропускную способность процессора и памяти до степени, возможной при поддержании удовлетворительной эффективности. Это особенно важно в случае переносных или карманных устройств, где пропускные способности могут быть ограничены. Также, как было предварительно предложено, имеется конкретная потребность в промышленности в снижении до минимума потребляемой мощности при обработке трехмерной графики для отображения на переносных или карманных устройствах.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
Операции над пикселями на соответствующих конвейерных стадиях, показанных на фиг.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
Операционная последовательность стадий конвейера по фиг.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 →
В случае, когда альфа-тестирование для пикселя разрешается, стадии продвигаются, как показано ссылочной позицией "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:
В общем, графический конвейер включает в себя управляющие биты, которые сдвигаются в сторону младшего разряда конвейера вместе с данными пикселя. Один из этих управляющих битов представляет собой бит альфа-тестирования. Также в общем, когда пакет треугольников применяется к конвейеру, каждый треугольник пакета будет иметь те же самые установочные параметры альфа-тестирования.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
Фиг.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
Операции над пикселями соответствующих конвейерных стадий, показанных на фиг.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
Условие "АТ = 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
Когда АТ ≠ 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
В каждом из вариантов осуществления по фиг.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
При работе, обрабатываемый пиксель прибывает через конвейер на стадию 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
Предполагая, что схема 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
Как и сигнал адреса записи в буфере [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
После текстурного отображения и текстурирования обрабатываемый пиксель затем применяется к стадии 504 альфа-тестирования. В это время, для пикселя альфа-тестирование либо разрешено, либо альфа-тестирование не разрешено.After texture mapping and texturing, the processed pixel is then applied to
Если для пикселя альфа-тестирование не разрешено, пиксель передается вниз по конвейеру для дальнейшей обработки, а в интерфейс 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
Если для пикселя альфа-тестирование разрешено, стадия 504 альфа-тестирования сравнивает величину альфа-фактора обрабатываемого пикселя с эталонной величиной. Если пиксель проходит альфа-тестирование, сигнал [alpha_pass] передается в интерфейс 506 буфера глубины, и пиксель передается вниз по конвейеру для дальнейшей обработки. Если происходит неуспешное завершение альфа-тестирования пикселя, в интерфейс 506 буфера глубины передается сигнал [alpha_fail], и пиксель эффективно отбрасывается.If alpha testing is enabled for a pixel,
Снова предполагая, что схема 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
Реализация, описанная выше в связи с фиг. 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
Благодаря задерживанию обновления буфера глубины, ждущего результата альфа-тестирования, как в варианте осуществления по фиг.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)
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)
| 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)
| 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)
| 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 |
-
2005
- 2005-03-02 RU RU2006134736/09A patent/RU2325699C1/en not_active IP Right Cessation
Patent Citations (6)
| 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)
| 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 |