Главное, что нужно понять о MRT, это то, что вы не выводите одинаковые данные во все цели рендеринга.
Пиксельный шейдер может выводить только 4 значения с плавающей запятой, обычно вы будете использоватьэти 4 значения, чтобы создать цвет в данной точке.Однако вы можете вместо этого выводить данные глубины или обычные данные, поэтому вы используете эти 4 значения с плавающей запятой для представления другой информации, которая может вам понадобиться.
Преимущество в том, что с MRT вам нужно только один раз нарисовать сцену и вывести ее на различные цели рендеринга, поэтому за один проход вы можете вывести на одну цель рендеринга, которая получит данные диффузного цвета, другую цель рендерингаполучит нормальные данные, а третья цель рендера получит данные глубины.См. Ниже, чтобы лучше понять, что я имею в виду:
Это действительно тот случай, когда значения RGBA становятся другими вещами, например, RGB, потому что X, Y, Zнормаль нарисованного многоугольника.
Существуют некоторые уловки с использованием MRT, например, все ваши цели рендеринга должны иметь одинаковую битовую глубину, и вы начинаете толкать текстуру GPU с ее заполнением, но в целом преимуществавне ловушек.