gpt4 book ai didi

c++ - 在纹理数组中绘制 Texture2D 图集

转载 作者:行者123 更新时间:2023-11-30 05:20:40 28 4
gpt4 key购买 nike

如何通过 GLSL Sampler 仅绘制存储在 Texture Array 中的 Texture2D Atlas 的一部分?例如我有纹理图集,我会将它们放在一起(与其他相同大小的图集)在 Texture2D 数组中。 (glTexSubImage3D)

enter image description here

那么,在那种情况下我的采样器应该是什么样子的?

https://www.opengl.org/wiki/Array_Texture

https://www.opengl.org/wiki/Sampler_(GLSL)

我只找到示例,如何从数组中选择和应用整个纹理,但如果在我们的数组中则没有任何相关内容我们存储纹理图集。

最佳答案

幸运的是,这是我最近工作的领域,要在片段着色器中使用二维纹理数组,您可以执行如下操作:

#version 330

uniform sampler2DArray tex;

flat in uint fragLayer;
in vec2 fragTexCoord;

out vec4 colour;

void main()
{
colour = texture( tex, vec3( fragTexCoord, fragLayer ) );
}

因此纹理层是用于访问纹理数组中各个像素的 3d vector 的第三个元素。

另请注意,直接在原始图像上使用原始(也是最简单的)glTexSubImage3d 仅当所有图 block 都在垂直线上而不是网格时才有效。

关于c++ - 在纹理数组中绘制 Texture2D 图集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40562303/

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