Size: a a a

pro.graphon (and gamedev)

2020 June 28

I

Ioann_V in pro.graphon (and gamedev)
disba1ancer
это чё за магия такая?
ну вот так вот. Её Cudaисты юзают. Меня же это, в чатик из 10ти человек добавили. Там пацаны из гугла, из рок флоу, твитора, эпл. Кто то даже с суперкомпами ворчит. От них и узнаю новое.
источник

РК

Роман Катунцев... in pro.graphon (and gamedev)
Товарищи, может дурацкий вопрос, но вот в спецификации вулкана написано, что можно массивом биндить текстуры не только разных размеров, но и разной размерности (например, 6 2д и 2 3д) Просто массив в шейдере выглядит так:

layout(set = 0, binding = 1) uniform texture2D textures[8];

А как будет выглядеть такая вот страшная конструкция с разными размерностями?
источник

РК

Роман Катунцев... in pro.graphon (and gamedev)
И аналогичный вопрос про массив разнородных буфферов
источник

РК

Роман Катунцев... in pro.graphon (and gamedev)
Роман Катунцев
Товарищи, может дурацкий вопрос, но вот в спецификации вулкана написано, что можно массивом биндить текстуры не только разных размеров, но и разной размерности (например, 6 2д и 2 3д) Просто массив в шейдере выглядит так:

layout(set = 0, binding = 1) uniform texture2D textures[8];

А как будет выглядеть такая вот страшная конструкция с разными размерностями?
В общем спецификация говорит, что можно через aliasing вида

layout(set = 0, binding = 1) uniform texture2D textures2[8];
layout(set = 0, binding = 1) uniform texture3D textures3[8];

Пока к одному и тому же месту не обращаешься через разные алиасы. Но проверить пока не могу
источник

AT

Anatoly Tomilov in pro.graphon (and gamedev)
Роман Катунцев
В общем спецификация говорит, что можно через aliasing вида

layout(set = 0, binding = 1) uniform texture2D textures2[8];
layout(set = 0, binding = 1) uniform texture3D textures3[8];

Пока к одному и тому же месту не обращаешься через разные алиасы. Но проверить пока не могу
именно так
источник

AT

Anatoly Tomilov in pro.graphon (and gamedev)
источник

AT

Anatoly Tomilov in pro.graphon (and gamedev)
так можно делать, т.к. размеры дескрипторов текстур одинаковы
источник

РК

Роман Катунцев... in pro.graphon (and gamedev)
Теперь интересно, как провернуть что-то подобное

struct MaterialData {
 float tilingX;
 float tilingY;
 float reflectance;
 float padding0;

 uint albedoTexture;
 uint normalTexture;
 uint roughnessTexture;
 uint padding1;
};

struct DrawData {
 uint material;
 uint transform;
 uint offset;
 uint padding;
};

layout(set = 0, binding = 2) buffer Materials { MaterialData data[]; } materials[];
layout(set = 0, binding = 2) buffer Draws { DrawData data[]; } draws[];


Соответственно, одно будет в [0], второе в [1], чтобы не жрать биндингов
источник

AT

Anatoly Tomilov in pro.graphon (and gamedev)
не. Это уже что-то не то
источник

РК

Роман Катунцев... in pro.graphon (and gamedev)
Ну теоретически дескрипторы блоков тоже не сильно отличаются,
источник

РК

Роман Катунцев... in pro.graphon (and gamedev)
Видимо, не попробуешь - не узнаешь
источник

AT

Anatoly Tomilov in pro.graphon (and gamedev)
ну может быть
источник

AT

Anatoly Tomilov in pro.graphon (and gamedev)
только смысл?
источник

РК

Роман Катунцев... in pro.graphon (and gamedev)
Если есть только 4 биндслота, а данные передать хочется
источник

РК

Роман Катунцев... in pro.graphon (and gamedev)
Хотя ещё вопрос, что большее извращение - запихивание всего в унифицированный формат или вот это
источник

I

Ioann_V in pro.graphon (and gamedev)
Ребята, анпомните мне название Render engine очень популярного, и название из 4-5ти букв...
источник

I

Ioann_V in pro.graphon (and gamedev)
Типа ntt, что-то такое, не помню хоть убей... Но...А.. Может через deligent найду
источник

I

Ioann_V in pro.graphon (and gamedev)
Не, не могу найти - но если кто-то понял о чем я, welcome
источник

BB

Bohdan Bessonov in pro.graphon (and gamedev)
Ioann_V
Типа ntt, что-то такое, не помню хоть убей... Но...А.. Может через deligent найду
Filament?
источник

I

Ioann_V in pro.graphon (and gamedev)
Не, там прям короткое название, но очень известный - там и вулкан есть, и директ. И это чисто Рендер Энжин.
источник