2013-04-21 98 views
2

从我刚刚掌握的OpenGL经验中,我发现特别是来自alpha混合的性能命中。我不会显示任何代码示例,因为它不是特别相关。我只是感兴趣的是,为什么在绘制片段时,alpha混合是一种昂贵的方法。显然,这是一个额外的操作,而不是仅仅将片段着色器输出写入像素,但任何人都可以详细说明这个操作究竟是什么?我知道我可以通过官方文件筛选,但我正在寻找一个快速简单的解释。为什么alpha混合如此昂贵?

回答

2

Alpha混合需要每个像素read + compute + write而不是简单的write。其计算公式为

new_value = old_value * (1 - alpha) + color * alpha 

这当然是困难得多比

new_value = color 
+0

做的是不对的,如果你考虑非al​​pha混合的“读+写”?你必须从源头上读取价值! – 2013-09-10 04:09:56

+1

@WagnerPatriota:那么当使用alpha混合时,操作是'read + read + write'。 – 6502 2013-09-10 05:43:53