压缩的纹理还原后会有黑边

jike_psqfto OpenGL ES 纹理贴图 最后由 驼铃 于2016年08月10日回复

  • 1 回答
  • 1.2k 浏览

1:纹理压缩(安卓ETC1,IOS用PVRTC),提取Alpha,合并新的纹理

2:还原时,纹理带透明度的地方会有黑边

望指教

  • 驼铃 2016年08月10日 回答 #1楼
  •  导致黑边的可能原因有:

    1. Alpha的纹理和RGB的纹理宽高不一样。

    2. Alpha的纹理和RGB的纹理的对齐要求不一样。我们GPU内部处理纹理时是要求纹理的宽高要对齐的,如果没有对齐,那么加载纹理时,驱动会自动对齐。例如纹理是31x31的,那么在驱动里面一般会对齐到32x32。宽和高的对齐值根据GPU的硬件要求来做的。我觉得可能是Alpha纹理的宽和RGB纹理的宽没有对齐到同样的数值上面。

    3. 另外你说还原时,是指GPU采样两个纹理绘制时,还是自己手动解压缩ETC1格式的纹理拼接成位图产生的黑边。如果是后者,我觉得也是因为ETC1这种格式对齐的要求你没做到。

  • 0 评论