IVSmoke 1.0
Loading...
Searching...
No Matches
FIVSmokeCascadeData Struct Reference

#include <IVSmokeCSMRenderer.h>

Collaboration diagram for FIVSmokeCascadeData:
Collaboration graph

Public Attributes

int32 CascadeIndex = 0
 
float NearPlane = 0.0f
 
float FarPlane = 0.0f
 
float OrthoWidth = 0.0f
 
FMatrix ViewProjectionMatrix = FMatrix::Identity
 
FVector LightCameraPosition = FVector::ZeroVector
 
FVector LightCameraForward = FVector(0.0f, 0.0f, -1.0f)
 
TObjectPtr< UTextureRenderTarget2D > DepthRT = nullptr
 
TObjectPtr< UTextureRenderTarget2D > VSMRT = nullptr
 
TObjectPtr< USceneCaptureComponent2D > CaptureComponent = nullptr
 
bool bNeedsCapture = true
 
uint32 LastCaptureFrame = 0
 

Detailed Description

Data for a single shadow cascade. Contains render targets, matrices, and update state.

TIMING MODEL (Synchronous Capture):

We use manual CaptureScene() calls instead of bCaptureEveryFrame to ensure VP matrix and depth texture are always synchronized within the same frame.

Frame N timeline:

  1. Game Thread: Update() calculates VP_N and calls CaptureScene()
  2. Render Thread: Pre-pass ray march uses VP_N with Depth_N ✓

3. Render Thread: Post-process composite

Definition at line 31 of file IVSmokeCSMRenderer.h.

Member Data Documentation

◆ bNeedsCapture

bool FIVSmokeCascadeData::bNeedsCapture = true

Whether this cascade needs capture this frame.

Definition at line 68 of file IVSmokeCSMRenderer.h.

◆ CaptureComponent

TObjectPtr<USceneCaptureComponent2D> FIVSmokeCascadeData::CaptureComponent = nullptr

Scene capture component for this cascade.

Definition at line 65 of file IVSmokeCSMRenderer.h.

◆ CascadeIndex

int32 FIVSmokeCascadeData::CascadeIndex = 0

Cascade index (0 = nearest, N-1 = farthest).

Definition at line 34 of file IVSmokeCSMRenderer.h.

◆ DepthRT

TObjectPtr<UTextureRenderTarget2D> FIVSmokeCascadeData::DepthRT = nullptr

Depth render target (R32F).

Definition at line 59 of file IVSmokeCSMRenderer.h.

◆ FarPlane

float FIVSmokeCascadeData::FarPlane = 0.0f

Definition at line 38 of file IVSmokeCSMRenderer.h.

◆ LastCaptureFrame

uint32 FIVSmokeCascadeData::LastCaptureFrame = 0

Frame number when last captured.

Definition at line 71 of file IVSmokeCSMRenderer.h.

◆ LightCameraForward

FVector FIVSmokeCascadeData::LightCameraForward = FVector(0.0f, 0.0f, -1.0f)

Light camera forward direction (light travel direction, opposite of light source).

Definition at line 53 of file IVSmokeCSMRenderer.h.

◆ LightCameraPosition

FVector FIVSmokeCascadeData::LightCameraPosition = FVector::ZeroVector

Light camera position for this cascade (after texel snapping).

Definition at line 50 of file IVSmokeCSMRenderer.h.

◆ NearPlane

float FIVSmokeCascadeData::NearPlane = 0.0f

View distance range for this cascade.

Definition at line 37 of file IVSmokeCSMRenderer.h.

◆ OrthoWidth

float FIVSmokeCascadeData::OrthoWidth = 0.0f

Orthographic projection width for this cascade.

Definition at line 44 of file IVSmokeCSMRenderer.h.

◆ ViewProjectionMatrix

FMatrix FIVSmokeCascadeData::ViewProjectionMatrix = FMatrix::Identity

View-projection matrix for world-to-light-clip transform.

Definition at line 47 of file IVSmokeCSMRenderer.h.

◆ VSMRT

TObjectPtr<UTextureRenderTarget2D> FIVSmokeCascadeData::VSMRT = nullptr

Variance Shadow Map render target (RG32F).

Definition at line 62 of file IVSmokeCSMRenderer.h.


The documentation for this struct was generated from the following file: