keywords: Graphics, Shading, Texture Downsampling (Downscaling) Notes

Texture Parameters (glTexParameteri)

OpenGL

Example 1:
https://github.com/OpenGLFrame/Opengl/blob/d9daaba95d0b821dccf666664255fa2997270ecf/5_Blending/OpenGLFrame/Example.cpp

//moon贴图
if(!Texture.LoadBitmap("image_moon.bmp"))              /**< 载入位图文件 */
{
    MessageBox(NULL,"装载位图文件03失败!","错误",MB_OK);  /**< 如果载入失败则弹出对话框 */
    return false;
}
glGenTextures(1, &Texture.ID);        /**< 生成一个纹理对象名称 */
glBindTexture(GL_TEXTURE_2D, Texture.ID); /**< 创建纹理对象 */
/** 控制滤波 */
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_WRAP_S,GL_REPEAT);
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_WRAP_T,GL_REPEAT);
/** 创建纹理 */
gluBuild2DMipmaps(GL_TEXTURE_2D, GL_RGB, Texture.imageWidth,
    Texture.imageHeight, GL_RGB, GL_UNSIGNED_BYTE,
    Texture.image);

Example 2:
https://github.com/kevin2431/LearnOpenGL_NDK_Version/blob/341f1a815c453b558f8701372b2f8ff2646697c9/app/src/main/cpp/texture.cpp

// 加载和创建纹理
glGenTextures(1, &texture1);
glBindTexture(GL_TEXTURE_2D, texture1);

// 设定纹理wrapper参数
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);

// 纹理过滤
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);

// 加载image 创造纹理 生成mipmaps
int width, height, nrChannels;
std::string filename1 = "/data/data/com.example.airhockey_cpp/wall.jpg";

stbi_set_flip_vertically_on_load(true);     // 翻转图像
unsigned char *data = stbi_load(filename1.c_str(), &width, &height, &nrChannels, 0);

if(data){
    glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, width, height, 0, GL_RGB, GL_UNSIGNED_BYTE, data);
    glGenerateMipmap(GL_TEXTURE_2D);
}else {
    LOGE("Failed to load texture1\n");
}
stbi_image_free(data);

Texture Downsampling (Downscaling)

OpenGL

What is texture downsampling (downscaling) using OpenGL?
https://stackoverflow.com/a/30290468/1645289

DirectX

Downscaling texture via mipmap [DirectX 11]
https://computergraphics.stackexchange.com/questions/8975/downscaling-texture-via-mipmap-directx-11


“What's measured improves” ― Peter Drucker