gpt4 book ai didi

c++ - 正确的 GLSL 无绑定(bind)纹理句柄中的结构布局

转载 作者:行者123 更新时间:2023-12-01 14:44:14 25 4
gpt4 key购买 nike

我一直在尝试使用以下代码来做一个无绑定(bind)纹理句柄的全局列表,使用 UBO 发送到 GPU。

struct Material
{
sampler2D diff;
sampler2D spec;
sampler2D norm;

};


layout(std140, binding = 2) uniform Materials
{
Material materials[64];
};

但是,我认为我在 c++ 中错误地填充了缓冲区,没有考虑到正确的偏移量等。我似乎找不到任何关于 std140 布局如何处理 sampler2D 的信息。我应该怎么做?我需要考虑哪些补偿?

最佳答案

在这方面,句柄没有什么特别之处。标准说:

If the member is a scalar consuming N basic machine units, the base align- ment is N.



就“标量”而言,采样器实际上是 64 位整数。所以这些成员的基本对齐方式是 64 位整数。但这并不重要,因为在 std140 ,结构的对齐总是向上舍入到 vec4 的大小。因此该结构将占用 32 个字节。

关于c++ - 正确的 GLSL 无绑定(bind)纹理句柄中的结构布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58775519/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com