应用纹理贴图时,第一个必要步骤就是将纹理载入内存。一旦被载人,这些纹理就会成为当前纹理状态的一部分。
void glTextImage3D(GLenum target,Glint level ,Glint internalformat, GLsizei width,GLsizei height, GLsizei depth, Glint border,GLenum format, GLenum type, void *data);
OpenGL 支持一维、二维和三维纹理贴图,并使用想要的函数载入这些纹理并将他们设置为当前纹理。OpenGL还支持立方图纹理。
target 变量应分别为GL_TEXTURE_1D、GL_TEXTURE_2D或GL_TEXTURE_3D。也可以指定代理纹理
level 参数指定了这些函数所加载的mip贴图层次。设置为0就是非mip贴图的纹理
internalformat 告诉OpenGL我们希望在每个纹理单元中存储多少颜色成分,并在可能的情况下说明这些成分的存储大小,以及是否希望对纹理进行压缩。(表5-4 附录C)
width 、height和depth 参数(在取之合适的时候)指定了被加载纹理的宽度、高度和深度。注意这些值必须是2的整数次方,这一点非常重要。出于性能的考虑 P138
border 参数允许我们对纹理贴图指定一个边界宽度。
format 、 type 表5-2和5-3列出了它们的合法常量值。
--------------- 使用颜色缓冲区
一维和二维也可以从颜色缓冲区加载数据