DYT/Tool/TritonSDK/Resources/Triton.config
2024-12-25 22:48:51 +08:00

953 lines
39 KiB
Plaintext

# Triton's configuration file - this is read at initialization time, so restart Triton
# after making changes here.
#########################################################################################
# General Settings
#########################################################################################
# Set this to yes for troubleshooting - additional error information may be sent
# to your debugger's output window.
enable-debug-messages = no
# With this, error messages will pop up in an alert box. Useful for troubleshooting
# installed applications in the field where you don't have a debugging environment
enable-debug-alert-messages = no
# Set this to yes for troubleshooting - additional error information may be sent
# to the console
enable-debug-messages-to-console = no
# Sets debug names for OpenGL, DirectX
# Currently only implemented for OpenGL
enable-renderer-object-names = no
# Depending on the setting of use-uniform-buffer-objects, and support for UBOs
# (depending on your card/driver), Triton may or may not use UBOs. Therefore
# the uniform declarations (if you want to refer to them in the user shaders) are different
# in each case. The recommended way to use such uniforms is to change/pass them via
# the user functions directly from Triton's shaders. In some cases however, developers still
# prefer the uniforms to be available in the user shaders (especially whilst some new
# functionality is being worked out. To support this you can use this flag.
gl-uniforms-available-in-usershaders = no
# Ensure thread safety when calling Triton::Ocean public methods via a mutex object.
# If you are sure you will only call Triton from a single thread, this may be disabled.
thread-safe = yes
# The default resolution of the projected grid used to render the ocean geometry
# Note, this should be an odd number to make the horizon line align with a row
# edge. Set this higher to reduce aliasing artifacts when moving, or lower to
# gain more performance.
default-grid-resolution = 513
default-grid-resolution-mac = 257
# In geocentric / ECEF coordinate systems, the altitude (in meters) below which
# we switch to a planar approximation of the local surface to avoid precision issues
grid-planar-height = 2000
# Uses double precision calculations when projecting the grid onto an ellipsoid
# inside Triton's shaders in WGS84 systems. Requires modern drivers and hardware,
# but can help a lot with precision issues like stair-stepping in zoomed-in views.
ellipsoid-double-precision = no
# Calculates a smooth horizon for the projected grid
ellipsoid-smooth-horizon = no
# Whether the water surface is drawn as double sided. This is needed for when the
# camera is inside wave troughs, but may cause some anomalies when the water is
# both rough and transparent.
grid-double-sided = yes
# Adjustment to the water height when switching from ellipsoid to planar representations
# to account for precision loss
planar-adjust = 0
# Controls how aggressively the projected grid is expanded to prevent clipping at the corners
# when the camera rotates.
grid-clip-factor = 4.0
# The maximum amount the projected grid is allowed to expand to allow for wave displacements
# close to the surface. Setting this too high results in a loss of resolution and more
# aliasing when close to the ocean surface, but setting it too low could result in the
# ocean surface not filling the screen.
max-allowable-displacement = 3.0
# A fudge factor to ensure the projected grid fills the screen at extreme horizon rotations and
# offsets
grid-expansion-scale = 1.3
# A nudge on the horizon line in screen space to avoid precision issues in the vertex programs.
grid-horizon-offset = -0.001
# Whether Triton makes a copy of your height map (set via Environment::SetHeightMap) into
# system memory, to ensure height queries reflect coastal effects. Set to yes for accurate
# height queries near shoreline, or no to avoid the overhead and blocking associated with
# this copy.
do-height-map-copy = yes
# The default ocean depth (in world units) used inside the shaders if a height map query outside of
# the height map's area is made.
shader-default-depth = 1000.0
# Whether a pixel buffer object is used in OpenGL to asynchronously copy the height map
# to system memory. This can prevent stalls when calling Environment::SetHeightMap, but
# is dependant on what the driver does. Note that setting this will require that a valid
# GL context is present when calling both SetHeightMap() and GetHeight().
height-map-copy-use-pbo = no
# Length of vector used for intersection tests.
intersection-vector-length = 100000.0
# Length of vector used for testing whether the camera is above water.
intersection-vector-length-above-water = 100000.0
# Length of vector used for projecting the ocean grid onto a geocentric ocean surface.
intersection-vector-length-projection = 100000.0
# Whether to prevent Triton from drawing into the alpha channel
alpha-mask = no
# The shader file in the resources folder where user lighting overrides reside.
# (OpenGL only)
user-shader-functions-filename = user-functions.glsl
user-vert-shader-functions-filename = user-vert-functions.glsl
# The maximum distance across which Triton will estimate the slope of the terrain
# when computing an automatic breaking wave direction.
max-slope-distance = 1000.0
# Unsupported, do not use:
enable-breaking-waves-map = no
# Whether to allow use of uniform buffer objects (UBO's) to speed up setup of OpenGL shaders
# There may be some drivers out there that don't work well with UBO's, so enable at your
# own risk.Specifically the extension : GL_ARB_uniform_buffer_object, must be available
# on your card
use-uniform-buffer-objects = yes
# Whether to use bindless textures.
# Works only if renderer is >= OPENGL_4_5
# *and* the required extension (GL_ARB_bindless_texture) is supported by your card
use-gl-bindless-textures = no
# Whether to use bindless UBOs.
# Works only if renderer is >= OPENGL_4_5
# *and* bindless graphics are available on your card. Specifically,
# extensions GL_NV_vertex_buffer_unified_memory and GL_NV_shader_buffer_load are supported by your card
# *and* UBOs are available on your card.
# *and* use-uniform-buffer-objects is set to yes. See use-uniform-buffer-objects
use-gl-bindless-uniform-buffer-objects = no
# Whether to use bindless vertex and index buffers.
# Works only if renderer is >= OPENGL_4_5
# *and* bindless graphics are available on your card. Specifically,
# extensions GL_NV_vertex_buffer_unified_memory and GL_NV_shader_buffer_load are supported by your card
# *Note* Even if the these extensions are supported, depending on the OpenGL core and compatibility contexts
# that were used to create the OpenGL context, bindless vertex/index buffers may still not work. This
# is a known issue. So, please make sure to turn this off, if so.
use-gl-bindless-vertex-buffers = no
# Whether to use glProgramUniform* instead of glUniform* in OpenGL (may reduce driver overhead,
# but doesn't really make a difference in our tests.)
use-program-uniforms = yes
# Whether a known good state should be set prior to rendering. Setting this to no can be
# unsafe, but gains a very small amount of performance.
set-default-state = yes
# The force of gravity used in the wave simulations, in meters per second squared.
wave-gravity-force = 9.81
# Adjusts our assumptions about the range of projected Z values in your application's
# projection matrix. If you are using an unusual projection matrix, such as for a
# reverse floating point depth buffer in OpenGL, you can adjust the near and far
# z values here.
opengl-near-clip = -1.0
opengl-far-clip = 1.0
directx-near-clip = 0.0
directx-far-clip = 1.0
# If set to yes, Triton will not attempt to save and restore any currently bound shaders or
# render targets in OpenGL. If your application can ensure this is done surrounding any calls
# that draw in Triton, then you can set this to "yes" to avoid potential pipeline stalls.
avoid-opengl-stalls = no
# If set to yes, Triton will not attempt to save and restore any rendering state in DX11.
# If your application can ensure this is done surrounding any calls
# that draw in Triton, then you can set this to "yes" to avoid potential pipeline stalls.
avoid-dx11-stalls = no
#########################################################################################
# Settings for volumetric decals on the water
#########################################################################################
# Size of the depth texture created for use with volumetric decals. For maximum precision
# in decal placement, increase this to be at least as large as your viewport (at the
# expense of some performance.)
depth-texture-size = 512
# Depth offset value for volumetric decals
decal-depth-offset = -0.001
# Horizontal scale of the volume used to render the decal (used to prevent clipping in
# seas.)
decal-volume-scale = 1.0
# Height of the volume used to render the decal (must be as high as your roughest seas.)
decal-volume-height = 15.0
# If your depth range is mapped to something other than [0,1], set this to yes to cause
# Triton to query for the actual depth range instead of assuming [0,1]. This can cause
# a pipeline stall so it's best avoided.
decal-get-depth-range = yes
# Whether a 32-bit floating point depth buffer should be used for decals, for additional
# precision at the expense of memory and some performance. OpenGL only.
decal-floating-point-depth = yes
# Bypasses the user shader "override position" callback when rendering the depth texture
# used by decals. This prevents any custom code for logarithmic depth buffers etc. from
# affecting the values in the depth texture, as the decal shaders assume these values
# are linear.
bypass-override-position-on-depth-pass = yes
#########################################################################################
# Settings for system compatibility
#########################################################################################
# Forces Triton to use the CPU-based FFTSS library for the FFT transforms, which
# has no special system requirements or DLL dependencies. If you're having any trouble
# getting Triton to work on your system, try setting this to yes as a first step, then
# start disabling individual FFT methods to narrow down the problem.
fft-force-cpu = no
# Explicitly disable the use of CUDA 4.0 and CUFFT to conduct FFT's on NVidia systems.
disable-cuda = no
# Explicitly disable the use of Intel's Integrated Performance Primitives library to
# conduct FFT's.
disable-ipp = no
# Explicitly disable the use of OpenCL on ATI systems running with the OpenGL renderer.
disable-opencl = no
# Explicitly disable the use of DirectX 11 Compute Shaders (AKA DirectCompute) on
# feature level 11 hardware with the DirectX11 renderer.
disable-compute-shader = no
#########################################################################################
# Settings for the FFT wave model
#########################################################################################
# The dimensions of the tileable 2D array of wave points simulated. As FFT's are
# expensive, you don't want to make this too high - and there's no point in computing
# a grid that exceeds the resolution of the ocean's projected grid geometry in
# screen space anyhow. Larger grid dimensions can let you create larger grid sizes
# that reduce tiling, but we overlay some noise to hide tiling artifacts anyhow.
# Must be a power of 2.
# If the ocean quality setting is BEST, this value will be doubled.
fft-grid-dimension-x = 256
fft-grid-dimension-y = 256
# The size the FFT grid covers in world units. Larger values will reduce tiling,
# but stretching out the grid such that it's below the resolution of the underlying
# ocean geometry will interfere with your ability to render higher frequency waves.
# With these default settings where the size matches the FFT dimensions, we have a
# maximum resolution of 1 meter in the wave simulation. Note that many cards will not
# support mip-mapping on floating point textures larger than 256, so artifacts may result
# from increasing this. These values should match.
fft-grid-size-x = 256
fft-grid-size-y = 256
# A factor that accounts for imprecisions in wave propagations over time
# Applied to the simulated time t as t = t + adjustment * t
wave-time-adjustment = 0
# This setting reportedly works well with the default 256x256 FFT grid size
#wave-time-adjustment = -0.0005097
# Whether the 3D water displacement is sampled again at a higher octave to fake
# higher resolution / more 3D waves. This gets set at runtime based on the ocean
# quality setting, so changing it in this config file will have no effect.
detail-displacement = no
# The amount the extra octave is blended in, if detail-displacement = yes
detail-displacement-intensity = 0.5
# Whether a Fresnel approximation is used that is more reflective (and cinematic)
# or the real Fresnel equation
fresnel-approximation = yes
# Whether the updating of textures from the FFT is done one frame later to prevent blocking
# This can provide a measurable speed-up, but comes at the expense of latency between the
# model and visual representation, and also means the first frame is bogus.
fft-texture-update-frame-delayed = no
# If multiple GPU's are present, attempt to run FFT calculations in parallel across them
# when using CUDA. Only enable this if you are on x64. Bandwidth seems to be the bottleneck
# with the FFT's, so this doesn't actually help much today.
fft-enable-multi-gpu = no
# If multiple GPU's are present, force FFT calculations to run on a particular GPU.
fft-enable-force-device = no
# If fft-enable-force-gpu is set to yes, then FFT calculations will run on the GPU with this
# device ID.
fft-force-device-id = 0
# Whether to use an approximation of the sqrt() function when computing the wave heights.
# This will gain you some performance, but at the expense of accuracy of wave heights at high
# wind speeds (they will be a bit too small with this on.)
fft-use-sqrt-approximation = yes
# The "Phillips constant" described in Jerry Tessendorf's paper "Simulating Ocean Waves"
# from 1999. It influences the height of the waves as a function of wind speed. We couldn't
# find a good reference for what this should be set to from a physical standpoint, but
# arrived at this value experimentally as a good match for the wave heights described
# for specific wind conditions in the Beaufort scale. This value is only used with the
# TESSENDORF wave model.
fft-phillips-constant = 0.000003
# The constant used when using the JONSWAP model. As above, this influences the wave heights.
fft-phillips-constant-jonswap = 0.000076
# The constant used when using the Pierson-Moskowitz model. As above, this influences the
# wave hieghts.
fft-phillips-constant-pierson-moskowitz = 0.0000081
# The lowest floating point number allowed when calculating JONSWAP waves.
fft-precision-limit = 1E-9
# Toggles whether "choppy" waves are enabled for the CPU-based FFT transform.
# Choppiness is always enabled if OpenCL, CUDA, or DirectCompute are in use.
fft-enable-choppiness = yes
# The default choppiness of the waves - that is, how pointy the wave crests are.
# A value of zero would give you sinusoidal waves, but you don't want to set this too
# high either - the waves will start intersecting themselves if you start setting this
# above 2.0 or so depending on the conditions.
fft-choppiness = 1.5
# The default simulated depth of the water in meters. At large depths such as this
# default value in meters, depth doesn't really play a role in the simulation, so it's
# not important to set this accurately for open ocean simulations - it just needs to be
# a big number.
fft-depth = 100000.0
# Controls the amount of Perlin noise blended with the FFT patch to avoid tiling
fft-noise-amplitude = 0.2
# The distance in meters at which noise gets blended in to the wave displacements to hide tiling
fft-noise-distance = 10000.0
# The distance in meters at which we start to dampen wave displacement (but not normals and the lighting)
# in order to avoid shimmering artifacts when rolling
fft-displacement-damping-distance = 768.0
# Whether we supersample the normals and noise in the distance to fight tiling artifacts
high-altitude-effects = yes
# The lod bias to apply to the ocean texture to prevent aliasing / motion artifacts.
fft-lod-bias = 0
# Whether a negative LOD bias should be applied on normal lookups for specular highlights.
enable-specular-sparkle = yes
# Triggers whether the slope of the ocean at each point is computed via FFT's of their own
# instead of being computed by the surrounding points. This yields more accurate results,
# but at a high cost. This setting only affects the CPU-based FFT transforms; if OpenCL,
# CUDA, or DirectCompute are in use, this setting is ignored and will always be "no".
fft-exact-normals = no
# A setting to filter out waves travelling against the wind. For waves that appear more
# directional, increase this as low as 0.0. For waves that look totally chaotic, set this
# as high as 1.0.
fft-reflection-filter = 0.1
# The maximum chop to apply to waves when computing height queries. Limits discontinuities
# from overestimating the sample offset due to local choppiness.
fft-height-max-chop = 0.9
# Factor used to exaggerate or dampen swells set via SetDouglasSeaState or AddSwell.
swell-height-multiplier = 0.886
# swell-height-multiplier = 1.7722591
# Phase offset added to swell waves (radians). Adjust if you need to match some other model
# that starts from a different point.
swell-phase-offset = 0.7853981625
#swell-phase-offset = 0
# The number of octaves of detail applied to the surface normals. More equals more detail
# and more small waves, but at the cost of additional texture lookups in the fragment shaders.
num-detail-octaves = 4
# Whether CUDA will do a device synchronization each frame. This gives you stability in exchange
# for performance.
fft-enable-sync = no
#########################################################################################
# Settings for geocentric coordinate systems
#########################################################################################
# The equatorial radius of the earth used for the WGS84 coordinate system
equatorial-earth-radius-meters = 6378137.00
# The polar radius of the earth used for the WGS84 coordinate system
polar-earth-radius-meters = 6356752.3142
# The mean radius of the earth used for the spherical coordinate system
mean-earth-radius-meters = 6371009
#########################################################################################
# Ocean color settings
#########################################################################################
# The RGB color of the light refracted into the water that does not reflect the sky.
# These default settings are reasonable for deep ocean; for shallow water you may want
# to blend in the color of the sea floor. The presence of plankton and other properties
# can make this color specific to a location; i.e. you may want to make this more green
# for inviting tropical waters.
refract-color-red = 0.01
refract-color-green = 0.0
refract-color-blue = 0.05
# The default deep water refraction color used when no environment map is present.
# Since blue reflections of the sky won't be available for use, we need to bake some
# extra blue into the water color to compensate.
refract-color-no-env-red = 0.01
refract-color-no-env-green = 0.1
refract-color-no-env-blue = 0.3
# The specular exponent for sun reflections in the water.
shininess-opengl = 50000.0
shininess-directx = 50000.0
# The default fog color for above and below the water
default-fog-color-above-r = 1.0
default-fog-color-above-g = 1.0
default-fog-color-above-b = 1.0
default-fog-color-below-r = 0.0
default-fog-color-below-g = 0.2
default-fog-color-below-b = 0.3
# The default visibility in meters for above and below the water
default-visibility-above = 1000000000.0
default-visibility-below = 100.0
#########################################################################################
# Foam settings
#########################################################################################
# Controls the creation of foam on areas of the water that have high slopes. Only
# honored in CPU-based FFT water models; if OpenCL, CUDA,
# or DirectCompute are in use, foam is always on.
do-foam = yes
# The size of the projected foam texture in meters. Needs to be big enough such that
# tiling isn't obvious.
foam-scale = 50.0
# The prominence of the foam. 0 = invisible
foam-blend = 0.5
# Whether high-resolution foam textures should be used.
hi-res-foam = yes
#########################################################################################
# Spray settings
#########################################################################################
# Enables spray particle effects at crests of choppy waves
# Note if this is set to "no", Ocean::EnableSpray() will have no effect - this setting
# disables wave spray entirely. This effect consumes memory and performance, so turn
# it off if you don't need it.
fft-enable-spray = yes
# Number of spray particles maintained at any given time
fft-max-sprays = 10000
# Maximum number of new spray particle systems generated in one frame
fft-spray-budget = 100
# The point at which the Jacobian of the FFT grid will spawn spray.
# Values less than 1.0 result in more spray, greater than 1.0 in less.
fft-spray-threshold = 1.0
# The gravity force pulling the spray particles down, in meters per second squared.
fft-spray-gravity = 9.81
# The distance at which spray particles will be culled, in meters.
fft-spray-cull-distance = 500.0
# The amount of variance in spray particle directions, as a percent of the nominal velocity
fft-spray-direction-variance = 0.4
# The initial velocity of a spray particle, which is multiplied by the wind speed
fft-spray-velocity = 1.0
# The randomness in the initial velocities, as a percent of nominal velocity
fft-spray-velocity-variance = 1.0
# The distance in which the spray particle origin will lead in the wave direction, in meters.
fft-spray-position-lead = 0
# The randomness in spray particle positions, in meters
fft-spray-position-variance = 1.0
# The distance below the ocean surface that spray particles are centered at, in meters.
fft-spray-origin-depth = 2.0
# Controls the likelihood of an individual spray particle being spawned each frame.
# 0 means every particle is spawned all the time, higher numbers result in lower particle
# creation rates. Must be an integer.
fft-spray-sparsity = 30
# The size of a spray particle in meters.
fft-spray-particle-size = 4.0
# The randomness of a particle size in meters
fft-spray-particle-size-variance = 1.5
# Whether spray particles should be scaled in size as a function of the wind speed.
# This helps the spray look more natural and avoids seeing individual particles
# blown about at high wind speeds.
fft-scale-spray-with-wind = yes
# If fft-scale-spray-with-wind is "yes", this value will be used to determine the
# wind speed at which fft-spray-particle-size is applied. Particle sizes will
# be scaled linearly by dividing the wind speed (in meters per second) by this
# value and multiplying fft-spray-particle-size by that ratio.
fft-spray-particle-size-ref-speed = 10.0
# The initial transparency of the spray particles. 0 = transparent, 1 = opaque.
fft-spray-transparency = 0.5
# Whether to use point sprites under OpenGL if available. This can be more efficient,
# but can result in inconsistently sized spray particles under different fields of view
# or viewport sizes.
spray-use-point-sprites = no
# Whether to force use of point sprites under OpenGL (vs. triangles). If the max point sprite
# size isn't large enough (usually the case with NVidia), Triton will fall back to triangles
# unless this is set to "yes". Point sprites are more efficient however. This setting will
# override spray-use-point-sprites if set to "yes".
spray-force-point-sprites = no
spray-force-point-sprites-mac = yes
# Whether particles use a purely additive blending function (ONE, ONE) as opposed to
# a softer (ONE, ONE_MINUS_SRC) function. If you're using Triton with HDR, you'll need
# to set this to "yes" to avoid negative color values.
particles-pure-additive-blend = no
# Whether particles use a traditional SRC_ALPHA, ONE_MINUS_SRC_ALPHA blend equation
# instead of ONE, ONE_MINUS_SRC_ALPHA. This can lead to sorting artifacts, but may be
# necessary in some engines for proper behavior.
particles-traditional-blend = no
#########################################################################################
# Douglas Sea Scale settings
#########################################################################################
# Parameters used for interpreting the "swell state" in Environment::SetDouglasSeaScale
# Swell wavelengths for short, averge, and long swell conditions
douglas-short-wavelength = 50.0
douglas-average-wavelength = 100.0
douglas long-wavelength = 200.0
# Swell wave heights for low, moderate, and high swell conditions
douglas-low-wave-height = 1.0
douglas-moderate-wave-height = 3.0
douglas-high-wave-height = 4.5
# Swell state 1 is short/low, 2 is long/low, 3 is short/moderate, 4 is average/moderate
# 5 is long/moderate, 6 is short/high, 7 is average/high, 8 is long/high
#########################################################################################
# Ship wake settings
#########################################################################################
# The distance travelled, as a % of the ship length, at which a prop wash segment
# is emitted
wake-wave-generation-distance = 0.5
# This is only used for the CPU-side physical simulation of Kelvin wakes used for
# height queries. It controls the frequency at which new circular waves are emitted
# from the propellers, but these waves do not actually displace the water surface,
# they are for simulation purposes only as we can't read back the actual Kelvin wake
# displacement textures to the CPU for height queries.
wake-wave-generation-period = 5.0
# Whether you really want all the overhead of a parallel simulation of ship wakes
# just to make height queries more accurate near the wakes
wakes-affect-height-queries = yes
# Whether prop wash should be computed on a per-fragment (smoother) or per-vertex (faster)
# basis.
per-fragment-prop-wash = yes
# Whether the above per-fragment-prop-wash setting should be automatically applied only
# when the ocean quality is set to "better" or "best"
auto-per-fragment-prop-wash = no
# The rate of prop wash emission will be increased when a ship is on curved paths.
# This factor controls how strong an effect this has. It multiplies the turn angle,
# and the cosine of the result is used to modulate the generation distance.
wake-wave-curve-generation-factor = 4.0
# The time interval in seconds in which a wake emits a spray effect
wake-spray-generation-period = 0.1
# Exponent for decaying wave amplitude with wave radius
wake-wave-decay = 0.5
# The maximum number of Kelvin wake wavelengths that may be displayed at once.
max-wake-waves-dx9 = 5
max-wake-waves-dx11 = 5
max-wake-waves-opengl = 10
# Whether 3D Kelvin wakes emanating from the ship are rendered. This places extra load
# on the vertex programs, so if you don't need this, set it to "no"
wake-kelvin-wakes = yes
# The maximum number of circular waves from impacts or rotor wash that may be
# displayed at once.
max-circular-waves-dx9 = 5
max-circular-waves-dx11 = 10
max-circular-waves-opengl = 10
# The maximum number of prop wash segments that may be displayed at once.
max-prop-wash-dx9 = 19
max-prop-wash-dx11 = 50
max-prop-wash-opengl = 50
# Whether propeller backwash trails (aka turbulent wake) behind the ship are rendered
# This places extra load on the vertex programs, so if you don't need this,
# set it to "no"
wake-propeller-backwash = yes
# LOD bias for prop wash texture (OpenGL only.)
prop-wash-lod-bias = 1.0
# Default width of prop wash effect as a multiple of the ship beam width
prop-wash-default-width-multiplier = 1.5
# The number of seconds prop wash segments will fade out over. Used in
# conjunction with wake-wash-length - segments will fade out over that
# length, and over time. You can set one or the other to very high values
# if you want to prop wash dissipation to be based only on time, or only
# on distance.
prop-wash-default-fade-time = 30.0
# The length, in meters, after which the turbulent wake dissipates entirely
# Has no real physical basis, but is useful to enforce an upper bound on
# prop wash segments per ship.
wake-wash-length = 500
# The wave height at which prop wash will dissipate entirely. This effect
# also gets multiplied in the the fading based on length and time.
prop-wave-height-fade = 20.0
# Adjusts the initial amplitude of wake waves
wake-kelvin-wave-scale = 5.0
wake-circular-wave-scale = 1.0
# The maximum number of spray particle systems to run at any given time
wake-max-sprays = 300
# Whether spray particle systems are culled when not in view.
wake-cull-sprays = yes
# The distance beyond which wake sprays are culled out
wake-spray-cull-distance = 1000.0
# The number of particles per spray particle system. The total number of particles
# for wake sprays is this times wake-max-sprays.
wake-spray-particles = 5
# The average size of a wake spray particle
wake-spray-particle-size = 13.0
# The average size of a bow spray particle
bow-spray-particle-size = 13.0
# The size variation of a wake spray particle (ie, 0.2 means +- 20%)
wake-spray-size-variation = 0.2
# The size variation of a bow spray particle (ie, 0.2 means +- 20%)
bow-spray-size-variation = 0.2
# The variation in wake spray particle velocity (0.2 = 20%)
wake-spray-velocity-variation = 0.4
# The variation in bow spray particle velocity (0.2 = 20%)
bow-spray-velocity-variation = 0.4
# The variation in wake spray particle initial positions, in meters.
wake-spray-position-variation = 7.0
# The variation in bow spray particle initial positions, in meters.
bow-spray-position-variation = 7.0
# The variation in wake spray direction (0.2 = 20%)
wake-spray-direction-variation = 0.5
# The variation in bow spray direction (0.2 = 20%)
bow-spray-direction-variation = 0.5
# The time new wake waves fade in (to prevent discontinuities - in seconds.)
wake-fade-in-time = 1.0
# Transparency of wake spray particles
wake-spray-transparency = 0.3
# Transparency of bow spray particles
bow-spray-transparency = 1.3
# The minimum amplitude of a wake wave before it is discarded
wake-circular-wave-min-amplitude = 0.01
wake-kelvin-wave-min-amplitude = 0.07
# The maximum amplitude of a wake wave before it is clamped
wake-circular-wave-max-amplitude = 1.5
wake-kelvin-wave-max-amplitude = 1.5
# The minimum length of a prop wash segment
min-prop-wash-segment-length = 10.0
# Scaling factor on prop wash widths
prop-wash-scale = 0.5
# A boost in the initial elevation of new wake spray particles.
wake-spray-elevation = -1.0
# A boost in the initial elevation of new bow spray particles.
bow-spray-elevation = -1.0
# Maximum lifetime of a wake spray particle.
wake-spray-max-lifetime = .7
# Maximum lifetime of a bow spray particle.
bow-spray-max-lifetime = .4
# Wake spray speed is ship speed multiplied by this scale.
wake-spray-velocity-scale = .7
# Bow spray speed is ship speed multiplied by this scale.
bow-spray-velocity-scale = .7
# Maximum distance from camera at which circular waves (from impacts & rotor wash) and
# kelvin wakes (from ship wakes) will be drawn.
max-circular-wave-distance = 1000.0
max-kelvin-wake-distance = 1000.0
# Maximum distance from camera at which a WakeGenerator's wake effect
# will be processed - useful for preserving performance with massive
# numbers of wakes. Set to 0 for no limit. Depends on the below setting
# of wake-generator-distance-threshold before it is applied.
max-wake-generator-distance = 5000
# The above max-wake-generator-distance will only be applied once
# the total number of WakeGenerators exceeds this amount.
wake-generator-distance-threshold = 100
# The intensity of foam from Kelvin wake waves.
wake-kelvin-wave-foam-scale = 0.5
# A factor used to multiply the size of the bow Kelvin wake effect.
bow-wake-size-multiplier = 1.0
# A factor used to multiply the size of each stern Kelvin wake wave.
stern-wake-size-multiplier = 1.0
hull-wake-width-scale = 55
hull-wake-length-scale = 100
ship-speed-max-foam = 15
ship-speed-min-foam = 8
# Whether wake spray particles are all drawn in 1 call.
# Only valid for OpenGL.
# Should work on all GPUs.
# If your wake sprays are not being drawn correctly (or not at all),
# set this to no
wake-sprays-batched-draw-opengl = yes
#########################################################################################
# Rotor wash settings
#########################################################################################
# The time interval in seconds in which a wash emits a wave
wash-wave-generation-period = 2.0
# The time interval in seconds in which a wash emits a spray effect
wash-spray-generation-period = 0.1
# The diameter of the wash effect, as a multiple of the rotor diameter
wash-size = 1.0
# Parameter to allow adjustment of the wind strength at the water surface
# from the wash, to result in larger or smaller waves from the wash
wash-wind-scale = 2.0
# The maximum wind velocity used to model waves and particle effects
wash-max-velocity = 8.0
# The particle size used for the rotor wash spray
wash-spray-particle-size = 6.0
# Transparency of the wash spray particle
wash-spray-transparency = 0.3
# Exponent for decaying wave amplitude with radius
wash-wave-decay = 1.35
# The time, in seconds, in which an individual rotor wash decal fades away.
wash-decal-period = 3.0
# The minimum and maximum scale of the rotor wash decals over the wash-decal-period.
wash-decal-min-scale = 1.0
wash-decal-max-scale = 5.0
# The intensity of the decal effect
wash-decal-intensity = 2.0
# How random the interval between emission of circular waves is.
wash-phase-randomness = 0.5
# The maximum speed of the rotor itself at which the decal texture effect will be applied.
wash-decal-speed-limit = 10.0
#########################################################################################
# Impact settings
#########################################################################################
# The number of particle systems generated when an Impact is triggered
impact-num-sprays = 10
# The scale applied to the impact's force based on its velocity and mass
impact-energy-scale = 0.0000009
# The upper bound on simulated impact energy (beyond this the particle systems just
# fly apart.)
impact-max-energy = 20
# The random variation in positions of sprays from the impact
impact-spray-position-variation = 2.0
# Transparency of an impact spray particle
impact-spray-transparency = 0.2
# Exponent for decaying wave amplitude with radius
impact-wave-decay = 0.33333
#########################################################################################
# Tidal stream wake settings
#########################################################################################
# The random variance in wake wave amplitude as a percentage.
tidal-stream-amplitude-variance = 0.07
# The rate at which random fluctuations in wake amplitude are applied over time.
tidal-stream-amplitude-speed = 4.0
# The random variance in the direction of the wake. This is added or subtracted to
# each component of the normalized direction vector.
tidal-stream-direction-variance = 0.05
# The rate at which random fluctuation in direction is applied (smaller = slower)
tidal-stream-direction-speed = 0.5
# How much foam the tidal wake should generate at its crest. As Triton's foam
# doesn't actually move with the current, it's best to keep this subtle.
tidal-stream-foam = 0.5
# Scaling factor for tidal stream foam decal animation
tidal-stream-animation-scale = 0.5
#########################################################################################
# Mesh settings
#########################################################################################
# Optionally use a conventional mesh to draw the ocean below a certain
# altitude instead of a projected grid.
# Whether to switch to a conventional mesh or not
use-mesh = yes
# The resolution of the mesh per side. This may be multiplied if the ocean
# quality setting is better than GOOD.
mesh-grid-resolution = 513
mesh-grid-resolution-mac = 257
# The altitude at which we switch to a planar mesh
mesh-switch-altitude = 100
# Whether the mesh switch altitude should be multiplied by the zoom level
adjust-mesh-switch-with-zoom = yes
# How far out the mesh extends
mesh-size = 50000
#########################################################################################
# Leeward Dampening effect
#########################################################################################
# Whether wind waves are reduced on the leeward side of ships. Only works on ships
# that have wake effects on them, and only works with OpenGL at present.
# This is off by default as it may exceed the maximum instruction count for vertex programs
# on some platforms, and also comes at a performance cost.
leeward-dampening = no
# The maximum number of ship locations used for leeward wave dampening.
max-leeward-dampeners-opengl = 5
# The maximum distance from the camera at which the dampening effect will be applied
max-leeward-dampener-distance = 1000.0
# How much the dampening effect is applied to the waves (0-1)
leeward-dampening-strength = 0.07
# The maximum ship velocity at which the leeward dampening will have any effect, in world
# units per second.
max-leeward-dampening-velocity = 10.0
#########################################################################################
# Underwater God Rays (Crepuscular Rays) effect
#########################################################################################
# Enable or disable the effect entirely. If you never intend to use them, this can save
# some GPU memory. Ocean::EnableGodRays(true) also needs to be called to start the effect.
underwater-god-rays-enabled = yes
# The number of god ray vertices along the grid
god-rays-mesh-dimension = 15
# How deep the god rays go (in meters)
god-rays-effect-depth = 200.0
# Extinction coefficients for water
god-rays-extinction-coefficient-r = 0.8
god-rays-extinction-coefficient-g = 0.016
god-rays-extinction-coefficient-b = 0.01
# The "K" factor used to adjust the spacing between grid points to fill the viewport
god-rays-adjustment-factor = 0.8
#########################################################################################
# Double-refraction effect
#########################################################################################
# The color added to the water (before lighting) when the view angle approaches the surface
# normal (unless looking down.) This approximates the effect of diffuse lighting caused
# by double refraction, or "seeing through" a wave crest a little. It adds a sense of depth
# and translucency to the water and makes it look less plastic.
double-refraction-r = 0.2
double-refraction-g = 0.6
double-refraction-b = 0.5
# The intensity of the double refraction effect.
double-refraction-intensity = 0.8