<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>CFOWUMODULE :: Catur Documentation</title>
    <link>https://doc.cdryx.net/CdryxAIOUPlugin/cfowumodule/index.html</link>
    <description>Overview The CFOWUMODULE is a runtime Fog of War system that renders visibility masks on a dynamic mesh plane aligned with room clusters. It uses render targets to paint line-of-sight and revealed areas, driven by a material with optional blur post-processing. The fog tracks a pawn and reacts to perspective changes (top view / first person).&#xA;Depends on CCOREUMODULE (spawner system, singletons, interfaces, room/world utilities).&#xA;Functionalities Overview Data Configuration structure for fog rendering (FCFOWMakerStruct) CFOWSpawner Spawner actor that drives fog generation at runtime, tracking a pawn (ACFOWSpawner) CFOWMaker Core fog builder that manages render targets, dynamic mesh and material parameters (UCFOWMaker) Blueprint Blueprint-callable functions for adding/removing fog agents (UCFOWBPLibrary) Architecture The fog of war pipeline works as follows:</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <lastBuildDate>Sat, 20 Jul 2024 21:09:28 +0200</lastBuildDate>
    <atom:link href="https://doc.cdryx.net/CdryxAIOUPlugin/cfowumodule/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Blueprint</title>
      <link>https://doc.cdryx.net/CdryxAIOUPlugin/cfowumodule/blueprint/index.html</link>
      <pubDate>Sat, 20 Jul 2024 21:09:28 +0200</pubDate>
      <guid>https://doc.cdryx.net/CdryxAIOUPlugin/cfowumodule/blueprint/index.html</guid>
      <description>Overview UCFOWBPLibrary exposes fog of war agent management functions to Blueprint. All functions are BlueprintCallable under the Cdryx|FOW|CFOWBPLibrary category. They allow adding or removing actors and rooms as fog agents, controlling what the player’s fog of war reveals.&#xA;Functions Name Description addFogActorAgent Registers an actor as a fog agent, revealing the fog around it removeFogActorAgent Unregisters an actor from the fog agent list addFogRoomAgent Registers a room rectangle as a fog agent, revealing its area removeFogRoomAgent Unregisters a room rectangle from the fog agent list Begin Object Class=&#34;</description>
    </item>
    <item>
      <title>Diagrams</title>
      <link>https://doc.cdryx.net/CdryxAIOUPlugin/cfowumodule/diagrams/index.html</link>
      <pubDate>Sat, 20 Jul 2024 21:09:28 +0200</pubDate>
      <guid>https://doc.cdryx.net/CdryxAIOUPlugin/cfowumodule/diagrams/index.html</guid>
      <description>Overview Visual diagrams illustrating the internal architecture and runtime behavior of CFOWUMODULE.&#xA;1. Fog of War Visual Behavior What the fog of war actually looks like from a user perspective, covering five aspects:&#xA;A. When does the fog appear? — Top view (fog active, DynamicMesh visible) vs first person (fog off, mesh cleared, tick stopped). B. What happens when the player moves? — RT_view is cleared to black and repainted every frame (LOS follows the player, old position disappears).</description>
    </item>
    <item>
      <title>Data Structures</title>
      <link>https://doc.cdryx.net/CdryxAIOUPlugin/cfowumodule/data/index.html</link>
      <pubDate>Sat, 20 Jul 2024 21:09:28 +0200</pubDate>
      <guid>https://doc.cdryx.net/CdryxAIOUPlugin/cfowumodule/data/index.html</guid>
      <description>FCFOWMakerStruct Configuration structure for fog of war rendering parameters. Inherits from FTableRowBase for DataTable usage.&#xA;Name Description renderTargetSize Resolution of the fog render targets in pixels (default 1024) lineOfSightIntensity Intensity of the line-of-sight area on the fog texture (default 1.0) revealedAreaIntensity Intensity of previously revealed areas on the fog texture (default 0.025) withblur Enable blur post-processing on the fog material (default false) blurSize Kernel size of the blur effect (default 7.</description>
    </item>
    <item>
      <title>CFOWSpawner</title>
      <link>https://doc.cdryx.net/CdryxAIOUPlugin/cfowumodule/cfowspawner/index.html</link>
      <pubDate>Sat, 20 Jul 2024 21:09:28 +0200</pubDate>
      <guid>https://doc.cdryx.net/CdryxAIOUPlugin/cfowumodule/cfowspawner/index.html</guid>
      <description>Overview ACFOWSpawner is the main actor to place in a level for fog of war. It inherits from ACAbstractSpawner and implements ICFOWData. It reads its configuration from a DataTable row, finds the level’s APostProcessVolume, instantiates UCFOWMaker and drives the fog loop on tick.&#xA;Properties Name Description pawnToTrack Pawn whose location drives fog computation. If null, generates at origin then stops fowMakerRH FDataTableRowHandle pointing to a FCFOWMakerStruct row fowMaker Transient reference to the instantiated UCFOWMaker postProcessVolume Transient reference to the first APostProcessVolume found in the level Lifecycle Name Description init Finds the PostProcessVolume, reads the DataTable row, instantiates UCFOWMaker Tick Calls fowMaker-&gt;buildASync with the tracked pawn position.</description>
    </item>
    <item>
      <title>CFOWMaker</title>
      <link>https://doc.cdryx.net/CdryxAIOUPlugin/cfowumodule/cfowmaker/index.html</link>
      <pubDate>Sat, 20 Jul 2024 21:09:28 +0200</pubDate>
      <guid>https://doc.cdryx.net/CdryxAIOUPlugin/cfowumodule/cfowmaker/index.html</guid>
      <description>Overview UCFOWMaker is the core fog of war builder. It manages two render targets (line-of-sight and revealed areas), a UDynamicMeshComponent plane sized to the current room cluster, and dynamic material instances for both the fog mesh and an optional post-process volume. It implements ICCell and ICPlayerControllerBoundable to react to perspective changes.&#xA;Properties Name Description fogMakerStruct Copy of the FCFOWMakerStruct configuration renderTarget2D Render target for current line-of-sight painting renderTarget2DRevealed Render target for previously revealed areas fogDynamicMaterial Dynamic material instance applied to the fog mesh plane dynamicMeshComponent Dynamic mesh component representing the fog plane postProcessFogDynamicMaterial Optional dynamic material instance for post-process fog compositing currentFogOfWar Pointer to the current cluster FCRectangle being fogged topView True when the camera is in first-person perspective (fog disabled) built True once the fog maker has been fully initialized Functions Name Description instanciate Static factory that creates the fog maker, render targets, materials and mesh buildASync Async entry point called each tick: checks if fog needs redrawing, enqueues commands wantDraw Returns true if the fog should be recomputed (rooms built, not in top view, queue empty) drawFog Async: finds the closest cluster and enqueues a cluster change or mesh clear updateFog_sync Game thread: dequeues commands, clears render targets, rebuilds the mesh plane setMinimapZDistance Updates the minimap distance parameter on the fog material isBuilt Returns true if the fog maker is initialized clean Unbinds from the player controller events onPerspectiveTypeChange Reacts to camera perspective changes (disables fog in first person) // instanciate creates the fog maker with all its resources: UCFOWMaker::instanciate(sceneComponent, fowMaker, stream, fowMakerStruct, postProcessVolume); // buildASync is called each tick by the spawner: fowMaker-&gt;buildASync(singleDoRun, pawnX, pawnY); // Internally, buildASync runs drawFog asynchronously: // - drawFog finds the closest cluster via RoomUtility::closestCluster // - If the cluster changed, enqueues FCFOWDataQueue(newCluster) // - If the pawn left all clusters, enqueues FCFOWDataQueue(true) to clear // updateFog_sync runs on the game thread: // - Clears both render targets // - Rebuilds the dynamic mesh plane to match the cluster bounds // - Adjusts material scale parameters for non-square clusters // Perspective change handling: // FIRT_VIEW -&gt; topView = true, clears the mesh immediately // TOP_VIEW -&gt; topView = false, fog resumes on next tick </description>
    </item>
  </channel>
</rss>