在一个着色器中的两个不同空间中进行多目标渲染

时间:2018-10-30 18:55:25

标签: opengl glsl shader fragment-shader

我制作了一个与世界空间中的模型一起使用的程序。出于我的目的,我想在着色器中生成两个纹理:

  1. 在世界空间中,用于后处理。
  2. 在屏幕空间中(作为UV展开),用于将当前场景中的着色器的工作结果保存到对象的新纹理中。

我无法弄清楚如何在具有多目标渲染的一个着色器中执行此操作。 在顶点着色器中,我设置了两个空间的位置:

interface KeyboardEventInit extends EventModifierInit {
    code?: string;
    key?: string;
    location?: number;
    repeat?: boolean;
}

在fragmnet着色器中,我设置了两个输出:

layout (location = 0) in vec3 position;
out vec4 scrn_Position;
...
gl_Position = projection * view * model * vec4(position,1.0); 
scrn_Position = model * vec4(position,1.0);

但是如何在片段着色器中使用scrn_Position?一口气可以进行吗?

0 个答案:

没有答案