Skip to main content

Visual Tuning

This guide covers the shader and material properties that control the visual appearance of the ocean surface. These settings are configured on the ocean material, which uses the Custom/FFTOceanURP_VR shader.

Material Location​

The default ocean material is located at:

Assets/PlatypusIdeas/VROcean/Runtime/Materials/M_Ocean.mat

Select this material to view its properties in the Inspector, or create a duplicate for customization.

Ocean Material Inspector The ocean material with shader properties organized by category

Ocean Colors​

Ocean Albedo Color​

The base color multiplied with depth-based coloring. This tints the overall water appearance.

Default: RGB(0.02, 0.15, 0.25) - Deep blue-green

Deep Color​

The color of water when looking straight down or at maximum depth.

Default: RGB(0.01, 0.08, 0.15) - Dark blue

Shallow Color​

The color of water at glancing angles or shallow areas (when screen effects are enabled).

Default: RGB(0.15, 0.3, 0.35) - Teal

Foam Color​

The color of foam on wave crests.

Default: RGB(0.95, 0.95, 0.95) - Near white

Surface Properties​

Smoothness Close / Far​

Controls surface reflectivity at different distances.

ParameterRangeDefaultDescription
Smoothness Close0 - 10.95Reflectivity for nearby water
Smoothness Far0 - 10.85Reflectivity for distant water

Higher values create mirror-like reflections. Lower values create a matte, diffuse appearance. The shader interpolates between these based on distance from camera.

Metallic​

Range: 0 - 1
Default: 0.0

Water is non-metallic, so this should typically remain at 0. Increasing it creates an unrealistic chrome-like appearance.

Specular Intensity​

Range: 0 - 3
Default: 1.0

Multiplier for sun specular highlights. Increase for a brighter sun reflection on the water surface.

Diffuse Intensity​

Range: 0 - 2
Default: 1.0

Multiplier for diffuse lighting contribution. Reduce for a darker, moodier ocean.

Foam Settings​

Foam appears on wave crests where the surface folds over itself (negative Jacobian).

Foam Threshold​

Range: 0 - 1
Default: 0.3

The Jacobian value below which foam appears. Lower values produce more foam.

ValueResult
0.1Foam only on extreme wave peaks
0.3Moderate foam on crests
0.6Foam on most wave surfaces

Foam Softness​

Range: 0.01 - 1
Default: 0.1

Controls the gradient between foam and water. Higher values create softer, more gradual foam edges.

Foam Texture​

A grayscale texture that adds detail to foam. The default texture provides a bubbly, organic pattern.

Foam Scale​

Default: 10.0

UV scale for the foam texture. Higher values create smaller, more detailed foam patterns.

Subsurface Scattering​

Subsurface scattering (SSS) simulates light passing through thin parts of waves, creating the characteristic glow seen in ocean swells.

Subsurface Color​

Default: RGB(0.1, 0.4, 0.35) - Aqua green

The color of light transmitted through waves. Typically a brighter, more saturated version of the water color.

Subsurface Power​

Range: 0.1 - 10
Default: 2.0

Controls the tightness of the SSS effect. Higher values concentrate the effect to areas directly backlit by the sun.

Subsurface Intensity​

Range: 0 - 3
Default: 1.0

Overall strength of the SSS effect. Set to 0 to disable completely.

Subsurface Distortion​

Range: 0 - 1
Default: 0.5

How much the surface normal distorts the light direction for SSS calculation. Higher values create more variation across the surface.

Subsurface Ambient​

Range: 0 - 1
Default: 0.2

Minimum SSS contribution regardless of lighting angle. Adds depth to shadowed areas.

Wave Height Influence​

Range: 0 - 2
Default: 1.0

How much wave height affects SSS intensity. Higher waves have thinner crests that transmit more light.

Fresnel​

The Fresnel effect controls how reflectivity changes based on viewing angle. Water reflects more at glancing angles.

Fresnel Power​

Range: 0.1 - 10
Default: 5.0

Controls the falloff curve. Higher values create a sharper transition between reflective and non-reflective areas.

Fresnel Bias​

Range: 0 - 1
Default: 0.02

Minimum reflectivity when looking straight down at the water. Real water has approximately 2% reflectance at normal incidence.

Detail Normal​

A secondary normal map layer that adds small-scale ripple detail, visible mainly at close range.

Detail Normal Map​

A tangent-space normal map texture. The default provides fine ripple patterns.

Detail Normal Scale​

Default: 50.0

UV tiling for the detail normal. Higher values create smaller, more frequent ripples.

Detail Normal Strength​

Range: 0 - 2
Default: 0.5

Intensity of the detail normal blending. Higher values make ripples more pronounced.

Detail Normal Rotation​

Range: 0 - 360
Default: 0

Rotation of the detail normal UVs in degrees.

Detail Normal Direction​

Range: 0 - 360
Default: 0

Direction of detail normal animation movement in degrees.

Detail Normal Speed​

Default: 0.1

Speed of detail normal animation. Set to 0 for static ripples.

Detail Normal Tint Color​

Default: RGB(0.2, 0.5, 0.6)

Color applied to areas with strong detail normal variation.

Detail Normal Tint Intensity​

Range: 0 - 1
Default: 0.0

How much the tint color affects ripple areas. Set to 0 to disable tinting.

Advanced Reflection​

Additional controls for environment reflections beyond the standard Fresnel model.

Reflection Strength​

Range: 0 - 2
Default: 0.5

Multiplier for reflection probe contributions.

Reflection Smoothness​

Range: 0 - 1
Default: 0.8

Blur level for sampled reflections. Lower values create blurrier reflections.

Reflection Angle Start / End​

Range: 0 - 1
Default: 0.7 / 1.0

Controls the angular range where reflections are visible. Reflections fade out between these values based on the view angle.

Foam Kills Reflection​

Toggle, Default: On

When enabled, foam reduces reflection intensity, creating a more realistic matte foam appearance.

Environment​

Refracted Depth Factor​

Range: 0 - 2
Default: 0.5

Controls depth-based color variation when screen effects are enabled. Higher values create more contrast between shallow and deep areas.

VR Optimization​

Performance Mode​

Toggle (VR_MOBILE_MODE), Default: Off

Enables simplified rendering for mobile VR. Disables:

  • Detail normals
  • Subsurface scattering
  • Advanced reflections
  • Foam texture sampling

Enable this for Quest standalone builds.

Use Screen Effects​

Toggle, Default: Off

Enables depth-based refraction and coloring. Requires URP Depth Texture. Disable for better VR performance.

Use Plane Clipping​

Toggle, Default: Off

Enables clip plane support for underwater camera setups.

LOD Distance​

Range: 10 - 200
Default: 50

Distance at which displacement detail begins to fade.

Detail Fade Distance​

Range: 10 - 100
Default: 30

Distance at which detail normals fade out completely.

Style Presets​

Realistic Ocean​

Ocean Albedo: (0.02, 0.12, 0.20)
Deep Color: (0.01, 0.05, 0.12)
Shallow Color: (0.08, 0.20, 0.25)
Smoothness Close: 0.95
Subsurface Color: (0.08, 0.35, 0.30)
Subsurface Intensity: 1.2
Fresnel Power: 5.0

Tropical Paradise​

Ocean Albedo: (0.05, 0.25, 0.30)
Deep Color: (0.02, 0.15, 0.25)
Shallow Color: (0.20, 0.45, 0.40)
Smoothness Close: 0.92
Subsurface Color: (0.15, 0.50, 0.45)
Subsurface Intensity: 1.5
Fresnel Power: 4.0

Stormy Dark​

Ocean Albedo: (0.02, 0.05, 0.08)
Deep Color: (0.01, 0.02, 0.04)
Shallow Color: (0.05, 0.10, 0.12)
Smoothness Close: 0.80
Subsurface Color: (0.03, 0.10, 0.12)
Subsurface Intensity: 0.5
Fresnel Power: 6.0
Foam Threshold: 0.2

Stylized Cartoon​

Ocean Albedo: (0.10, 0.40, 0.50)
Deep Color: (0.05, 0.25, 0.35)
Shallow Color: (0.30, 0.60, 0.55)
Smoothness Close: 0.70
Subsurface Intensity: 0.0
Fresnel Power: 2.0
Detail Normal Strength: 0.0

Troubleshooting​

Water Looks Too Dark​

  • Increase Diffuse Intensity
  • Brighten Ocean Albedo Color and Deep Color
  • Ensure the directional light intensity is sufficient

Water Looks Too Bright / Washed Out​

  • Reduce Diffuse Intensity
  • Reduce Subsurface Intensity
  • Darken the color values

No Visible Reflections​

  • Ensure a reflection probe exists in the scene
  • Increase Reflection Strength
  • Check that Smoothness Close is high enough

Foam Looks Wrong​

  • Adjust Foam Threshold to control coverage
  • Modify Foam Softness for edge blending
  • Check that Choppiness in wave settings is high enough to generate foam

Performance Issues​

  • Enable Performance Mode (VR_MOBILE_MODE)
  • Disable Use Screen Effects
  • Reduce Detail Normal Strength to 0

Next Steps​