joz*_*yqk 5 opengl glsl image-unit
image_load_store 扩展提供*vec4仅具有访问权限的加载/存储函数。例如,如果我有layout(rgba32f) uniform image2D myimage;,似乎我必须立即写入整个像素:
imageStore(myimage, coord, vec4(1,1,1,1));
Run Code Online (Sandbox Code Playgroud)
如果我只想将红色通道设置为1,我需要这样做:
vec4 pixel = imageLoad(myimage, coord);
pixel.r = 1;
imageStore(myimage, coord, pixel);
Run Code Online (Sandbox Code Playgroud)
这会因额外的读取而带来相当大的开销。
是否有一种机制可以用来仅写入特定通道?
类似的东西glColorMask,或者可能用不同的格式绑定数据,例如更大的GL_R32F image2D或imageBuffer?如果是这样,有哪些开销影响(例如转换/传输/缓存问题)?
| 归档时间: |
|
| 查看次数: |
324 次 |
| 最近记录: |