InputExtraction.GetShadowmaskChannelsFromLightIndices
Declaration
public static int[] GetShadowmaskChannelsFromLightIndices(LightTransport.InputExtraction.BakeInput bakeInput, int[] lightIndices);Параметры
| Параметр | Описание |
|---|---|
| bakeInput | BakeInput, содержащий данные конфигурации света. |
| lightIndices | Массив светлых индексов для запроса каналов shadowmask. |
Возвращаемое значение
int[] Массив индексов каналов shadowmask (0-3 для RGBA, или -1 для отсутствия канала), соответствующих каждому индексу входного света.
Описание
Получает назначения каналов shadowmask для указанных смешанных светов.
Этот метод отображает световые индексы на назначенные им каналы shadowmask в системе смешанного освещения Unity. Смешанное освещение использует текстуры shadowmask для хранения предварительно рассчитанной информации о тени, обеспечивая освещение в реальном времени.
Отображение каналов:
- 0: Красный канал.
- 1: Зеленый канал.
- 2: Синий канал.
- 3: Альфа-канал.
- -1: Свет не имеет назначенного канала shadowmask.
Каналы теневых масок автоматически назначаются системой освещения Unity на основе наложения света и приоритета. Используйте эту информацию для правильного толкования данных окклюзии из IProbeIntegrator.IntegrateOcclusion.
Дополнительные ресурсы: InputExtraction.ComputeOcclusionLightIndicesFromBakeInput, IProbeIntegrator.IntegrateOcclusion.
// Get light indices for occlusion computation var lightIndices = InputExtraction.ComputeOcclusionLightIndicesFromBakeInput(bakeInput, probePositions, 4);
// Map indices to shadowmask channels var channels = InputExtraction.GetShadowmaskChannelsFromLightIndices(bakeInput, lightIndices);
// Process occlusion results with channel mapping for (int probeIndex = 0; probeIndex < probeCount; probeIndex++) { for (int lightIndex = 0; lightIndex < 4; lightIndex++) { int arrayIndex = probeIndex * 4 + lightIndex; int globalLightIndex = lightIndices[arrayIndex]; int shadowmaskChannel = channels[arrayIndex]; float occlusion = occlusionResults[arrayIndex];
if (shadowmaskChannel >= 0) { Debug.Log($"Probe {probeIndex}, Light {globalLightIndex}: " + $"Channel {shadowmaskChannel}, Occlusion {occlusion}"); } } }