# 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