void OnEnable() { if (profile == null) { profile = new DiffusionProfile("Diffusion Profile"); } profile.Validate(); UpdateCache(); }
void OnEnable() { if (profile == null) { profile = new DiffusionProfile(true); } profile.Validate(); UpdateCache(); #if UNITY_EDITOR if (m_Version != Version.Last) { TryToUpgrade(); } UnityEditor.Experimental.Rendering.HDPipeline.DiffusionProfileHashTable.UpdateDiffusionProfileHashNow(this); #endif }
void OnEnable() { // The neutral profile is not a part of the array. int profileArraySize = DiffusionProfileConstants.DIFFUSION_PROFILE_COUNT - 1; if (profiles != null && profiles.Length != profileArraySize) { Array.Resize(ref profiles, profileArraySize); } if (profiles == null) { profiles = new DiffusionProfile[profileArraySize]; } for (int i = 0; i < profileArraySize; i++) { if (profiles[i] == null) { profiles[i] = new DiffusionProfile("Profile " + (i + 1)); } profiles[i].Validate(); } ValidateArray(ref thicknessRemaps, DiffusionProfileConstants.DIFFUSION_PROFILE_COUNT); ValidateArray(ref worldScales, DiffusionProfileConstants.DIFFUSION_PROFILE_COUNT); ValidateArray(ref shapeParams, DiffusionProfileConstants.DIFFUSION_PROFILE_COUNT); ValidateArray(ref transmissionTintsAndFresnel0, DiffusionProfileConstants.DIFFUSION_PROFILE_COUNT); //forest-begin: Tweakable transmission ValidateArray(ref transmissionDirectAndIndirectScales, DiffusionProfileConstants.DIFFUSION_PROFILE_COUNT); //forest-end: ValidateArray(ref disabledTransmissionTintsAndFresnel0, DiffusionProfileConstants.DIFFUSION_PROFILE_COUNT); ValidateArray(ref filterKernels, DiffusionProfileConstants.DIFFUSION_PROFILE_COUNT * DiffusionProfileConstants.SSS_N_SAMPLES_NEAR_FIELD); // Old SSS Model >>> ValidateArray(ref halfRcpWeightedVariances, DiffusionProfileConstants.DIFFUSION_PROFILE_COUNT); ValidateArray(ref halfRcpVariancesAndWeights, DiffusionProfileConstants.DIFFUSION_PROFILE_COUNT * 2); ValidateArray(ref filterKernelsBasic, DiffusionProfileConstants.DIFFUSION_PROFILE_COUNT * DiffusionProfileConstants.SSS_BASIC_N_SAMPLES); Debug.Assert(DiffusionProfileConstants.DIFFUSION_PROFILE_COUNT <= 32, "Transmission and Texture flags (32-bit integer) cannot support more than 32 profiles."); UpdateCache(); }
void OnEnable() { // The neutral profile is not a part of the array. int profileArraySize = DiffusionProfileConstants.DIFFUSION_PROFILE_COUNT - 1; if (profiles != null && profiles.Length != profileArraySize) { Array.Resize(ref profiles, profileArraySize); } if (profiles == null) { profiles = new DiffusionProfile[profileArraySize]; } for (int i = 0; i < profileArraySize; i++) { if (profiles[i] == null) { profiles[i] = new DiffusionProfile("Diffusion Profile " + (i + 1)); } profiles[i].Validate(); } ValidateArray(ref thicknessRemaps, DiffusionProfileConstants.DIFFUSION_PROFILE_COUNT); ValidateArray(ref worldScales, DiffusionProfileConstants.DIFFUSION_PROFILE_COUNT); ValidateArray(ref shapeParams, DiffusionProfileConstants.DIFFUSION_PROFILE_COUNT); ValidateArray(ref transmissionTintsAndFresnel0, DiffusionProfileConstants.DIFFUSION_PROFILE_COUNT); ValidateArray(ref disabledTransmissionTintsAndFresnel0, DiffusionProfileConstants.DIFFUSION_PROFILE_COUNT); ValidateArray(ref filterKernels, DiffusionProfileConstants.DIFFUSION_PROFILE_COUNT * DiffusionProfileConstants.SSS_N_SAMPLES_NEAR_FIELD); Debug.Assert(DiffusionProfileConstants.DIFFUSION_PROFILE_COUNT <= 32, "Transmission and Texture flags (32-bit integer) cannot support more than 32 profiles."); UpdateCache(); }