Как мне найти для каждого пикселя на экране, к какому объекту он принадлежит? - PullRequest
0 голосов
/ 20 февраля 2019

Каждый кадр единства генерирует изображение.Я хочу, чтобы он также создавал дополнительные массивы целых чисел, и каждый раз, когда он решает написать новый цвет на сгенерированном изображении, он будет записывать идентификатор объекта в соответствующем месте в массиве целых чисел.

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

Моя цель - узнать для каждого пикселя на экране, какому объекту он принадлежит.

Спасибо.

1 Ответ

0 голосов
/ 31 марта 2019

При прямом рендеринге, если вы не используете его для других целей, вы можете сохранить идентификатор в альфа-канале заднего буфера (и он будет действителен только для непрозрачных объектов), до 256 идентификаторов без HDR.В отложенном режиме вы можете отредактировать неиспользуемый канал gbuffer потенциально.

Это если вы хотите минимизировать накладные расходы, в противном случае вы можете иметь более общую систему, которая перерисовывает конкретные объекты в текстуру в пространстве экрана, сочень простой шейдер, который просто выводит ID в любой нужный вам формат, используя буферы команд.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...