在《OpenGL-纹理数组》一文中看到纹理数组只用一个纹理对象就可以加载多个通道数据。
到《学一学, Texture Array纹理数组》一文下载一个程序包,学一学纹理数组的所有运用细节。
在层卷积中能减少着色器运行次数。
把输入的多通道数据载入一个纹理数组中:
int LoadGLTextures_arrayG(float *pTexData,int num)
{
glGenTextures(1, &texture);
//绑定纹理
glBindTexture(GL_TEXTURE_2D_ARRAY, texture);
//设置纹理过滤的参数
glTexParameteri(GL_TEXTURE_2D_ARRAY, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
glTexParameteri(GL_TEXTURE_2D_ARRAY, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
glTexParameteri(GL_TEXTURE_2D_ARRAY, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D_ARRAY, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
//加载纹理数据
glTexImage3D(GL_TEXTURE_2D_ARRAY, 0, textureParameters.texInternalFormat, unWidth, unHeight, num, 0, textureParameters.texFormat, GL_FLOAT, pTexData);
return 0;
}
层卷积:
//核数据,核宽,输入维度,输出维度,偏置数据&#x