Base class for non-mobile effects (Tunnelling and TunnellingOpaque).
These effects use full screen post-processing.
This class implements all core functionality. The only difference between Tunnelling and TunnellingOpaque is drawing after everything or after opaque geometry.
Public Member Functions | |
| void | AddObjectToMask (Renderer r, bool includeChildren=false) |
| Start using object to mask tunnelling effect. More... | |
| void | RemoveObjectFromMask (Renderer r, bool includeChildren=false) |
| Stop using object to mask tunnelling effect. More... | |
| void | UpdateCage () |
| Updates cached objects to render in cage mode. Use if adding/removing children from Cage Parent. No need to call if moving/modifying/toggling existing children. More... | |
| override void | ResetCounterMotion () |
| Reset cage and skybox orientation/offset when using counter motion. More... | |
| void | ApplyPreset (TunnellingPreset p) |
| Override some or all settings using a TunnellingPreset asset. More... | |
Public Attributes | |
| const string | GLOBAL_PROP_WORLD2CAGE = "_VRTP_WorldToCage" |
| Global shader parameter for world-to-cage vertex matrix. Used in counter-motion triplanar shaders. More... | |
| const string | GLOBAL_PROP_WORLD2CAGE_NORMAL = "_VRTP_WorldToCageNormal" |
| Global shader parameter for world-to-cage normals matrix. Used in counter-motion triplanar shaders. More... | |
| const string | GLOBAL_PROP_CAGEPOS = "_VRTP_CagePos" |
| Global shader parameter for relative position offset between cage and world. In other words, how far has player artificially locomoted from reference point? Used in counter-motion triplanar shaders. More... | |
| BackgroundMode | backgroundMode = BackgroundMode.COLOR |
| Determines what is rendered in the vignette effect. More... | |
| float | effectOverlay = 0 |
| Allows a persistent overlay of the effect across the entire view. Applies to SKYBOX, CAGE_COLOUR, CAGE_SKYBOX modes. More... | |
| int | cageDownsample = 0 |
| Render cage at half or quarter resolution. 1: Half res. 2: Quarter res. More... | |
| MSAA | cageAntiAliasing = MSAA.AUTO |
| Manually set cage MSAA, or AUTO to follow quality settings. More... | |
| bool | cageUpdateEveryFrame =false |
| FALSE: Cache cage objects in OnEnable. CAN move/modify objects CANNOT add/destroy objects TRUE: Refresh objects each frame. There will be some GC alloc each Update. Consider calling UpdateCage() manually. More... | |
| float | cageFogDensity = 0.01f |
| Density of fog for materials using Cage Fogged shaders More... | |
| float | cageFogPower = 2 |
| Fog falloff for materials using Cage Fogged shaders More... | |
| float | cageFogBlend = 1 |
| Fog blending for materials using Cage Fogged shaders. 0: No fog. 1: 100% fog. More... | |
| MaskMode | maskMode = MaskMode.OFF |
| int | blurDownsample = 3 |
| Downsample before blurring. Higher is faster and blurrier. More... | |
| float | blurDistance = 3 |
| Blur radius. More... | |
| int | blurPasses = 3 |
| Blur passes. Higher is slower but blurrier. More... | |
| BlurKernel | blurSamples |
| How many samples to use per pixel per pass? More... | |
| bool | irisZRejection = true |
| At start of rendering, fill Z buffer where effect will be to save fillrate on drawing world. Disabled with blur or masking. More... | |
| CounterVelocityMode | counterVelocityMode = CounterVelocityMode.OFF |
| Choose counter-velocity effect implementation, or disable. SHADER mode requires cage objects to use Cage Counter Motion shaders. More... | |
| float | counterVelocityResetDistance = 0 |
| If counterVelocityMode is REAL, reset cage position and rotation when it has travelled this far. If <= 0, no distance-based reset. More... | |
| float | counterVelocityResetTime = 0 |
| If counterVelocityMode is REAL, reset cage position and rotation after this time. If <= 0, no time-based reset. More... | |
| float | counterVelocityStrength = 1f |
| Scale counter-velocity relative to motionTarget motion. More... | |
| Vector3 | counterVelocityPerAxis = Vector3.one |
| Scale counter-velocity on individual axes. Multiplied by counterVelocityStrength. More... | |
Public Attributes inherited from Sigtrap.VrTunnellingPro.TunnellingBase | |
| const string | GLOBAL_PROP_FOGCOLOR = "_VRTP_Cage_FogColor" |
| Global shader parameter controlling fog color in shaders using CageFog.cginc. More... | |
| const string | GLOBAL_PROP_FOGDENSITY = "_VRTP_Cage_FogDensity" |
| Global shader parameter controlling fog density in shaders using CageFog.cginc. More... | |
| const string | GLOBAL_PROP_FOGPOWER = "_VRTP_Cage_FogPower" |
| Global shader parameter controlling fog falloff in shaders using CageFog.cginc. More... | |
| const string | GLOBAL_PROP_FOGBLEND = "_VRTP_Cage_FogBlend" |
| Global shader parameter controlling fog strength in shaders using CageFog.cginc. More... | |
| const float | FEATHER_MAX = 0.5f |
| const float | MOTION_STRENGTH_MAX = 2f |
| const float | COUNTER_STRENGTH_MAX = 2f |
| const int | FPSDIV_MAX = 60 |
| Transform | motionTarget |
| Motion calculated using this Transform. Generally shouldn't use HMD. More... | |
| Color | effectColor = Color.black |
| Colour of vignette. Alpha is blend factor. If applyColorToBackground true, will affect background of advanced modes. More... | |
| float | effectCoverage = 0.75f |
| Maximum screen coverage. More... | |
| float | effectFeather = 0.1f |
| Feather around cut-off as fraction of screen. More... | |
| Cubemap | effectSkybox |
| Skybox to apply to vignette. Requires skybox mode to be enabled (varies depending upon effect). More... | |
| bool | applyColorToBackground = false |
| Depending upon effect mode, causes effectColor to affect background. Basic vignette mode always uses effectColor. More... | |
| bool | useAngularVelocity = true |
| Add angular velocity to effect strength? Helps players with regular sim-sickness. More... | |
| float | angularVelocityStrength = 1 |
| Strength contributed to effect by angular velocity. More... | |
| float | angularVelocityMin = 0 |
| No effect contribution below this angular velocity. Degrees per second More... | |
| float | angularVelocityMax = 180 |
| Clamp effect contribution above this angular velocity. Degrees per second More... | |
| float | angularVelocitySmoothing = 0.15f |
| Smoothing time for angular velocity calculation. 0 for no smoothing More... | |
| bool | useAcceleration = false |
| Add linear acceleration to effect strength? Helps players with moderate sim-sickness. More... | |
| float | accelerationStrength = 1 |
| Strength contributed to effect by linear acceleration. More... | |
| float | accelerationMin |
| No effect contribution below this acceleration. Metres per second squared More... | |
| float | accelerationMax |
| Clamp effect contribution above this acceleration. Metres per second squared More... | |
| float | accelerationSmoothing = 0.15f |
| Smoothing time for acceleration calculation. 0 for no smoothing More... | |
| bool | useVelocity = false |
| Add translation velocity to effect strength? Helps players with strong sim-sickness. More... | |
| float | velocityStrength = 1 |
| Strength contributed to effect by linear velocity. More... | |
| float | velocityMin |
| No effect contribution below this velocity. Metres per second More... | |
| float | velocityMax |
| Clamp effect contribution above this velocity. Metres per second More... | |
| float | velocitySmoothing = 0.15f |
| Smoothing time for velocity calculation. 0 for no smoothing More... | |
| ForceVignetteMode | forceVignetteMode |
| How to combine forceVignetteValue with motion value to calculate effect radius. More... | |
| float | forceVignetteValue |
| Force effect to be this value. Combined with motion value according to forceVignetteMode. More... | |
| Transform | motionEffectTarget = null |
| Transform used for artificial tilt and framerate division. Should be a child of Motion Target and a parent of the HMD. Target's transform should not be modified by anything else. More... | |
| bool | useCounterMotion = false |
| Counter-motion moves/rotates cage/skybox opposite to motionTarget motion. More... | |
| float | counterRotationStrength = 1f |
| Scale counter-rotation relative to motionTarget motion. More... | |
| Vector3 | counterRotationPerAxis = Vector3.up |
| Scale counter-rotation on individual axes. Multiplied by counterVelocityStrength. X: Pitch, Y: Yaw, Z: Roll. More... | |
| bool | useArtificialTilt = false |
| Artifically tilt the camera when moving to simulate acceleration forces. More... | |
| float | tiltStrength = 0f |
| Strength of artificial tilt relative to linear acceleration. Degrees per (metres per second squared). More... | |
| Vector2 | tiltMaxAngles = 5*Vector2.one |
| Maximum artificial tilt in degrees. Zero for no clamp. X: Pitch, Y: Roll. More... | |
| float | tiltSmoothTime = 0f |
| Smooth out tilt over this time. More... | |
| int | framerateDivision = 1 |
| Divide VR framerate by this number while keeping HMD and cage at device framerate. Forces stepped motion of motionEffectTarget rather than changing rendering. More... | |
| bool | divideTranslation = true |
| Apply framerateDivision division to linear motion. More... | |
| bool | divideRotation = true |
| Apply framerateDivision division to rotation. More... | |
Properties | |
| static TunnellingImageBase | instance [get] |
| Singleton instance. Will refer to either a Tunnelling or TunnellingOpaque effect. Will not refer to a TunnellingMobile effect. More... | |
| bool | usingMask [get] |
| Is effect currently using/rendering a mask? More... | |
| bool | usingCage [get] |
| Is effect currently using/rendering the cage? More... | |
Properties inherited from Sigtrap.VrTunnellingPro.TunnellingBase | |
| bool | usingMotionEffectTarget [get] |
| Indicates whether the motionEffectTarget is currently being used for motion effects. More... | |
Additional Inherited Members | |
Static Public Member Functions inherited from Sigtrap.VrTunnellingPro.TunnellingBase | |
| static Vector3 | SmoothDampAngle (Vector3 current, Vector3 target, ref Vector3 vel, float smoothTime, float maxSpeed, float dT) |
|
inline |
Start using object to mask tunnelling effect.
| r | Renderer to add to mask. |
| includeChildren | If set to true include children. |
|
inline |
Override some or all settings using a TunnellingPreset asset.
|
inline |
Stop using object to mask tunnelling effect.
| r | Renderer to remove from mask. |
| includeChildren | If set to true include children. |
|
inlinevirtual |
Reset cage and skybox orientation/offset when using counter motion.
Reimplemented from Sigtrap.VrTunnellingPro.TunnellingBase.
|
inline |
Updates cached objects to render in cage mode. Use if adding/removing children from Cage Parent. No need to call if moving/modifying/toggling existing children.
| BackgroundMode Sigtrap.VrTunnellingPro.TunnellingImageBase.backgroundMode = BackgroundMode.COLOR |
Determines what is rendered in the vignette effect.
| float Sigtrap.VrTunnellingPro.TunnellingImageBase.blurDistance = 3 |
Blur radius.
| int Sigtrap.VrTunnellingPro.TunnellingImageBase.blurDownsample = 3 |
Downsample before blurring. Higher is faster and blurrier.
| int Sigtrap.VrTunnellingPro.TunnellingImageBase.blurPasses = 3 |
Blur passes. Higher is slower but blurrier.
| BlurKernel Sigtrap.VrTunnellingPro.TunnellingImageBase.blurSamples |
How many samples to use per pixel per pass?
Manually set cage MSAA, or AUTO to follow quality settings.
| int Sigtrap.VrTunnellingPro.TunnellingImageBase.cageDownsample = 0 |
Render cage at half or quarter resolution.
1: Half res. 2: Quarter res.
| float Sigtrap.VrTunnellingPro.TunnellingImageBase.cageFogBlend = 1 |
Fog blending for materials using Cage Fogged shaders. 0: No fog. 1: 100% fog.
| float Sigtrap.VrTunnellingPro.TunnellingImageBase.cageFogDensity = 0.01f |
Density of fog for materials using Cage Fogged shaders
| float Sigtrap.VrTunnellingPro.TunnellingImageBase.cageFogPower = 2 |
Fog falloff for materials using Cage Fogged shaders
| bool Sigtrap.VrTunnellingPro.TunnellingImageBase.cageUpdateEveryFrame =false |
FALSE: Cache cage objects in OnEnable.
CAN move/modify objects
CANNOT add/destroy objects
TRUE: Refresh objects each frame.
There will be some GC alloc each Update.
Consider calling UpdateCage() manually.
| CounterVelocityMode Sigtrap.VrTunnellingPro.TunnellingImageBase.counterVelocityMode = CounterVelocityMode.OFF |
Choose counter-velocity effect implementation, or disable.
SHADER mode requires cage objects to use Cage Counter Motion shaders.
| Vector3 Sigtrap.VrTunnellingPro.TunnellingImageBase.counterVelocityPerAxis = Vector3.one |
Scale counter-velocity on individual axes.
Multiplied by counterVelocityStrength.
| float Sigtrap.VrTunnellingPro.TunnellingImageBase.counterVelocityResetDistance = 0 |
If counterVelocityMode is REAL, reset cage position and rotation when it has travelled this far.
If <= 0, no distance-based reset.
| float Sigtrap.VrTunnellingPro.TunnellingImageBase.counterVelocityResetTime = 0 |
If counterVelocityMode is REAL, reset cage position and rotation after this time.
If <= 0, no time-based reset.
| float Sigtrap.VrTunnellingPro.TunnellingImageBase.counterVelocityStrength = 1f |
Scale counter-velocity relative to motionTarget motion.
| float Sigtrap.VrTunnellingPro.TunnellingImageBase.effectOverlay = 0 |
Allows a persistent overlay of the effect across the entire view.
Applies to SKYBOX, CAGE_COLOUR, CAGE_SKYBOX modes.
| const string Sigtrap.VrTunnellingPro.TunnellingImageBase.GLOBAL_PROP_CAGEPOS = "_VRTP_CagePos" |
Global shader parameter for relative position offset between cage and world. In other words, how far has player artificially locomoted from reference point? Used in counter-motion triplanar shaders.
| const string Sigtrap.VrTunnellingPro.TunnellingImageBase.GLOBAL_PROP_WORLD2CAGE = "_VRTP_WorldToCage" |
Global shader parameter for world-to-cage vertex matrix.
Used in counter-motion triplanar shaders.
| const string Sigtrap.VrTunnellingPro.TunnellingImageBase.GLOBAL_PROP_WORLD2CAGE_NORMAL = "_VRTP_WorldToCageNormal" |
Global shader parameter for world-to-cage normals matrix.
Used in counter-motion triplanar shaders.
| bool Sigtrap.VrTunnellingPro.TunnellingImageBase.irisZRejection = true |
At start of rendering, fill Z buffer where effect will be to save fillrate on drawing world.
Disabled with blur or masking.
|
staticget |
Singleton instance.
Will refer to either a Tunnelling or TunnellingOpaque effect.
Will not refer to a TunnellingMobile effect.
|
get |
Is effect currently using/rendering the cage?
|
get |
Is effect currently using/rendering a mask?