您可以在webgl纹理ala
中禁用纹理包装 gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);
如果纹理与渲染目标的大小相同,那么这样做有什么特别的优势吗?是否有任何性能原因可以这样做?
如果重要的话,我特别感兴趣的是在2D广告牌上渲染纹理。
答案 0 :(得分:1)
从功能上来说,改变它的唯一原因是,如果使用线性过滤,渲染纹理的边缘可能会有细微差别。例如,在纹理的右侧,如果wrap设置为REPEAT,则线性过滤将在边缘的最右边和最左边的纹素的颜色之间进行插值。使用CLAMP_TO_EDGE,它使用最右边的纹素的颜色。
表现应该相同。换行模式可能存在性能差异的唯一时间是GPU本身不支持其中一种模式,并且必须在着色器代码中模拟它。但任何不完全古老的GPU都应支持这两种模式。
我通常会将值设置为CLAMP_TO_EDGE,除非您特别需要重复行为。