代码之家  ›  专栏  ›  技术社区  ›  fen

纹理参数的持久性

  •  10
  • fen  · 技术社区  · 15 年前

    我使用glbindTexture()绑定以前创建的纹理。在glbindTexture()调用之后,我使用gltexParameteri()设置min和mag过滤器。到目前为止没问题。

    我使用gltexparameteri()设置的参数是否绑定到纹理本身,或者如果绑定其他纹理,这些参数是否丢失。我要再放一次吗?

    glGenTexture(1, &tex1);
    glGenTexture(1, &tex2);
    
    /* bind tex1 and set params */
    glBindtexture(GL_TEXTURE_RECTANGLE_ARB, tex1);
    glTexImage2D(GL_TEXTURE_RECTANGLE_ARB, ...);
    glTexParameteri(GL_TEXTURE_RECTANGLE_ARB, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
    glTexParameteri(GL_TEXTURE_RECTANGLE_ARB, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
    
    /* do something */
    
    /* bind tex2 and set params */
    glBindtexture(GL_TEXTURE_RECTANGLE_ARB, tex2);
    glTexImage2D(GL_TEXTURE_RECTANGLE_ARB, ...);
    glTexParameteri(GL_TEXTURE_RECTANGLE_ARB, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
    glTexParameteri(GL_TEXTURE_RECTANGLE_ARB, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
    
    /* do something */
    
    /* bind tex1 again */
    glBindtexture(GL_TEXTURE_RECTANGLE_ARB, tex1);
    
    /* do i have to set the parameters from above again or are they stored with tex1? */
    
    1 回复  |  直到 15 年前
        1
  •  10
  •   unwind    15 年前

    它们被保存着。的手册页 glBindTexture() 说:

    当纹理被绑定时,gl 对目标的操作 是绑定影响绑定纹理。

    因为第一个参数 glTexParameter() 是一个目标,它们应用于绑定对象就像 glTexImage() .