【问题标题】:How to easily change pixel color of a texture in the fragment shader? (OpenGL)如何在片段着色器中轻松更改纹理的像素颜色? (OpenGL)
【发布时间】:2021-11-27 01:39:06
【问题描述】:

我的目标是使用 c++ 和 OpenGL 进行简单的沙子模拟。现在我的计划是有一个像素颜色的二维数组和一个相同大小的纹理。为了模拟沙子,我将根据沙子坐标和它必须移动的位置更新数组。我正在考虑 将像素的二维数组 发送到 片段着色器 并使用数组上的颜色更新那里的纹理。 问题是我找不到改变纹理上像素颜色的方法。

那么如何改变纹理上某些坐标处的像素颜色呢? 这样做是否实用?如果没有,还有其他方法吗?

【问题讨论】:

    标签: c++ opengl multidimensional-array fragment-shader


    【解决方案1】:

    你的意思是纹理坐标吗?您只能更改片段颜色输出。您也有纹理颜色,但只能用于片段输出。

    gl_FragColor = tex + vec4(0.5, 0, 0, 1)*tex.a;
    

    用于混合操作

    这里有更多关于 frag 的信息https://www.khronos.org/opengl/wiki/Fragment_Shader#Other_outputs

    【讨论】:

      猜你喜欢
      • 2016-09-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-28
      • 2011-10-04
      • 2012-01-12
      • 1970-01-01
      相关资源
      最近更新 更多