我有 2 个视觉对象,第一个包含背景图像,第二个用信息覆盖它。现在我需要第二个 fragment 着色器中的每个像素,第一个对象的基础颜色值。构造是使用 Qt Qml 完成的,(第一个对象 = 图像,第二个对象是 qquickframebufferobject),我使用延迟渲染。也许有人知道怎么去那里?
最佳答案
我相信你可以使用 EXT_shader_framebuffer_fetch为此的扩展。
在 OpenGL ES 2.x 中,用法是这样的(我知道愚蠢的着色器,只是为了举例):
#extension GL_EXT_shader_framebuffer_fetch : require
precision mediump float;
void main()
{
gl_FragColor = gl_LastFragData[0] * 0.5;
}
在 OpenGL ES 3.x 中,用法是这样的:
#version 300 es
#extension GL_EXT_shader_framebuffer_fetch : require
precision mediump float;
inout vec4 fragColor;
void main()
{
fragColor = fragColor * 0.5;
}
关于android - 如何在 opengl es 3+ 中获取屏幕外帧缓冲区内底层对象的像素颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58978147/