using System; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; namespace BansheeEngine { /** @addtogroup Rendering * @{ */ /// /// Settings that control the screen space reflections effect. Screen space reflections provide high quality mirror-like /// reflections at low performance cost. They should be used together with reflection probes as the effects complement /// each other. As the name implies, the reflections are only limited to geometry drawn on the screen and the system will /// fall back to refl. probes when screen space data is unavailable. Similarly the system will fall back to refl. probes /// for rougher (more glossy rather than mirror-like) surfaces. Those surfaces require a higher number of samples to /// achieve the glossy look, so we instead fall back to refl. probes which are pre-filtered and can be quickly sampled. /// [ShowInInspector] public partial class ScreenSpaceReflectionsSettings : ScriptObject { private ScreenSpaceReflectionsSettings(bool __dummy0) { } public ScreenSpaceReflectionsSettings() { Internal_ScreenSpaceReflectionsSettings(this); } /// Enables or disables the SSR effect. [ShowInInspector] [NativeWrapper] public bool Enabled { get { return Internal_getenabled(mCachedPtr); } set { Internal_setenabled(mCachedPtr, value); } } /// /// Quality of the SSR effect. Higher values cast more sample rays, and march those rays are lower increments for better /// precision. This results in higher quality, as well as a higher performance requirement. Valid range is [0, 4], /// default is 2. /// [ShowInInspector] [NativeWrapper] public uint Quality { get { return Internal_getquality(mCachedPtr); } set { Internal_setquality(mCachedPtr, value); } } /// Intensity of the screen space reflections. Valid range is [0, 1]. Default is 1 (100%). [ShowInInspector] [NativeWrapper] public float Intensity { get { return Internal_getintensity(mCachedPtr); } set { Internal_setintensity(mCachedPtr, value); } } /// /// Roughness at which screen space reflections start fading out and become replaced with refl. probes. Valid range is /// [0, 1]. Default is 0.8. /// [ShowInInspector] [NativeWrapper] public float MaxRoughness { get { return Internal_getmaxRoughness(mCachedPtr); } set { Internal_setmaxRoughness(mCachedPtr, value); } } [MethodImpl(MethodImplOptions.InternalCall)] private static extern void Internal_ScreenSpaceReflectionsSettings(ScreenSpaceReflectionsSettings managedInstance); [MethodImpl(MethodImplOptions.InternalCall)] private static extern bool Internal_getenabled(IntPtr thisPtr); [MethodImpl(MethodImplOptions.InternalCall)] private static extern void Internal_setenabled(IntPtr thisPtr, bool value); [MethodImpl(MethodImplOptions.InternalCall)] private static extern uint Internal_getquality(IntPtr thisPtr); [MethodImpl(MethodImplOptions.InternalCall)] private static extern void Internal_setquality(IntPtr thisPtr, uint value); [MethodImpl(MethodImplOptions.InternalCall)] private static extern float Internal_getintensity(IntPtr thisPtr); [MethodImpl(MethodImplOptions.InternalCall)] private static extern void Internal_setintensity(IntPtr thisPtr, float value); [MethodImpl(MethodImplOptions.InternalCall)] private static extern float Internal_getmaxRoughness(IntPtr thisPtr); [MethodImpl(MethodImplOptions.InternalCall)] private static extern void Internal_setmaxRoughness(IntPtr thisPtr, float value); } /** @} */ }