Многоцелевой рендеринг в двух разных пространствах в одном шейдере - PullRequest
0 голосов
/ 30 октября 2018

Я создаю программу, которая работает с моделью в мировом пространстве. Для моей цели я хочу создать в шейдере две текстуры:

  1. В мировом пространстве, для постобработки.
  2. В пространстве экрана (как развертка UV), для сохранения результата работы шейдера в текущей сцене в новую текстуру объекта.

Я не могу понять, как это сделать в одном шейдере с многоцелевым рендерингом. В вершинном шейдере я устанавливаю положение для обоих пробелов:

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);

В шейдере fragmnet я установил два выхода:

in vec4 scrn_Position;
...
layout (location = 0) out vec4 wrld_Color;
layout (location = 1) out vec4 scrn_Color;

Но как работать с scrn_Position во фрагментном шейдере? Можно ли выполнить за один проход?

...