微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在glsl中索引描述符数组?

如何解决如何在glsl中索引描述符数组?

我有一个缓冲区描述符数组,每个描述符都包含一个不同结构的数组。我需要做的是单独挑选每个并告诉里面是什么。但是,我几乎不知道 glsl 语法是如何工作的,并且在网上找不到任何东西。目前我做的是

struct myData
{
    /.../
};
layout(set = 0,binding = 0)buffer a
{
    uint count;
    myData data[];
};

//or this

layout(set = 0,binding = 0)buffer a
{
    uint count;
    myData data[];
} A[2];

//And what I want is

layout(set = 0,binding = 0,index = 0)buffer a
{
    uint countMyData;
    myData data[];
};
layout(set = 0,index = 1)buffer b
{
    uint countIndices;
    uint indices[];
};

解决方法

我有一个缓冲区描述符数组,每个描述符都包含一个不同结构的数组。

你自相矛盾。如果你有一个数组,那么每个元素都是相同的种类int 数组的每个元素可能具有不同的值,但每个数组元素都是一个 int

这就是“数组”的意思。

这是一个非此即彼的情况。描述符数组的元素使用相同的描述符定义,或者您创建两个不同的描述符定义,具有两个不同的绑定位置,代表两个不同的描述符。

现在,对于不同的数组元素,排列的无大小描述符可以有不同的大小。但它们都将使用相同的描述符定义。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。