입력 커브를 warped cube proxy 체인으로 변환하여 기존 라이트 파이프라인 안에서 실시간 비직선형 광원을 렌더링하는 방식
입력 커브는 직접 픽셀 단계에서 해석하지 않습니다. GPU가 처리하는 대상은 커브 자체가 아니라, 곡선을 근사하는 다수의 warped cube proxy 집합입니다.
Curved Light는 "curve light"가 아닌 "curve-generated warped cube light set"으로 해석합니다.
입력 커브는 일정 거리 또는 적응형 거리 기준으로 분할됩니다. 세그먼트 수가 많을수록 원본 곡선에 가까워지며, 적을수록 비용이 감소합니다.
각 세그먼트에는 직교 프레임이 생성됩니다. 이 프레임은 cube proxy의 방향 정렬과 로컬 라이팅 좌표계의 기준이 됩니다.
세그먼트의 위치와 회전을 표현하기 위해 Dual Quaternion 기반 transform을 구성합니다. 기본 cube mesh를 곡선 경로를 따라 자연스럽게 배치할 수 있습니다.
각 세그먼트는 하나의 cube volume으로 표현됩니다. 이 cube는 광원 형상이 아니라 영향 범위를 나타내는 라이트 볼륨입니다.
각 cube proxy 내부 픽셀은 해당 cube의 로컬 공간에서 평가됩니다. 렌더링 파이프라인과 무관하게 동일한 함수를 사용합니다.
핵심은 "cube proxy를 어떻게 렌더링 파이프라인에 넣는가"이며, 파이프라인에 따라 방식이 달라집니다. 단, cube가 광원 표현 단위라는 점은 동일합니다.
세그먼트 수는 품질과 성능을 동시에 결정하는 핵심 파라미터입니다.
Curved Light는 입력 커브를 다수의 warped cube proxy로 변환하여 렌더링하는 시스템입니다.
Forward에서는 cube volume을 직접 additive 드로우하고, Forward+ / Deferred+에서는 cube proxy를 클러스터링하여 enumerative additive 방식으로 처리합니다.
커브는 제작 데이터이며, 실제 GPU 렌더링 단위는 warped cube light volumes입니다.