Поделиться через


Этап шейдера домена (DS)

Этап шейдера домена (DS) вычисляет позицию вершины разделенной точки в выходном исправлении; он вычисляет позицию вершины, соответствующую каждому образцу домена. Шейдер домена запускается один раз на точку вывода стадии tessellator и имеет доступ только для чтения к выходным исправлениям шейдера корпуса и выходным константам исправления, а также выходные координаты шейдера на стадии tessellator.

Назначение и использование

Этап шейдера домена (DS) выводит позицию вершины разделенной точки в выходном исправлении на основе входных данных из этапа шейдера корпуса (HS) и этапа Tessellator (TS).

схема этапа шейдера домена

Ввод

  • Шейдер домена использует выходные точки управления с этапа шейдера корпуса (HS). Выходные данные шейдера корпуса включают:
    • Контрольные точки.
    • Исправление постоянных данных.
    • Факторы тесселяции. Факторы тесселяции могут включать значения, используемые фиксированной функцией tessellator, а также необработанные значения (перед округлением целым числом тесселяции, например), которые упрощают геоморфирование, например.
  • Шейдер домена вызывается один раз на каждую координату вывода из этапа Tessellator (TS).

Выходные данные

  • Этап шейдера домена (DS) выводит позицию вершины разделенной точки в выходном исправлении.

После завершения шейдера домена tessellation завершается и данные конвейера продолжаются на следующем этапе конвейера, например этап геометрии шейдера (GS) и этап шейдера пикселей (PS). Шейдер геометрии, ожидающий примитивов с примечаниями (например, 6 вершин на треугольник) недействителен, если тесселлирование активно (это приводит к неопределенному поведению, о котором будет жаловаться слой отладки).

Пример

void main( out    MyDSOutput result, 
           float2 myInputUV : SV_DomainPoint, 
           MyDSInput DSInputs,
           OutputPatch<MyOutPoint, 12> ControlPts, 
           MyTessFactors tessFactors)
{
     ...

     result.Position = EvaluateSurfaceUV(ControlPoints, myInputUV);
}

Графический конвейер