45 lines
2.0 KiB
C#
Raw Normal View History

2025-09-06 17:17:39 +04:00
// Perfect Culling (C) 2021 Patrick König
//
using UnityEngine;
namespace Koenigz.PerfectCulling
{
[CreateAssetMenu(menuName = "Perfect Culling/PerfectCullingSettings")]
public class PerfectCullingSettings : ScriptableObject
{
private static PerfectCullingSettings m_instance;
public static PerfectCullingSettings Instance => PerfectCullingResourcesLocator.Instance.Settings;
[Tooltip("PerfectCulling provides you with a native rendering library for Windows that can bake occlusion data even faster.")]
public bool useUnityForRendering = false;
[Tooltip("Performs a GPU readback and evaluates the image on the CPU. This is slow and you should stay away unless your hardware is very restricted when it comes to Compute Shaders.")]
public bool useUnityForRenderingCpuCompute = false;
[Tooltip("Native Vulkan Renderer (Experimental)")]
public bool useNativeVulkanForRendering = false;
[Tooltip("Disabling this option will render transparent objects opaque.")]
public bool renderTransparency = true;
[UnityEngine.Range(16, 2048)]
[Tooltip("Resolution for the actual rendering of a single camera perspective (1 out of 6). Increase this if you are experiencing distant object popping. Decrease this if you are memory constrained on your baking system.")]
public int bakeCameraResolution = 1024;
[UnityEngine.Range(0.1f, 10_000f)]
[Tooltip("Rendering distance.")]
public float bakeCameraFarClipPlane = 1000;
[Tooltip("The average sampling speed in milliseconds. Used to estimate bake times.")]
public float bakeAverageSamplingSpeedMs = 4f;
[Tooltip("Automatically updates the bake speed for more precise estimates.")]
public bool autoUpdateBakeAverageSamplingSpeedMs = false;
// Split this up just in case
public int bakeCameraResolutionWidth => bakeCameraResolution;
public int bakeCameraResolutionHeight => bakeCameraResolution;
}
}