我们有一个应用程序,允许用户使用附着在鼠标上的“画笔”擦除顶层图像。刷子可以是任何类型的形状,例如圆形,星形,W形或任何随机的奇异形状。
当前在C ++中使用DirectX9和着色器(3.0)实现。这是旧版系统,无法使用DirectX的更高版本。单通道不透明度贴图会累积笔触。然后将不透明度贴图用作顶部和底部图像之间的alpha层。
问题是当显示一定百分比的图像时,需要自动擦除图像的其余部分。例如,如果用户已经显示了底层的60%,则该应用程序将自动清除不透明度贴图的其余部分以显示所有内容。 问题是试图弄清楚已擦除了多少不透明度贴图,而没有锁定表面并计数像素,因为这真的很慢。
答案 0 :(得分:1)
您可以尝试以下方法: