1

我打算制作一个简单的绘图工具,它支持 Photoshop 的多个图层和所有混合模式。

我正在考虑在 GPU 上进行混合(将每一层放入纹理并绘制 2 个三角形来渲染每一层)。但我不确定,是否可以使用 OpenGL 的 blendFunc / blendEquation 等实现所有混合模式。

另一种选择是将所有纹理+混合模式标志传递给一个片段着色器并按照我的意愿混合它们,但是在添加/删除某些层(sampler2D)时我将不得不重新编译FS。

所以你怎么看?是否可以?有没有更好的方法如何使用 GPU 进行混合?那么我应该现在关心它,还是应该把它全部放在 CPU 上并关心未来的增强功能?

顺便提一句。它将是使用 WebGL 的 JavaScript 程序,但我认为没关系。

4

1 回答 1

1

当然可以。但这需要在共享者中完成。

加载两张图片(其实可以更多),渲染三角形。但是然后只需使用您的着色器来探测两个纹理并将这些值与取决于当前混合模式的方程混合(提供为统一)。

PS不要忘记关闭mipmaps和过滤。

于 2012-09-19T18:46:17.370 回答