Rendering Spec · Rev. 2026

Fire System

화염 확산 시뮬레이션과 이벤트 발생, 렌더링 기초 데이터 업데이트를 담당하는 시스템. Shape-to-shape 방식의 확산 판정과 Job 상주 볼륨 데이터로 구성됩니다.

화염 확산 시뮬레이션 이벤트 발생 렌더 데이터 업데이트 Job 상주 볼륨 Deterministic 직접 외부 읽기 Triangle Mesh
3책임 영역
XZ볼륨 평면
Job상태 데이터
scroll
01
개요
Overview

화염 확산과 관련된 시스템을 정의하는 문서입니다.

02
책임
Responsibilities

Flame System은 아래의 책임 목표를 가지게 됩니다.

화염 확산 시뮬레이션 이벤트 발생 렌더링 기초 데이터 업데이트
02-A
화염 확산 시뮬레이션
Fire Spread Simulation

시스템 내부적으로 정의된 타이밍과 논리에 의해 추상적인 화염은 확산될 수 있어야 합니다.

확산 방식
Shape  Shape
// shape-to-shape 방식으로 정의
판정 공간
// 3차원 공간에서 연산 및 판정
world space (3D)
Shape-to-Shape 3D 공간 판정 내부 타이밍 제어
02-B
이벤트 발생
Event Emission

화염 확산으로부터 시스템 외부의 효과가 필요한 케이스에 대응하기 위해, 시스템의 상태를 이벤트로 노출합니다.

불탐 판정을 유지하고 있는 공간에 대해 시스템 내부적인 순서와 타이밍에 의해 지속적으로 확산을 시도하며, 상태 변화는 이벤트를 통해서만 외부에 전달됩니다.
02-C
렌더링 기초 데이터 업데이트
Render Data Update

화염 패스에 사용할 기초 데이터를 업데이트해야 합니다.

볼륨 정의
// XZ 평면 위에
// 한 겹만 존재하는 볼륨 데이터
plane  = XZ
layers = 1
데이터 상주
// 렌더링용 불탐 상태 데이터
// 는 Job에 상주해야 함
residence = Job
XZ 평면 단일 레이어 Job 상주 Render-Fire 패키지 전용
03
사양
Specification
03-A
상태 데이터
State Data

공간에 대해 임의의 점은 불타고 있거나 그렇지 않다고 결정적으로 판단할 수 있는 데이터를 내부적으로 가집니다.

다만, 이 정보가 외부에서 읽을 수 있는 데이터는 아닙니다. 외부에서 읽기 위해서는 반드시 이벤트를 거쳐야 합니다.

렌더링을 위해 월드의 불탐 상태 데이터는 Job 상주해야 합니다. 이 데이터는 Render-Fire 패키지에서 전용으로 사용합니다.

내부 상태
// 임의 점 p에 대해
bool isBurning(p)
// deterministic
// 외부 직접 접근 불가
외부 접근 경로
// 외부 → 이벤트 구독만 허용
Event onFireSpread
Event onFireExtinguish

// Job: Render-Fire 패키지 전용
불탐 상태를 외부 시스템에서 직접 폴링하는 방식은 허용되지 않습니다. 반드시 이벤트 구독 방식을 사용해야 합니다.