---
title: Caustics
product: Advanced Framework Pro
version: 1.0
engine: Unreal Engine 5.8
updated: 2026-10-05
canonical: https://docs.human-codeable.com/plugins/caustics.html
---

System

# Caustics

#### What it gives you

—

#### Requires

None

#### Required by

None

1 assets93 API members

Note

Narrative documentation for this plugin is still being written. The API reference below is complete.

## API reference

Every blueprint asset in this plugin. Expand an asset to see its members.

### Blueprints

**GenerateCausticsTextures**93 members

extends `CausticsGeneratorActor`

| Kind | Name | Signature | Description |
|---|---|---|---|
| var | `Texture Save Path`Output and Animation\|File Path | `string` | A path pointing to your game content. ie \content\Water\ |
| var | `Texture Save Name`Output and Animation\|File Path | `string` | The name of the texture. |
| var | `Water Depth`Caustics | `float` | The depth of the water to render in centimeters. |
| var | `Water Depth End`Caustics | `float` | This option is only used when rendering a depth based animation. This will be the final depth in the animation. |
| var | `Texture World Size`Caustics | `float` | This is how large of an area in centimeters to capture. |
| var | `Chromatic Spread`Caustics | `float` | This is the difference in index of refraction between light of red and blue wavelength. This difference causes a photon packet to stretch along this vector. The result can be used for realistic chromatic abberation, or at more extreme values to attempt to capture a semlance of a 4d texture (ie, frames are time and rgb are depth). |
| var | `Output Mode`Output and Animation | `CausticGeneratorOutputModes` | Allows changing between single frames and various animation types. |
| var | `Caustic Mesh Resolution`Output and Animation | `int` | This is the resolution of the caustic photon particle grid. The max is 4096. |
| var | `Downsample Output`Output and Animation | `int` | Defaults to 1. Increasing to 2 will downsample to half resolution. This will take advantage of texture filtering so that quality is maintained and memory will be reduced. |
| var | `Animation Frames`Output and Animation | `IntPoint` | The number of frames to render to a resulting SubUV or Volume Texture. |
| var | `Sub UV Final Resolution`Output and Animation | `IntPoint` | The final resolution of the animation texture. |
| var | `Frames Per Second`Output and Animation | `float` | This is the fps of the render. Another way to think of it is that 1/fps will elapse between each animation frame. |
| var | `Water Surface 2D MID`Debug\|MIDs | `MaterialInstanceDynamic` | — |
| var | `Water Surface Sub UV MID`Debug\|MIDs | `MaterialInstanceDynamic` | — |
| var | `Caustics Scatter MID Single Frame`Debug\|MIDs | `MaterialInstanceDynamic` | — |
| var | `Caustics Scatter MID Animation`Debug\|MIDs | `MaterialInstanceDynamic` | — |
| var | `Copy Sub UV Frame MID`Debug\|MIDs | `MaterialInstanceDynamic` | — |
| var | `Tiles`Debug | `int` | — |
| var | `Preview Scene`Preview Scene | `CausticPreviewModes` | Allows you to choose between different preview setups. |
| var | `Show Water Scene`Preview Scene | `bool` | When true, a preview water scene will be shown and the caustic photon mesh particles will be hidden. |
| var | `Show Analytical Caustics`Preview Scene | `bool` | If true, instead of showing the caustics texture result, analytical caustics will be calculated direclty in the shader. |
| var | `Use Light Function Caustics`Preview Scene | `bool` | Shows the result of the caustics render target on a static mesh plane in the world. |
| var | `Show Texture Plane`Preview Scene | `bool` | Shows the result of the caustics render target on a static mesh plane in the world. |
| var | `Freeze Time`Preview Scene | `bool` | Freezes time for waves and caustics. Will not interfere with animation capture. |
| var | `Preview Mesh Depth`Preview Scene | `float` | Changes the water depth of the preview scene. |
| var | `Caustics RT`Render Targets | `TextureRenderTarget2D` | — |
| var | `Sub UV RT`Render Targets | `TextureRenderTarget2D` | — |
| var | `Animation Frames`Debug | `int` | — |
| var | `Mips`Debug | `int` | — |
| var | `Sub UVMips`Debug | `int` | — |
| var | `Photon Scale`Caustics | `float` | Increasing this will smooth out the result and reduce possible gaps from large de-focused regions. |
| var | `Overscan Quads`Caustics | `int` | — |
| var | `Caustic Mip RTs`Debug | `TextureRenderTarget2D[]` | — |
| var | `Sub UVMip RTs`Debug | `TextureRenderTarget2D[]` | — |
| var | `1x 1Mip Average`Debug | `TextureRenderTarget2D` | — |
| var | `Water Normal`Debug | `TextureRenderTarget2D` | — |
| var | `Render Normal MID`Debug\|MIDs | `MaterialInstanceDynamic` | — |
| var | `Preview Render Target MID`Debug\|MIDs | `MaterialInstanceDynamic` | — |
| var | `Normalize Luminance MID`Debug\|MIDs | `MaterialInstanceDynamic` | — |
| var | `Modulate Luminance MID`Debug\|MIDs | `MaterialInstanceDynamic` | — |
| var | `Base Floor Mesh MID`Debug\|MIDs | `MaterialInstanceDynamic` | — |
| var | `Save As HDR`Output and Animation | `bool` | If true, the texture will be created as hdr 16bit. If false, it will be DXT1/5. |
| var | `Preview Scene XY Scale`Preview Scene | `float` | Allows scaling up the preview scene without affecting the caustics capture. Useful to seeing gauge how effective the pattern is over larger areas. |
| var | `Num Waves`Waves | `int` | — |
| var | `Random Seed`Waves | `RandomStream` | — |
| var | `Wind Direction`Waves | `Vector2D` | — |
| var | `Angular Spread`Waves | `float` | — |
| var | `Min Wavelength`Waves\|Wavelengths | `float` | — |
| var | `Max Wavelength`Waves\|Wavelengths | `float` | — |
| var | `Wavelength Falloff`Waves\|Wavelengths | `float` | — |
| var | `Min Amplitude`Waves\|Amplitudes | `float` | — |
| var | `Max Amplitude`Waves\|Amplitudes | `float` | — |
| var | `Amplitude Falloff`Waves\|Amplitudes | `float` | — |
| var | `Smale Wave Steepness`Waves\|Steepness | `float` | — |
| var | `Large Wave Steepness`Waves\|Steepness | `float` | — |
| var | `Steepness Falloff`Waves\|Steepness | `float` | — |
| var | `Manual Frozen Time`Preview Scene | `float` | Set the frozen time. |
| var | `Sea Bed Material`Preview Scene | `MaterialInterface` | — |
| var | `Overscan Scene Capture RT`Debug | `TextureRenderTarget2D` | — |
| var | `Ticking`Debug | `bool` | — |
| var | `Quad Size`Debug | `float` | — |
| var | `Downsample MID`Debug\|MIDs | `MaterialInstanceDynamic` | — |
| var | `Sea Bed MID`Debug\|MIDs | `MaterialInstanceDynamic` | — |
| var | `Remove Overscan MID`Debug\|MIDs | `MaterialInstanceDynamic` | — |
| var | `Dir Light`Preview Scene | `DirectionalLight` | — |
| var | `Light Function MID`Debug\|MIDs | `MaterialInstanceDynamic` | — |
| var | `Caustics Average Brightness Value`Output And Animation | `LinearColor` | — |
| var | `Max Caustics Brightness Value`Output And Animation | `LinearColor` | — |
| var | `Directional Light Initial Brightness`Preview Scene | `float` | — |
| var | `Generate`Waves | `bool` | — |
| var | `Light Function Sub UV MID`Debug\|MIDs | `MaterialInstanceDynamic` | — |
| var | `Note`Notes | `string` | — |
| fn | `Copy RT` | `()` | — |
| fn | `Set Light Function Caustics` | `(Show SubUV: bool)` | — |
| fn | `Generate Mip Chain` | `(out RenderTarget: TextureRenderTarget2D, out Mip RT Array: TextureRenderTarget2D[], Mip Mode: RTMipGenerationSettings)` | — |
| fn | `Render Wave Data` | `(out Waves: GerstnerWave[])` | — |
| fn | `Generate Spectrum` | `(out Waves: GerstnerWave[])` | — |
| fn | `Get Water Material` | `() → MaterialInterface` | — |
| fn | `Reset` | `()` | — |
| fn | `Stop Rendering`Output and Animation | `()` | — |
| fn | `Save Texture`Output and Animation | `()` | — |
| fn | `Update Capture` | `()` | — |
| fn | `Normalize by Max Luminance`Default | `(Re Calc Mips: bool)` | — |
| fn | `Begin Rendering`Output and Animation | `()` | — |
| fn | `Normalize Caustics Luminance` | `(Re Calc Mips: bool)` | — |
| fn | `NormalizeSubUVLuminance`Default | `()` | — |
| fn | `Setup MIDs` | `()` | — |
| event | `Add Photon Meshes` | `()` | — |
| event | `Add Water Preview Meshes` | `()` | — |
| event | `Allocate Preview Capture RT` | `()` | — |
| event | `EditorTick`Tick | `(DeltaSeconds: float)` | — |
| event | `Initialize` | `()` | — |
| event | `TickForUpdate` | `()` | — |
