45 lines
2.0 KiB
C#
45 lines
2.0 KiB
C#
// 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;
|
|
}
|
|
} |