일렉트릭 드림즈 환경 샘플 프로젝트에서는 프로시저럴 콘텐츠 생성 프레임워크에서 사용되는 여러 가지 구조체를 지칭하는 몇 가지 전문 용어를 사용합니다. 이 페이지에는 이 프로젝트의 문서에 사용된 언어에 익숙해지도록 정의 및 추가 정보와 함께 이러한 용어가 다수 포함되어 있습니다.
용어집
PCG 그래프
PCG 그래프(PCG Graph) 는 PCG의 중심이 되는 부분입니다. 그래프는 데이터 흐름 그래프의 형태로 수행된 일련의 연산을 통해 작업을 설명합니다. PCG 그래프는 다른 그래프 내에서 서브그래프로 사용될 수 있습니다.
PCG 엘리먼트
PCG 엘리먼트(PCG Element) 는 PCG 그래프 내에서 사용되는 노드입니다. 엘리먼트는 C++ 코드를 통해 생성하거나 PCG 블루프린트 엘리먼트 클래스를 사용하여 데이터에서 생성할 수 있습니다.
PCG 세팅
PCG 세팅(PCG Settings) 은 클래스 및 설정된 프로퍼티를 포함한 노드 세팅입니다.
공간 데이터
공간 데이터(Spatial Data) 는 공간에 존재하며 다음을 표현할 수 있습니다.
- 3차원(3D) 볼륨
- 하이트필드 및 텍스처와 같은 2차원(2D) 표면
- 스플라인 및 포인트 클라우드와 같은 1차원(1D) 선
포인트 데이터
포인트 데이터(Point Data) 는 연결된 경계, 정의된 프로퍼티 및 어트리뷰트와 함께 3D 공간의 포인트를 표현합니다. 포인트 데이터는 연산을 위한 가장 일반적인 PCG 데이터 타입입니다.
프로퍼티
포인트 프로퍼티(Properties) 는 PCG 포인트 데이터의 모든 포인트에 있는 미리 정의된 프로퍼티 세트입니다. 프로퍼티는 어트리뷰트 연산에 사용할 수 있습니다. 프로퍼티 앞에는 달러 기호($)로 접두어를 붙여야 합니다. 예: $Density, $Position.x, $Rotation.forward.
이러한 프로퍼티로는 다음이 있습니다.
- 트랜스폼(Transforms): 위치(vec3), 회전(로테이터), 스케일(vec3)로 구성된 트랜스폼입니다.
- 밀도(Density)(float): 0~1 범위의 포인트 밀도 함수 최대값입니다. 이 값은 차이, 유니온, 노이즈 및 필터링과 같은 여러 연산에 사용됩니다.
- 최소/최대 바운드(BoundsMin/Max)(vec3): 포인트 바운딩 볼륨 최소값 및 최대값입니다.
- 컬러(Color)(vec4): 포인트 컬러 값입니다.
- 경사도(Steepness)(float): 포인트 밀도 함수의 기울기를 나타내는 0~1 범위의 값입니다. 경사도 1에서 밀도 함수는 포인트의 경계 내에서 최대 밀도를 반환하고 경계 밖에서는 0을 반환합니다. 경사도가 1보다 작으면 밀도 함수는 포인트의 최소/최대 경계를 중심으로 0까지 선형 보간된 최대 밀도 값을 반환합니다.
- 시드(Seed)(int64): 포인트 위치, 노드 시드, 컴포넌트 시드로부터 계산된 포인트 시드입니다.
어트리뷰트
어트리뷰트(Attribute) 는 특정 타입의 사용자 정의 추가 메타데이터로, 노드 파라미터를 오버라이드하거나 포인트와 연결할 수 있으며, PCG 그래프 내에서 어트리뷰트 연산에 사용할 수 있습니다. 어트리뷰트는 그래프에서 Create Attribute 노드를 사용해서 생성하거나 커스텀 PCG 엘리먼트 내에서 생성할 수 있습니다.
현재는 다음 어트리뷰트 타입만 지원됩니다.
- 트랜스폼
- vec2
- vec3
- vec4
- float
- double
- int32
- int64
- bool
- string
- 이름
- 로테이터
- 쿼터니언
어셈블리
어셈블리(Assembly) 는 결합되어 하나의 에셋을 생성하는 액터와 비주얼의 그룹입니다. 일렉트릭 드림즈의 컨텍스트에서 어셈블리는 레벨 인스턴스 또는 레벨 주변에 수동으로 생성되고 배치되는 패킹된 레벨 액터에서 결합된 퀵셀 에셋을 사용합니다. 어셈블리는 레벨에서 PCG 에셋으로 변환(Level to PCG asset) 유틸리티의 도움을 받아 PCG 어셈블리 및 PCG 그래프에서 소스 콘텐츠로 사용됩니다.
PCG 어셈블리
PCG 어셈블리(PCG Assembly) 는 PCG 프레임워크를 사용하여 절차적으로 생성되는 어셈블리입니다. PCG 어셈블리는 PCG 그래프에서 연산 세트를 통해 다양한 방식으로 생성할 수 있으며, 컴포넌트나 노출된 파라미터 등의 입력을 변경하여 커스터마이징할 수 있습니다. 이러한 연산은 개별 메시와 액터 스폰부터 전체 수작업 어셈블리에 이르기까지 다양합니다.