Appearance
인공지능(AI)으로 콘텐츠를 생성하는 프로시저럴 기술(Procedural) (5)
[칼럼 핵심 요약]
다음 주제로 다루는 것은 프로시절 기술에 의한 「구름」의 생성법에 대해서다. 가장 기본적인 절차적인 구름 생성은 펄린 노이즈를 비롯한 산술 노이즈나 프랙탈 노이즈를 씨앗으로 구름의 두께를 생성하여 이를 그대로 농담으로 텍스처화하는 수법이었다.🌐 원문 링크: 人工知性でコンテンツを生成するプロシージャル技術(5) (Mynavi News)
📅 원문 발행일: 2010-01-12 | ✍️ 저자: 西川善司 (니시카와 젠지 / Zenji Nishikawa)
NOTE
💡 현대 그래픽스 관점에서의 발전사 (Modern Retrospective)
- Houdini & 노드 기반 PCG 파이프라인: 2000년대 후반 프로시저럴 알고리즘(L-System, 노이즈 기반 지형)은 현재 Houdini 엔진 및 언리얼 엔진 5의 PCG(Procedural Content Generation) 프레임워크로 체계화되었습니다.
- 신경망 생성형 AI(Neural Rendering / Generative AI): 규칙 기반 프로시저럴 알고리즘에 더해, 신경망(NeRF, 3D Gaussian Splatting, Diffusion 기반 3D 생성)을 결합하여 복잡한 환경과 3D 에셋을 실시간 생성/복원하는 시대가 열렸습니다.
📖 본문 해설
[원문 리드문] > 다음 주제로 다루는 것은 프로시저럴 기술(Procedural)에 의한 '구름'의 생성법에 대한 것이다. 가장 기본적인 절차적인 구름 생성은 펄린 노이즈를 비롯한 산술 노이즈나 프랙탈 노이즈를 씨앗으로 구름의 두께를 생성하여 이를 그대로 농담으로 텍스처화하는 수법이었다.
프로시저럴 기술(Procedural)에 의한 구름 생성
다음 주제로 다루는 것은 프로시절 기술에 의한 「구름」의 생성법에 대해서다.
가장 기본적인 절차적인 구름 생성은 펄린 노이즈를 비롯한 산술 노이즈나 프랙탈 노이즈를 씨앗으로 구름의 두께를 생성하여 이를 그대로 농담으로 텍스처화하는 수법이었다. 이것은 전출의 산악의 요철 생성에서 말하는 산의 고저를 그대로 구름의 두께로 치환하는 발상이라고 할 수 있다.
프랙탈 노이즈로 농담을 만들어 구름 텍스처로 만드는 방법
이대로 구름은 농담의 텍스처(이미지) 밖에 없는 것이지만, 이어 나온 것이 그런 스카이박스에 붙어 있을 뿐이었던 구름 텍스처를 3D 그래픽화해 떠오르려는 어프로치로 적당한 프리미티브에 구름 텍스처를 붙여 띄운다는 아이디어였다.
그 대표 사례로는 항공기 메이커인 그라만사의 G.Y.Gardner씨 등이 실장한 수법이 있다. 이것은 SIGGRAPH1990에서 발표된 수법으로, 2차 곡면으로 이루어진 3D 오브젝트를 띄워, 이것에 대해 구름 텍스처를 적용하는 방법이었다.
적절한 구체 객체를 띄우고 여기에 구름 텍스처를 적용하는 기술
구름은 실체가 없는 입자의 집합이므로, 이것을 볼륨 렌더링적인 수법으로 재현하려고 하는 어프로치도 존재한다.
볼륨 렌더링은 일반적으로 "영역"(볼륨)을 표현하는 CT 스캔 영상과 같은 여러 장으로 구성된 단면 텍스처에 표현하려고 하는 입자의 밀도 등의 정보를 기록해 두고(볼륨 텍스처), 렌더링 시에는 시선 방향으로 이 볼륨 텍스처를 참조하여 그 밀도 정보를 꺼내 이 값을 바탕으로 셰이딩(Shading)를 한다. 말하자면 단순한 레이 트레이싱(레이 캐스팅)을 하게 된다.
즉 볼륨 (영역)으로서 구름을 프로시저 생성하기 위해서는 입체적인 밀도 분포 정보를 산술적으로 생성해야 한다.
이것을 간이적으로 구현한 것이 David S.Ebert 등이 고안한 프랙탈 노이즈 함수에 음함수를 조합한 구현이다.
이 방법은 간단히 말하면 "어떤 매개 변수를 제공 할 때 고유 한 값이 반환되는 노이즈 함수로 볼륨 렌더링을 수행 할 것"이라는 것입니다.
절차 생성 된 구름을 볼륨 렌더링하는 메커니즘
덧붙여 구름의 표현에 관해서는 1997년까지는 정적인 구름이었지만, 1997년 이후에는 동적인 구름을 생성하는 것이 트렌드가 된 경위가 있다. 동적인 구름의 생성에 관해서는 난류 방정식을 푸는 시뮬레이션의 방향성으로 진화하기 시작하고 있어 프로시저 기술과는 또 다른 것이 되고 있는 것 같다.
덧붙여서, 최근의 3D게임에서의 구현은 하면, 구름의 렌더링은, 파티클 베이스의 것이 많다.
마이크로소프트의 「플라이트 시뮬레이터」시리즈의 최근작에서는, 복수의 구름 텍스처를 적용한 파티클(스프라이트)을 조합해 다이나믹한 구름을 형성한다고 하는 것이었다. 이것 뿐이라면 리얼리티가 부족하기 때문에 하늘로부터의 라이팅, 태양으로부터의 라이팅을 그 구름 파티클에 대해 의사적으로 행하는 것으로, 평면의 파티클 베이스라고는 생각되지 않는 음영감과 볼륨감, 입체감이 있는 표현을 실현하고 있었다.
여러 구름 스프라이트를 조합하여 표현하는 것이 현재의 자주 보이는 구현. 마이크로소프트의 비행 시뮬레이터 시리즈에서 채용되고 있다
‘CRYSIS’로 유명한 독 CRYTEK의 CRY ENGINE 2.0에서는 이를 더욱 발전시켜 구름 파티클에 텍셀 단위의 구름 두께 정보를 기다리게 하고, 의사 라이팅 시에 더 복잡한 음영을 내고 더욱 역광이 되었을 때 구름으로부터의 빛의 누출의 농담도 표현하고 있다. 또한 이 두께 정보의 실루엣을 섀도우 맵에 투사함으로써 구름의 동적인 그림자 생성도 실시하고 있다.
파티클 베이스의 구름 생성에 대해서는 Microsoft Research의 Niniane Wang씨의 사이트가 상세하기 때문에 흥미가 있는 사람은 그쪽도 참조해 주었으면 한다. (계속)
CRY ENGINE2.0의 구름 표현
CRY ENGINE2.0의 구름 표현
CRY ENGINE2.0의 구름 표현
파티클 베이스의 구름에서도 여기까지를 표현할 수 있다. 동적인 그림자 생성에도 대응하고 있었다
파티클 베이스의 구름에서도 여기까지를 표현할 수 있다. 동적인 그림자 생성에도 대응하고 있었다
(트라이Z 니시카와 젠지)