# 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 # 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 # 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 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 # 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 # 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 # Whether to allow use of uniform buffer objects (UBO's) to speed up setup of OpenGL shaders use-uniform-buffer-objects = yes # 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 = no # Whether to cache uniform values to prevent unnecessary glUniform calls cache-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 ######################################################################################### Settings for volumetric decals on the water ######################################################################################### # Size of the depth texture created for use with volumetric decals 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 = no ######################################################################################### 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. 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 # 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 # 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 3.0 or so depending on the conditions. fft-choppiness = 1.6 # 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 = 500.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 = 500.0 # The lod bias to apply to the ocean texture to prevent aliasing / motion artifacts. fft-lod-bias = 0.8 # 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 = 1.0 # Factor used to exaggerate or dampen swells set via SetDouglasSeaState or AddSwell. swell-height-multiplier = 1.0 ######################################################################################### 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 ######################################################################################### Settings for the Gerstner wave model ######################################################################################### # Used only with the Gerstner wave model, to fade out high-frequency waves with distance. grid-anti-aliasing = 1.0 # The number of simultaneous waves in the Gerstner wave model. As each wave is computed # in the vertex program, this can't get too large. If you're after large numbers of waves, # use the Tessendorf wave model instead. # Important! If you change this setting, you must also change the MAX_WAVES definition # in the Gerstner shader files in the resources directory to match it. num-gerstner-waves = 5 # The default steepness of the waves in the Gerstner wave model, which controls their "choppiness." gerstner-wave-steepness = 0.2 # Default wavelength of the Gerstner waves gerstner-median-wavelength-meters = 100.0 # Default amplitude of the Gerstner waves gerstner-median-amplitude-meters = 1.5 # Default variance in the directions of the Gerstner waves gerstner-directional-variance-degrees = 20.0 ######################################################################################### 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.0 refract-color-green = 0.2 refract-color-blue = 0.3 # The specular exponent for sun reflections in the water. shininess-opengl = 5.0 shininess-directx = 80.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 or with Gerstner 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 ######################################################################################### 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 = 30000 # Maximum number of new spray particle systems generated in one frame fft-spray-budget = 20 # 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 = 0.95 # 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 = 300.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.5 # 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 # The initial transparency of the spray particles. 0 = transparent, 1 = opaque. fft-spray-transparency = 1.0 # 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. 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 ######################################################################################### 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 # 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 # Disable 3D Kelvin wakes on AMD/ATI cards. Current drivers (as of 4/14/14) don't handle # this properly on at least some ATI cards. disable-kelvin-wakes-AMD = 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 = 25 max-prop-wash-dx11 = 25 max-prop-wash-opengl = 25 # 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 length, in meters, after which the turbulent wake disspates entirely wake-wash-length = 500 # 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 = 10 # The average size of a spray particle wake-spray-particle-size = 13.0 # The size variation of a spray particle (ie, 0.2 means +- 20%) wake-spray-size-variation = 0.2 # The variation in spray particle velocity (0.2 = 20%) wake-spray-velocity-variation = 0.4 # The variation in spray particle initial positions, in meters. wake-spray-position-variation = 7.0 # The variation in spray direction (0.2 = 20%) wake-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 # The minimum amplitude of a wake wave before it is discarded wake-wave-min-amplitude = 0.05 # The maximum amplitude of a wake wave before it is clamped wake-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 = 0 # 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 ######################################################################################### 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.1111 # 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 ######################################################################################### 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 ######################################################################################### 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 = no # The resolution of the mesh per side mesh-grid-resolution = 512 # The altitude at which we switch to a planar mesh mesh-switch-altitude = 100 # How far out the mesh extends mesh-size = 50000