OpenGLには、「カラーバッファ」や「ステンシルバッファ」などの他に「アキュムレーションバッファ」がある。
これは、カラーバッファに何かレンダリングした後、
それを表示せずにアキュムレーションバッファにコピーし、色を蓄積する。
アキュムレーションバッファに色情報をためたり、ブレンド処理をする事を繰り返し、
最終的にカラーバッファに戻して表示する事ができる。
[ イメージ ]
| カラーバッファ | アキュムレーションバッファ |
(R, G, B, A) | ( 126, 144, 72, 0.9) | ( 0, 0, 0, 0 ) |
↓ 「アキュムレーションバッファ」に「1/3」に薄めたものを加算
| カラーバッファ | アキュムレーションバッファ |
(R, G, B, A) | ( 126, 144, 72, 0.9) | ( 42, 48 , 24 , 0.3 ) |
↓ もう一度、「アキュムレーションバッファ」に「1/3」に薄めたものを加算
| カラーバッファ | アキュムレーションバッファ |
(R, G, B, A) | ( 126, 144, 72, 0.9) | ( 84, 96, 42, 0.6) ←「加算される」 |
↓ 「アキュムレーションバッファ」を「リターン」する
| カラーバッファ | アキュムレーションバッファ |
(R, G, B, A) | ( 84, 96, 42, 0.6) | ( 84, 96, 42, 0.6) |