您最多选择25个主题
主题必须以中文或者字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符
63 行
5.8 KiB
63 行
5.8 KiB
using UnityEngine;
|
|
|
|
namespace UnityEditor.Experimental.Rendering.HDPipeline
|
|
{
|
|
public sealed partial class SubsurfaceScatteringSettingsEditor
|
|
{
|
|
// TODO: missing tooltips
|
|
sealed class Styles
|
|
{
|
|
public readonly GUIContent useDisneySSS = new GUIContent("Use Disney SSS");
|
|
|
|
public readonly GUIContent profilePreview0 = new GUIContent("Profile Preview");
|
|
public readonly GUIContent profilePreview1 = new GUIContent("Shows the fraction of light scattered from the source (center).");
|
|
public readonly GUIContent profilePreview2 = new GUIContent("The distance to the boundary of the image corresponds to the Max Radius.");
|
|
public readonly GUIContent profilePreview3 = new GUIContent("Note that the intensity of pixels around the center may be clipped.");
|
|
public readonly GUIContent transmittancePreview0 = new GUIContent("Transmittance Preview");
|
|
public readonly GUIContent transmittancePreview1 = new GUIContent("Shows the fraction of light passing through the object for thickness values from the remap.");
|
|
public readonly GUIContent transmittancePreview2 = new GUIContent("Can be viewed as a cross section of a slab of material illuminated by white light from the left.");
|
|
public readonly GUIContent profileScatteringDistance = new GUIContent("Scattering Distance", "Determines the shape of the profile, and the blur radius of the filter per color channel. Alpha is ignored.");
|
|
public readonly GUIContent profileTransmissionTint = new GUIContent("Transmission tint", "Color which tints transmitted light. Alpha is ignored.");
|
|
public readonly GUIContent profileMaxRadius = new GUIContent("Max Radius", "Effective radius of the filter (in millimeters). The blur is energy-preserving, so a wide filter results in a large area with small contributions of individual samples. Reducing the distance increases the sharpness of the result.");
|
|
public readonly GUIContent texturingMode = new GUIContent("Texturing Mode", "Specifies when the diffuse texture should be applied.");
|
|
public readonly GUIContent[] texturingModeOptions = new GUIContent[2]
|
|
{
|
|
new GUIContent("Pre- and post-scatter", "Texturing is performed during both the lighting and the SSS passes. Slightly blurs the diffuse texture. Choose this mode if your diffuse texture contains little to no SSS lighting."),
|
|
new GUIContent("Post-scatter", "Texturing is performed only during the SSS pass. Effectively preserves the sharpness of the diffuse texture. Choose this mode if your diffuse texture already contains SSS lighting (e.g. a photo of skin).")
|
|
};
|
|
public readonly GUIContent profileTransmissionMode = new GUIContent("Transmission Mode", "Configures the simulation of light passing through thin objects. Depends on the thickness value (which is applied in the normal direction).");
|
|
public readonly GUIContent[] transmissionModeOptions = new GUIContent[3]
|
|
{
|
|
new GUIContent("None", "Disables transmission. Choose this mode for completely opaque, or very thick translucent objects."),
|
|
new GUIContent("Thin Object", "Choose this mode for thin objects, such as paper or leaves. Transmitted light reuses the shadowing state of the surface."),
|
|
new GUIContent("Regular", "Choose this mode for moderately thick objects. For performance reasons, transmitted light ignores occlusion (shadows).")
|
|
};
|
|
public readonly GUIContent profileMinMaxThickness = new GUIContent("Min-Max Thickness (mm)", "Shows the values of the thickness remap below (in millimeters).");
|
|
public readonly GUIContent profileThicknessRemap = new GUIContent("Thickness Remap (mm)", "Remaps the thickness parameter from [0, 1] to the desired range (in millimeters).");
|
|
public readonly GUIContent profileWorldScale = new GUIContent("World Scale", "Size of the world unit in meters.");
|
|
// Old SSS Model >>>
|
|
public readonly GUIContent profileScatterDistance1 = new GUIContent("Scattering Distance #1", "The radius (in centimeters) of the 1st Gaussian filter, one per color channel. Alpha is ignored. The blur is energy-preserving, so a wide filter results in a large area with small contributions of individual samples. Smaller values increase the sharpness.");
|
|
public readonly GUIContent profileScatterDistance2 = new GUIContent("Scattering Distance #2", "The radius (in centimeters) of the 2nd Gaussian filter, one per color channel. Alpha is ignored. The blur is energy-preserving, so a wide filter results in a large area with small contributions of individual samples. Smaller values increase the sharpness.");
|
|
public readonly GUIContent profileLerpWeight = new GUIContent("Filter Interpolation", "Controls linear interpolation between the two Gaussian filters.");
|
|
// <<< Old SSS Model
|
|
public readonly GUIStyle centeredMiniBoldLabel = new GUIStyle(GUI.skin.label);
|
|
|
|
public Styles()
|
|
{
|
|
centeredMiniBoldLabel.alignment = TextAnchor.MiddleCenter;
|
|
centeredMiniBoldLabel.fontSize = 10;
|
|
centeredMiniBoldLabel.fontStyle = FontStyle.Bold;
|
|
}
|
|
}
|
|
|
|
static Styles s_Styles;
|
|
|
|
// Can't use a static initializer in case we need to create GUIStyle in the Styles class as
|
|
// these can only be created with an active GUI rendering context
|
|
void CheckStyles()
|
|
{
|
|
if (s_Styles == null)
|
|
s_Styles = new Styles();
|
|
}
|
|
}
|
|
}
|