Наложение текстурыTexture blending

Direct3D может накладывать на примитивы до восьми текстур за один проход.Direct3D can blend as many as eight textures onto primitives in a single pass. Использование множественного наложения текстур способно значительно увеличить частоту кадров приложения Direct3D.The use of multiple texture blending can profoundly increase the frame rate of a Direct3D application. Приложения используют множественное наложение текстур для нанесения текстур, теней, зеркального освещения, рассеянного освещения и других специальных эффектов за один проход.An application employs multiple texture blending to apply textures, shadows, specular lighting, diffuse lighting, and other special effects in a single pass.

Чтобы использовать наложение текстур, приложению необходимо сначала проверить, поддерживает ли оно оборудованием пользователя.To use texture blending, your application should first check if the user's hardware supports it.

Этапы текстуры и текстуры, наложения cascadeTexture stages and the texture blending cascade

Direct3D поддерживает однопроходное наложение нескольких текстур посредством использования шагов текстурирования.Direct3D supports single-pass multiple texture blending through the use of texture stages. Шаг текстурирования получает два аргумента и выполняет с ними операцию наложения, передавая результат для дальнейшей обработки или растеризации.A texture stage takes two arguments and performs a blending operation on them, passing on the result for further processing or for rasterization. Шаг текстурирования можно изобразить, как показано на следующем рисунке.You can visualize a texture stage as shown in the following diagram.

Схема шага текстурирования

Как показано на схеме выше, на шаге текстурирования происходит наложение двух аргументов с помощью определенного оператора.As the preceding diagram shows, texture stages blend two arguments by using a specified operator. Среди типичных операций — простая модуляция или добавления цветовых или альфа-компонентов аргументов. При этом поддерживается более двух десятков операций.Common operations include simple modulation or addition of the color or alpha components of the arguments, but more than two dozen operations are supported. Аргументами для шага текстурирования могут являться связанные текстуры, обработанный цвет или альфа-канал (обработка происходит во время заливки Гуро), произвольный цвет и альфа-канал или результат предыдущего шага текстурирования.The arguments for a stage can be an associated texture, the iterated color or alpha (iterated during Gouraud shading), arbitrary color and alpha, or the result from the previous texture stage.

Примечание    Direct3D, являющийся отличительным признаком смешения из альфа-смешения цветов.Note   Direct3D distinguishes color blending from alpha blending. Приложения задают операции и аргументы наложения цвета и альфа-канала по отдельности, и результаты этих параметров не зависят друг от друга.Applications set blending operations and arguments for color and alpha individually, and the results of those settings are independent of one another.

 

Сочетание аргументов и операций, производимых в ходе различных этапов наложения, определяет простой язык наложения на основе потока.The combination of arguments and operations used by multiple blending stages define a simple flow-based blending language. Результаты одного этапа перетекают на другой, потом на следующий и т. д.The results from one stage flow down to another stage, from that stage to the next, and so on. Концепцию перетекания результатов из одного этапа в другой перед конечной растеризацией на многоугольнике часто называют каскадом наложения текстур.The concept of results flowing from stage to stage to eventually be rasterized on a polygon is often called the texture blending cascade. На следующей схеме показано, как отдельные шаги текстурирования составляют каскад наложения текстур.The following diagram shows how individual texture stages make up the texture blending cascade.

схема шагов текстурирования в каскаде наложения текстур

Каждый шаг на устройстве имеет индекс с отчетом от нуляEach stage in a device has a zero-based index. Direct3D поддерживает до восьми этапов наложения, однако следует всегда проверять возможности устройства, чтобы определить, сколько этапов поддерживает именно оно.Direct3D allows up to eight blending stages, although you should always check device capabilities to determine how many stages the current hardware supports. Первый этап наложения имеет индекс 0, второй — 1 и т. д., вплоть до 7.The first blending stage is at index 0, the second is at 1, and so on, up to index 7. Система накладывает этапы в порядке возрастания индекса.The system blends stages in increasing index order.

Используйте только необходимое количество этапов; по умолчанию неиспользуемые этапы отключаются.Use only the number of stages you need; the unused blending stages are disabled by default. Поэтому если приложение использует только первые два этапа, необходимо настроить операции и аргументы только для этапа 0 и 1.So, if your application only uses the first two stages, it need only set operations and arguments for stage 0 and 1. Система обрабатывает эти два этапа и игнорирует отключенные этапы.The system blends the two stages, and ignores the disabled stages.

Если количество этапов в вашем приложении меняется в зависимости от ситуации, например если для некоторых объектов используется четыре этапа, а для других — только два, не нужно явно отключать все ранее использованные этапы.If your application varies the number of stages it uses for different situations - such as four stages for some objects, and only two for others - you don't need to explicitly disable all previously used stages. Можно отключить операцию цвета для первого неиспользуемого этапа, тогда все этапы с более высоким индексом применены не будут.One option is to disable the color operation for the first unused stage, then all stages with a higher index will not be applied. Другой вариант — полностью отключить сопоставление текстур, установив для операции цвета на первом шаге текстурирования (шаг 0) состояние «отключено».Another option is to disable texture mapping altogether by setting the color operation for the first texture stage (stage 0) to a disabled state.

В этом разделеIn this section

РазделTopic ОписаниеDescription

Этапы наложенияBlending stages

Этап наложения — это набор операций с текстурами и их аргументов, определяющих наложение текстур.A blending stage is a set of texture operations and their arguments that define how textures are blended.

Наложения текстуры многопроходныйMultipass texture blending

Приложения Direct3D могут создавать различные специальные эффекты путем применения различных текстур к примитиву в процессе многопроходной отрисовки.Direct3D applications can achieve numerous special effects by applying various textures to a primitive over the course of multiple rendering passes. Общий термин для этого — многопроходное наложение текстуры.The common term for this is multipass texture blending. Обычно многопроходное наложение текстуры используется для эмуляции эффектов сложных моделей освещения и затенения путем применения нескольких цветов из нескольких различных текстур.A typical use for multipass texture blending is to emulate the effects of complex lighting and shading models by applying multiple colors from several different textures. Одно такое приложение называется Сопоставление освещения.One such application is called light mapping.

 

Связанные разделыRelated topics

ТекстурыTextures