Я хочу создать функцию, которая принимает несколько текстур и добавляет их и разбивает их рядом друг с другом. Например, если у меня был IMGA, imgB, IMGC я могу получить текстуру, как это:Добавление текстур с использованием HLSL
AAB
CBB
BCA
Рекомендуем также изображения не должны быть одинакового размера, так что я мог бы получить что-то вроде этого:
AAB C
CBB
BAC C
Кто-нибудь, как я могу это сделать в HLSL, на каких функциях я должен смотреть? Есть ли у вас синтаксический пример?
Спасибо :)
EDIT: Я не совсем доволен ответами еще, я буду изучать их более подробно, то, возвращаясь к этому вопросу
ОК, спасибо, концепция атласа выглядит интересной. вы рекомендуете какие-либо учебники?Это первый случай, когда я пытаюсь написать шейдер, что-нибудь поможет –
Loop уже не так уж плох, а графические процессоры достаточно гибкие, чтобы увидеть большинство ресурсов, необходимых для этого, текстура Bindless, например, позволяет связывать все текстуры, независимо от того, там форматы и размер и выберите тот, который вам нужен внутри HLSL, либо из текстуры косвенности, атрибутов вершин и т. д. Но в вопросе OP он не собирается делать никаких хороших традиционных решений, вырезая экран в квадрациклах с вершинами для каждого текстура является самой простой. – galop1n