优化片段着色器

时间:2018-09-28 05:09:12

标签: ios metal metalkit

我想优化片段着色器性能。目前,我的片段着色器是

fragment half4 fragmen_shader_texture(VertexOutTexture vIn [[stage_in]],
                                       texture2d<half> texture [[texture(0)]]){

    constexpr sampler defaultSampler;

    half4 color =  half4(texture.sample(defaultSampler, vIn.textureCoordinates));


    return color;
}

此任务是返回纹理颜色。无论如何,要进行更多优化。

1 个答案:

答案 0 :(得分:1)

没有用于优化片段着色器AFAICT的选项,除了采样纹理外,它实际上什么也没做。但是,根据您的情况,可能还有以下方面的优化范围:

  • 通过使用更紧凑的纹理格式(565或4444而不是8888,或者更好的4位或2位PVRTC)来减少带宽使用。
  • 如果不需要进行alpha混合,请确保禁用alpha混合。
  • 如果纹理具有很多“空白空间”(例如,认为具有中心圆形斑点和空白角的粒子纹理),则可以通过将其渲染为八边形而不是四边形来确保几何形状更紧密地适合它实例。
  • 如果有可能将图像最小化,请启用mipmapping。禁用更昂贵的mipmapping选项,例如三线性/各向异性过滤。