如何在 OpenGL 中反转纹理颜色

use*_*993 6 c++ opengl textures colors visual-studio

所以我在 OpenGL 中对 2D 对象进行纹理处理,虽然我的纹理加载正常,但我不太确定如何反转颜色。如何访问位图的颜色信息并将其反转?这在着色器中还是在主程序中做得最好?

我将保持这种开放状态,因为我不是在寻找“修复我的代码”类型的答案,而是“这是您访问位图颜色信息的方式”。

谢谢!

小智 6

它很简单

gl_FragColor = vec4(1.0 - textureColor.r,1.0 -textureColor.g,1.0 -textureColor.b,1) 最好在着色器中做这种事情,如果你想做一次然后在以后的绘制中重用它,只需使用渲染到纹理。这是进行颜色反转的最快方法。

编辑:您在使用vec4 textureColor = texture2D(uSampler,vTexCoords) gl_FragColor 之前使用 .r 、.g、.b 和 .a 分别访问红色、绿色、蓝色和 alpha 值。