publicreadonlyGUIContentsssProfilePreview1=newGUIContent("Shows the fraction of light scattered from the source as radius increases to 1.");
publicreadonlyGUIContentsssProfilePreview1=newGUIContent("Shows the fraction of light scattered from the source as the radius increases to 1.");
publicreadonlyGUIContentsssTransmittancePreview1=newGUIContent("Shows the fraction of light passing through the object as thickness increases to 1.");
publicreadonlyGUIContentsssTransmittancePreview1=newGUIContent("Shows the fraction of light passing through the object for thickness values from the remap.");
publicreadonlyGUIContentsssTransmittancePreview2=newGUIContent("Can be thought of as a cross section of a slab of material illuminated by a white light from the left.");
publicreadonlyGUIContentsssProfileStdDev1=newGUIContent("Standard Deviation #1","Determines the shape of the 1st Gaussian filter. Increases the strength and the radius of the blur of the corresponding color channel.");
publicreadonlyGUIContentsssProfileStdDev2=newGUIContent("Standard Deviation #2","Determines the shape of the 2nd Gaussian filter. Increases the strength and the radius of the blur of the corresponding color channel.");
publicreadonlyGUIContentsssProfileLerpWeight=newGUIContent("Filter Interpolation","Controls linear interpolation between the two Gaussian filters.");
};
publicreadonlyGUIContentsssProfileTransmission=newGUIContent("Enable Transmission","Toggles simulation of light passing through thin objects. Depends on the thickness of the material.");
publicreadonlyGUIContentsssProfileMinMaxThickness=newGUIContent("Min-Max Thickness","Shows the values of the thickness remap below.");
publicreadonlyGUIContentsssProfileThicknessRemap=newGUIContent("Thickness Remap","Remaps the thickness parameter from [0, 1] to the desired range.");
publicreadonlyGUIContentsssProfileMinMaxThickness=newGUIContent("Min-Max Thickness","Shows the values of the thickness remap below (in centimeters).");
publicreadonlyGUIContentsssProfileThicknessRemap=newGUIContent("Thickness Remap","Remaps the thickness parameter from [0, 1] to the desired range (in centimeters).");
// A way to reduce artifact is to limit NdotV value to not be negative and calculate reflection vector for cubemap with a shifted normal (i.e what depends on the view)
// This is what provide this function
// Note: NdotV return by this function is always positive, no need for saturate
float GetShiftedNdotV(inout float3 N, float3 V)
float GetShiftedNdotV(inout float3 N, float3 V, float NdotV)
float NdotV = dot(N, V);
const float limit = 0.0001; // Epsilon value that avoid divide by 0 (several BSDF divide by NdotV)