Version: Unity 6.7 Alpha (6000.7)
LanguageEnglish
  • C#

RadeonRaysProbePostProcessor.ConvertToUnityFormat

Suggest a change

Success!

Thank you for helping us improve the quality of Unity Documentation. Although we cannot accept all submissions, we do read each suggested change from our users and will make updates where applicable.

Close

Submission failed

For some reason your suggested change could not be submitted. Please <a>try again</a> in a few minutes. And thank you for taking the time to help us improve the quality of Unity Documentation.

Close

Cancel

Declaration

public bool ConvertToUnityFormat(IDeviceContext context, BufferSlice<SphericalHarmonicsL2> irradianceIn, BufferSlice<SphericalHarmonicsL2> irradianceOut, int probeCount);

Declaration

public bool ConvertToUnityFormat(IDeviceContext context, BufferSlice<SphericalHarmonicsL2> irradianceIn, BufferSlice<SphericalHarmonicsL2> irradianceOut, int probeCount, bool divideByPI);

Parameters

Parameter Description
context Device context.
irradianceIn Buffer containing input irradiance.
irradianceOut Output buffer containing the irradiance array after the conversion to the format compatible with a Unity renderer.
probeCount Number of SphericalHarmonicsL2 probes to convert.
divideByPI Whether to divide the coefficients by Pi (π), matching Unity's historical baked lighting convention. The overload without this parameter always divides. Pass false when the render pipeline disables SupportedRenderingFeatures.divideBakedOutputByPI and expects textbook irradiance.

Returns

bool True if the operation was successfully added to the command queue on the context.

Description

Converts light probes encoded as SphericalHarmonicsL2 to the format expected by the Unity renderer.

The irradiance SphericalHarmonicsL2 light probes must satisfy the following conditions when used with a Unity renderer:

  1. For L0 and L1, the coefficients must have the SH standard normalization terms folded into them (to avoid doing this multiplication in a shader).
  2. The coefficients must be divided by Pi (π) for compatibility reasons. The divideByPI parameter controls this step.
  3. L1 must be ordered as yzx (rather than xyz). The order is flipped back right before rendering in the GetShaderConstantsFromNormalizedSH function, before the SphericalHarmonicsL2 probes are passed to a shader.