我想更改已连接到着色器的纹理上的单个像素。 必须有一个简单的功能。
tex2D(sampler,uv)用于读取它并返回像素颜色。 我需要一个操作像素颜色并将其写回纹理的函数。 那不应该那么困难,但我找不到它。
答案 0 :(得分:5)
那不应该那么困难
是的,它应该是。
任意写入纹理并不是一件容易的事。信息在OpenGL中以非常特定的方向流动:进入着色器。着色器允许的唯一输出(通常)是实际的着色器输出变量。例如,这是你写帧缓冲的方式。也可以输入顶点/几何着色器输出来转换反馈缓冲区。
现在,如果您有GL 4.x级硬件,可以使用ARB_shader_image_load_store(这是GL 4.2中的核心)写入图像。但是,在您启用此功能的那一刻,您take full responsibility for synchronizing access to memory。