通常,相应的顶点设置将是两个三角形(可能是一条带,表示总共4个顶点),覆盖整个屏幕。实际上,您实际上不必进行任何转换,尤其是考虑到fs使用gl_FragCoord
并且分辨率以统一的形式传递时。
VS:
#version 450
in vec4 position;
void main() {
gl_Position = position
}
顶点(例如,与GL_TRIANGLE_STRIP
一起使用:]:]
-1, -1 -1, 1 1, -1 1, 1
覆盖整个屏幕后,您现在可以仅将此设置切换为渲染为纹理;创建一个帧缓冲区,在其上附加一个纹理,然后以相同的方式进行渲染。然后,您将能够在3D模型中使用该纹理。如果生成的图像很少更改,这将很好地工作。[如果您实际上想一次绘制,则需要将纹理坐标作为变化变量传递,并使用它代替
gl_FragCoord
;无需其他更改。