ДиректХ9:Источник атрибутов вершинного шейдера

StackOverflow https://stackoverflow.com/questions/1110973

  •  12-09-2019
  •  | 
  •  

Вопрос

Речь идет о DirectX 9.

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

Теперь, если используемому вершинному шейдеру нужен какой-то атрибут (например, с D3DDECLUSAGE_NORMAL и UsageIndex 1 или 2), но предоставленное объявление вершины не включает этот атрибут (т.данные, предоставленные в источниках потока, не включают этот атрибут) и вызывается DrawPrimitive, откуда DirectX получает значение для этого атрибута?

Это было полезно?

Решение

«Если данные в потоке вершин содержат меньше компонентов, чем соответствующий тип данных шейдера, недостающие компоненты будут инициализированы значением 0 (за исключением w, который инициализируется значением 1)».

Взято из «Документации по графике Windows DirectX (август 2009 г.)»

Содержание > HLSL > Руководство по программированию > Написание шейдеров HLSL в Direct3D 9 > Изменение входных данных и семантики шейдеров

Другие советы

Спецификация DirectX 9 определяет значения «по умолчанию» для необъявленных атрибутов, обычно (0,0,0,1).Их создает либо драйвер устройства, либо графический процессор.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top