包含用于预计算光照数据的设置的对象,Unity 可以将其序列化为光照设置资源。
当 Unity 编辑器为使用烘焙全局光照系统或 Enlighten 实时全局光照系统的场景预计算光照数据时,它会使用LightingSettings
对象中的设置。同一个LightingSettings
对象可以分配给多个场景,这使得跨多个场景共享设置成为可能。
以下示例展示了如何创建一个LightingSettings
对象,并使用Lightmapping.lightingSettings API将其分配给活动场景。
using UnityEngine; using UnityEditor;
public class CreateLightingSettingsExample { [MenuItem("Example/Create Lighting Settings")] static void CreateExampleLightingSettings() { // Create an instance of LightingSettings LightingSettings lightingSettings = new LightingSettings();
// Configure the LightingSettings object lightingSettings.albedoBoost = 8.0f;
// Assign the LightingSettings object to the active Scene Lightmapping.lightingSettings = lightingSettings; } }
以下示例展示了如何创建一个LightingSettings
对象,并使用AssetDatabase.CreateAsset API将其保存到磁盘作为光照设置资源。
using UnityEngine; using UnityEditor;
public class CreateLightingSettingsExample { [MenuItem("Example/Create Lighting Settings")] static void SaveExampleLightingSettingsToDisk() { // Create an instance of LightingSettings LightingSettings lightingSettings = new LightingSettings();
// Configure the LightingSettings object lightingSettings.albedoBoost = 8.0f;
// Save it to your Project, using the .lighting extension AssetDatabase.CreateAsset(lightingSettings, "Assets/ExampleLightingSettings.lighting"); } }
其他资源:光照设置资源。
albedoBoost | 在光照计算中考虑时,整个场景中表面反照率的强度。此值会影响每次反弹的光能。(仅限编辑器)。 |
ao | 是否将环境光遮蔽应用于光照贴图。(仅限编辑器)。 |
aoExponentDirect | 确定在光照贴图中计算环境光遮蔽时,直接光照的考虑程度。(仅限编辑器)。 |
aoExponentIndirect | 设置 Unity 应用于光照贴图中间接光照的环境光遮蔽对比度。(仅限编辑器)。 |
aoMaxDistance | 在光照贴图中计算环境光遮蔽时,Unity 认为射线未被遮挡之前行进的距离。(仅限编辑器)。 |
bakedGI | 是否为该场景启用烘焙全局光照系统。 |
denoiserTypeAO | 确定渐进式光照贴图器应用于光照贴图中环境光遮蔽的降噪类型。(仅限编辑器)。 |
denoiserTypeDirect | 确定渐进式光照贴图器应用于直接光照的降噪器。(仅限编辑器)。 |
denoiserTypeIndirect | 确定渐进式光照贴图器应用于间接光照的降噪器。(仅限编辑器)。 |
directionalityMode | 确定光照贴图器是否应生成方向性或非方向性光照贴图。(仅限编辑器)。 |
directSampleCount | 指定渐进式光照贴图器用于直接光照计算的样本数量。(仅限编辑器)。 |
environmentImportanceSampling | 确定渐进式光照贴图器在烘焙时采样环境光照时是否使用重要性采样。 |
environmentSampleCount | 指定渐进式光照贴图器从天空盒采样间接光照时使用的样本数量。(仅限编辑器)。 |
extractAO | 渐进式光照贴图器是否将环境光遮蔽提取到单独的光照贴图中。(仅限编辑器)。 |
filteringAtrousPositionSigmaAO | 指定渐进式光照贴图器使用 A-Trous 滤波器时,用于过滤存储在光照贴图中的直接光的阈值。(仅限编辑器)。 |
filteringAtrousPositionSigmaDirect | 指定渐进式光照贴图器使用 A-Trous 滤波器时,用于过滤光照贴图的间接光照分量的阈值。(仅限编辑器)。 |
filteringAtrousPositionSigmaIndirect | 指定渐进式光照贴图器使用高斯滤波器时,用于过滤光照贴图中的环境光遮蔽分量的半径。(仅限编辑器)。 |
filteringGaussianRadiusAO | 指定渐进式光照贴图器使用高斯滤波器时,用于过滤光照贴图的直接光照分量的半径。(仅限编辑器)。 |
filteringGaussianRadiusDirect | 指定渐进式光照贴图器使用高斯滤波器时,用于过滤光照贴图的间接光照分量的半径。(仅限编辑器)。 |
filteringGaussianRadiusIndirect | 指定渐进式光照贴图器用于减少光照贴图中噪声的方法。(仅限编辑器)。 |
filteringMode | 指定渐进式光照贴图器用于环境光遮蔽的滤波器类型。(仅限编辑器)。 |
filterTypeAO | 指定渐进式光照贴图器用于环境光遮蔽的滤波器内核。(仅限编辑器)。 |
filterTypeDirect | 指定渐进式光照贴图器用于直接光照的滤波器内核。(仅限编辑器)。 |
filterTypeIndirect | 指定编辑器是否以与烘焙光照贴图相同的分辨率计算最终的全局光照光弹跳。 |
indirectResolution | 定义 Enlighten 实时全局光照在计算间接光照时,每个世界单位使用的纹素数量。(仅限编辑器)。 |
indirectSampleCount | 指定渐进式光照贴图器用于间接光照计算的样本数量。(仅限编辑器)。 |
indirectScale | 将光照贴图中间接光照的强度相乘。(仅限编辑器)。 |
lightmapCompression | 编辑器用于光照贴图的压缩级别。 |
lightmapMaxSize | 单个光照贴图纹理的最大像素大小。(仅限编辑器)。 |
lightmapPadding | 设置光照贴图中单独的 UV 图块之间的距离(以纹素为单位)。(仅限编辑器)。 |
lightmapper | 确定在烘焙全局光照系统中使用哪个后端来烘焙光照贴图。(仅限编辑器)。 |
lightmapResolution | 定义生成光照贴图时每个世界单位使用的纹素数量。 |
lightProbeSampleCountMultiplier | 指定相对于光照贴图纹素的样本数量,用于光照探针的样本数量。(仅限编辑器)。 |
maxBounces | 存储渐进式光照贴图器为间接光照计算的最大弹跳次数。(仅限编辑器) |
minBounces | 存储渐进式光照贴图器为间接光照计算的最小弹跳次数。(仅限编辑器) |
mixedBakeMode | 设置 Unity 用于场景中所有混合光源的 MixedLightingMode。(仅限编辑器)。 |
prioritizeView | 渐进式光照贴图器是否优先烘焙场景视图视锥体内的可见纹素。(仅限编辑器)。 |
realtimeEnvironmentLighting | 确定 Unity 将环境光照存储在哪个光照贴图中。 |
realtimeGI | 是否为该场景启用 Enlighten 实时全局光照系统。 |
respectSceneVisibilityWhenBakingGI | 当 Unity 预计算或烘焙全局光照时,会尊重具有网格渲染器或地形组件的 [[GameObject] 的场景可见性设置。 |
GetInstanceID | 获取对象的实例 ID。 |
ToString | 返回对象的名称。 |
Destroy | 移除 GameObject、组件或资源。 |
DestroyImmediate | 立即销毁对象 obj。强烈建议使用 Destroy 代替。 |
DontDestroyOnLoad | 加载新场景时不要销毁目标对象。 |
FindAnyObjectByType | 检索任何活动的加载了类型为 type 的对象。 |
FindFirstObjectByType | 检索第一个活动的加载了类型为 type 的对象。 |
FindObjectsByType | 检索所有加载了类型为 type 的对象的列表。 |
Instantiate | 克隆对象 original 并返回克隆。 |
InstantiateAsync | 捕获原始对象(必须与某个 GameObject 相关)的快照,并返回 AsyncInstantiateOperation。 |
bool | 对象是否存在? |
operator != | 比较两个对象是否引用不同的对象。 |
operator == | 比较两个对象引用,查看它们是否引用同一个对象。 |