Как вынести тени в отдельные проходы Custom SRP в Unity
Обстоятельное продолжение серии о собственном конвейере рендеринга на Unity 6000.5.8f1. Рефакторинг ведут поэтапно: после каждого раздела тени остаются рабочими, поэтому материал читается как карта безопасного изменения архитектуры.
Сначала объект Shadows уходит из LightingPass под управление CameraRenderer. Затем LightingPass получает структуру Handles и возвращает только буферы освещения. После появляется отдельный ShadowsPass: он строит списки отрисовки, запускает рендеринг теней и отдаёт их дескрипторы.
Дальше код из Shadows переносят в новый проход, чтобы затем разделить обработку направленных и остальных источников света.
Разбор с правками кода полезен тем, кто уже строит Custom SRP. Ориентир для рефакторинга: разделяйте владение состоянием и запись проходов небольшими шагами, проверяя тени после каждого.
Post #3040
171
