我打算制作一个简单的绘图工具,它支持Photoshop中的多个图层和所有混合模式。
我正在考虑在GPU上进行混合(将每个图层放入纹理中并绘制2个三角形以渲染每个图层)。但我不确定,是否可以使用OpenGL的blendFunc / blendEquation等实现所有blend modes。
另一个选择是将所有纹理+混合模式标志传递给一个片段着色器并按照我的意愿混合它们,但是在添加/删除某个层(sampler2D)时我将不得不重新编译FS。
那你觉得怎么样?可能吗?有没有更好的方法如何使用GPU进行混合?那我现在应该关心它,还是应该在CPU上完成所有工作并关注未来的增强?
顺便说一句。它将是使用WebGL的JavaScript程序,但我认为没关系。
答案 0 :(得分:1)
当然可以。但它需要在分享者中完成。
加载两张图片(实际上可以更多),渲染三角形。但是,然后只需使用着色器探测两种纹理,并将这些值与依赖于当前混合模式的方程混合(提供为统一)。
PS不要忘记关闭mipmap和过滤。