OVERCLOUD COMPATIBILITY

!!! Please note that OverCloud does NOT support URP or HDRP !!!

This page details how to add OverCloud support to various other assets.
If you need help integrating OverCloud into your pipeline, make a post in the forum thread or get in contact with me directly.

Crest Ocean System

1. Open Crest/Crest/Shaders/Ocean.shader
2. On line 214, under '#include "Lighting.cginc"', add:
    #include "Assets/OverCloud/OverCloudInclude.cginc"
3. Comment out line 474 (the one that says 'UNITY_APPLY_FOG(input.fogCoord, col);') and instead, replace it with the lines:
    float4 col4 = float4(col, 1.0);
    OVERCLOUD_FRAGMENT_FULL(col4, uvDepth, input.worldPos)
    OVERCLOUD_OCEAN_BASE(col4, uvDepth, input.worldPos)
    col = col4.rgb;

Cloud shadows (optional)
1. In Crest/Crest/Shaders/Ocean.shader, around line 414, just after the code
    // Soft shadow, hard shadow
    fixed2 shadow = (fixed2)1.0
    #if _SHADOWS_ON
        - input.flow_shadow.zw
    #endif
         ;
add:
    float cloudShadowIntensity = 1.0;
    shadow *= CloudShadows(input.worldPos, cloudShadowIntensity);
The value "cloudShadowIntensity" can be set to something higher than 1, or controlled via a global shader parameter to make the cloud shadows on the water stronger.

Lux Water

1. Open LuxWater/Shaders/Includes/LuxWater_Setup.cginc
2. Comment out the '#define FOG_EXP2' and add (anywhere) the lines:
    #include "Assets/OverCloud/OverCloudInclude.cginc"
    #define FOG_OVERCLOUD
3. Open LuxWater/Shaders/Includes/LuxWater_Core.cginc
4. On line 1231 change the #endif to:
    #elif defined(FOG_OVERCLOUD)
        if (!backside) {
            #if defined (UNITY_PASS_FORWARDBASE)
                OVERCLOUD_FRAGMENT_FULL(c, i.grabUV.xy / i.grabUV.w, worldPos)
                OVERCLOUD_OCEAN_BASE(c, i.grabUV.xy / i.grabUV.w, worldPos)
            #elif defined (UNITY_PASS_FORWARDADD)
                OVERCLOUD_FRAGMENT_FULL_ADD(c, worldPos)
                OVERCLOUD_OCEAN_ADD(c, i.grabUV.xy / i.grabUV.w, worldPos)
            #endif
        }
    #endif

Cloud shadows (optional)
1. In LuxWater_Core.cginc, around line 940, just after the line "UNITY_LIGHT_ATTENUATION(atten, i, worldPos);" add:
    float cloudShadowIntensity = 1.0;
    atten *= CloudShadows(worldPos, cloudShadowIntensity);
The value "cloudShadowIntensity" can be set to something higher than 1, or controlled via a global shader parameter to make the cloud shadows on the water stronger.

AQUAS Water/River Set

Aquas uses multiple different shaders, and so you'll have to modify the one you want to use.
This example will cover how to modify the shader "2SidedTripleTextured".
For other shaders, look to replace the same code (at different lines).

1. Open AQUAS/Shaders/Water/Desktop&Web/2SidedTripleTextured.shader
2. On line 75, under '#include "UnityStandardBRDF.cginc"', add:
    #include "Assets/OverCloud/OverCloudInclude.cginc"
3. On line 314, comment out 'UNITY_APPLY_FOG(i.fogCoord, finalRGBA);' and replace it with:
    OVERCLOUD_FRAGMENT_FULL(finalRGBA, i.projPos.xy / i.projPos.w, i.posWorld.xyz)
    OVERCLOUD_OCEAN_BASE(finalRGBA, i.projPos.xy / i.projPos.w, i.posWorld.xyz)
4. On line 337, under '#include "UnityStandardBRDF.cginc"', add:
    #include "Assets/OverCloud/OverCloudInclude.cginc"
5. On line 540, comment out 'UNITY_APPLY_FOG(i.fogCoord, finalRGBA);' and replace it with:
    OVERCLOUD_FRAGMENT_FULL_ADD(finalRGBA, i.posWorld.xyz)
    OVERCLOUD_OCEAN_ADD(finalRGBA, i.projPos.xy / i.projPos.w, i.posWorld.xyz)

F.A.Q.

Does/will OverCloud support URP/HDRP?

No, it does not and it never will.

Is OverCloud compatible with <Insert asset here>?

If the asset uses opaque shaders which write depth information (like most geometry shaders), it should be compatible out of the box.
If the asset makes heavy use of transparent effects (volumetric lighting plugins, other atmosphere assets), you can pretty much assume that it is not compatible.

What about transparent particles and stuff?

These can be made compatible by modifying their shaders. The manual describes how to do this.

Can you make OverCloud compatible with <Insert favorite asset here>?

Maybe. Make a post in the forum thread or get in contact with me directly and I'll try my best.