【发布时间】:2014-12-29 15:21:29
【问题描述】:
我有一个 RGBA 像素图(例如,一个抗锯齿圆形 4x4 点),我想以类似于画笔描边的方式在纹理上绘制。使用glTexSubImage2D 的明显解决方案只是覆盖一个矩形区域,而不考虑 alpha 值。有没有比在本地 RAM 中维护纹理的镜像版本、在那里进行混合然后使用glTexSubImage2D 上传它——最好是基于 OpenGL/GPU 的更好的解决方案? FBO 是要走的路吗?
另外,在保持 1:1 图形质量(无伪影、插值等)和速度方面,是否使用 FBO 来实现这种效率?在 RAM 中使用 4x4 对象进行 CPU 混合基本上是用基本浮点算法转换 4x4 矩阵,总共有 16 次简单的数学迭代和 1 次 glTexSubImage2D 调用...正在设置 FBO,切换渲染上下文并进行渲染更快?
非常感谢基准数据,以及提出解决方案的 MVCE/伪代码。
注意: 不能为每个笔划创建单独的 alpha 混合四边形,这主要是因为使用的笔划数量非常多。 去科学吧!
【问题讨论】:
-
亲爱的投票者:您愿意解释一下我的问题有什么问题吗?
标签: opengl textures alpha alphablending blending