Unity 6.3
0 онлайн 44 гостей 3 в системе
Вход

IProbeIntegrator.IntegrateValidity

Declaration

public LightTransport.IProbeIntegrator.Result IntegrateValidity(LightTransport.IDeviceContext context, int positionOffset, int positionCount, int sampleCount, BufferSlice<float> validityEstimateOut);

Параметры

Параметр Описание
контекст Контекст устройства для вычислений и операций памяти.
positionOffset Начальный индекс в буфере положения зонда.
positionCount Число позиций зонда для обработки.
sampleCount Число направленных проб, отбираемых с помощью каждого пробника.
validityEstimateOut Выходный буфер для значений достоверности (один поплавковый знак на зонд).

Возвращаемое значение

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

Описание

Расчет коэффициентов достоверности, указывающих на надежность каждого положения зонда.

Этот метод оценивает надежность каждого положения зонда для интерполяции освещения путем анализа геометрической среды вокруг зонда.

Расчет достоверности:

  • Значение 1.0: зонд находится в открытой зоне с хорошей видимостью.
  • Значения между 0-1: Пробка имеет частичную достоверность.
  • Значение 0.0: зонд находится внутри геометрии или в неправильном месте.



Недействительные зонды (с низкой степенью достоверности) должны исключаться из расчетов освещенности или иметь меньшее влияние в ходе интерполяции.

// Compute validity for all probes
BufferID validityBuffer = context.CreateBuffer(probeCount, sizeof(float));
var validitySlice = new BufferSlice<float>(validityBuffer, 0);

var result = integrator.IntegrateValidity(context, 0, probeCount, 1024, validitySlice);

if (result.type == IProbeIntegrator.ResultType.Success) { // Read back validity values var validityData = new NativeArray<float>(probeCount, Allocator.Temp); context.ReadBuffer(validitySlice, validityData); context.Flush();

// Identify invalid probes for (int i = 0; i < probeCount; i++) { if (validityData[i] < 0.5f) { Debug.LogWarning($"Probe {i} has low validity: {validityData[i]}"); } } }