[英]mix RGBA pixmap with texture
我有一个RGBA像素图(例如抗锯齿的圆形4x4点),我想以类似于笔触的方式在纹理上绘制。 使用glTexSubImage2D
的明显解决方案只是覆盖了一个矩形区域,而与alpha值无关。 有没有比在本地RAM中维护纹理的镜像版本,在此处进行混合然后使用glTexSubImage2D
上载文件(最好是基于OpenGL / GPU的文件)更好的解决方案? FBO是要走的路吗?
此外,在保持1:1图形质量(无伪像,插值等)和速度方面,使用FBO是否有效? 使用RAM中的4x4对象进行CPU混合,基本上是使用基本的浮点运算来转换4x4矩阵,总共进行16次简单的数学迭代和1次glTexSubImage2D
调用...正在设置FBO,切换渲染上下文并更快地进行渲染吗?
基准数据以及提议的解决方案的MVCE /伪代码将非常值得赞赏。
注意:不能为每个笔划创建单独的alpha混合四边形,这主要是因为使用了很多笔划。 去科学!
您可以使用帧缓冲对象 (FBO)渲染为纹理。
在程序开始时,创建一个FBO并将纹理附加到它。 每当您需要绘制笔划时,请绑定FBO并像将其绘制到屏幕上一样绘制该笔划(带有三角形)。 笔触将写入到附加的纹理中。
对于主绘制循环,请取消绑定FBO,绑定附加的纹理,然后在整个屏幕上绘制一个四边形(从-1,-1到1,1,而不使用任何矩阵)。
此外,在保持1:1图形质量(无伪像,插值等)和速度方面,使用FBO是否有效?
是。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.