Можно ли изменить шаблон треугольника в доменном шейдере? - PullRequest
0 голосов
/ 28 апреля 2020

В настоящее время я использую аппаратную тесселяцию (DX12 / HLSL) для увеличения числа вершин четырехугольника. Вершинный шейдер получает одну вершину, представляющую большой квад, и тесселлятор должен превратить этот квад в несколько меньших квадратов.

В доменном шейдере я просто использую SV_DOMAINLOCATION, чтобы сместить элемент управления положение точек:

float2 position;
position.x = controlPoint.x + (size.x * domain.x);
position.y = controlPoint.y + (size.y * domain.y);

Проблема в том, что я не могу найти способ изменить шаблон треугольников, который получается из этого.

1

Как показано на рисунке выше, результат, который я сейчас получаю, представлен (A), а результат, который я пытаюсь получить, представлен (B).

Итак, мой вопрос:

Есть ли способ, которым я могу повлиять на структуру треугольников треугольников, сгенерированных из тесселлятора, и если да, то как это можно сделать?

Примечание Я понимаю, что могу сделать это в геометрическом шейдере, но стараюсь избежать этого решения.

...