GLSL改变纹理的像素颜色

时间:2012-12-03 10:52:02

标签: glsl textures shader pixel

我想更改已连接到着色器的纹理上的单个像素。 必须有一个简单的功能。

tex2D(sampler,uv)用于读取它并返回像素颜色。 我需要一个操作像素颜色并将其写回纹理的函数。 那不应该那么困难,但我找不到它。

1 个答案:

答案 0 :(得分:5)

  

那不应该那么困难

是的,它应该是。

任意写入纹理并不是一件容易的事。信息在OpenGL中以非常特定的方向流动:进入着色器。着色器允许的唯一输出(通常)是实际的着色器输出变量。例如,这是你写帧缓冲的方式。也可以输入顶点/几何着色器输出来转换反馈缓冲区。

现在,如果您有GL 4.x级硬件,可以使用ARB_shader_image_load_store(这是GL 4.2中的核心)写入图像。但是,在您启用此功能的那一刻,您take full responsibility for synchronizing access to memory