클라우드 생성은 재미 있습니다! 오프라인 및 런타임 방법을 모두 다룰 것입니다.
사전 렌더링 된 구름
클라우드 텍스처를 오프라인으로 사전 렌더링하려면 Photoshop (또는 원하는 경우 Gimp )을 선택하십시오. 두 프로그램 모두 클라우드 패턴을 쉽게 생성 할 수 있습니다. 메뉴 항목은 릴리스간에 이동하는 경향이 있지만 Gimp 2.8.2부터 찾고있는 핵심 명령은 Filters -> Render -> Clouds -> Solid Noise
입니다. 명령을 활성화하기 전에 빈 이미지를 새로 만들어야합니다. 노이즈 매개 변수를 실험 해 보는 것이 좋지만, 예를 들어 "Random Seed"를 1로, "Detail"을 4로, "X Size"를 4.0으로, "Y Size"를 8.0으로, 비활성화하면 어떻게됩니까? "무작위"및 "난류"및 "기울임"을 활성화하십시오.
확실히 추천하는 또 다른 단계는 이미지의 레벨을 편집하는 것입니다 ( Colors -> Levels...
Gimp에서). 끝점을 드래그하여 클라우드 커버 수준을 "완전히 흐린"에서 "하늘에있는 구름이 아닌"으로 효과적으로 변경할 수 있습니다.
다른 흥미로운 가능성 :
- "닷지"및 "굽기"도구를 사용하여 이미지의 일부를 수동으로 밝게 / 어둡게합니다.
- 구름 패턴을 변형시켜 바람 패턴을 제안합니다. Gimp의
Filters -> Distorts -> Whirl and Pinch...
명령을 사용하거나 Filters -> Distorts -> IWarp...
변형 모드가 "소용돌이"로 설정된 상태에서 더 많은 제어를 사용 하십시오. 그래도 미묘하게 유지하십시오. 너무 많은 휨은 이미지에서 고주파수 디테일을 흐리게하는 경향이 있습니다.
- 여러 개의 독립적 인 클라우드 레이어를 추가하여 얇고 전경색에서 크고 뭉툭한 구름에 이르기까지 다양한 유형의 구름을 시뮬레이션 할 수 있습니다. 이 경우 각 레이어를 별도의 이미지로 저장하여 런타임에 독립적으로 애니메이션 할 수 있습니다.
그것은 실제로 예술적 비전에 달려 있습니다. 가자! 완료되면 텍스처를 단일 채널 회색조 이미지로 내 보내야하므로 런타임시 색상 및 알파 채널에 동일한 클라우드 데이터를 사용할 수 있습니다.
런타임 클라우드 생성
런타임에 무제한 클라우드 패턴을 생성하는 것은 다소 복잡하지만 여전히 실현 가능합니다. 그것은 큰 주제이며, 이것은 광범위한 스트로크에만 적용됩니다.
기본적으로 정식 Perlin 노이즈 와 같은 노이즈 함수를 사용하여 무한하고 매끄럽고 결정적인주기적인 노이즈 볼륨을 생성 하는 셰이더 코드에서 Gimp의 "Solid Noise"명령을 복제합니다 . 귀하의 질문에 타겟팅하는 렌더링 API를 지정하지 않았으므로 여기서는 구체적으로 설명 할 수 없습니다. "GPU Gems 2"의 26 장은 HLSL 및 CgFX (일부 날짜가 있음)의 Perlin 노이즈 변형을 다루거나이 드롭 인 GLSL 노이즈 기능을 사용할 수 있습니다. 3D 노이즈 볼륨의 2D 슬라이스를 샘플링하면 Detail = 0 인 Gimp "Solid Noise"명령과 같은 결과를 얻을 수 있습니다. 노이즈 볼륨 샘플 사이의 거리가 멀수록 노이즈의 주파수 ( "스모 더")가 낮아집니다. 고주파 디테일 레벨을 높이려면 기본 저주파 노이즈 패턴으로 시작하고 노이즈의 고주파 "옥타브"를 추가하십시오. 여기서 각 "옥타브"는 샘플링 거리가 더 큰 3D 노이즈 볼륨의 다른 슬라이스입니다. 그리고 더 낮은 진폭. 이 프로세스의 시각적 예 (구글링 "멀티 옥타브 펄린 노이즈"로 찾은)는 여기 에서 찾을 수 있습니다 .
엄청난 추가 보너스로,이 방식으로 생성 된 클라우드 텍스처는 매우 쉽게 애니메이션 될 수 있습니다! 3D 노이즈 함수 샘플 좌표에 시간 기반 오프셋을 추가하면 예를 들어이 비디오 에서 볼 수있는 것처럼 매우 설득력있는 클라우드 모션을 얻을 수 있습니다. 노이즈 기능이 3 차원 모두에서 부드럽기 때문입니다. 텍스처를 U / V 방향으로 스크롤하면 구름이 행성 주위를 이동하고 W (수직) 방향으로 스크롤하면 구름이 천천히 "진화"하는 효과가 있습니다.
허리케인과 같은 효과를 위해 런타임시 구름 뒤틀림도 가능합니다. 결과는 나이브 김프 워프 필터보다 품질이 훨씬 높을 수 있으며, 앞에서 언급했듯이 질감이 지나치게 흐려질 수 있습니다. Valve의 Alex Vlachos ( SIGGRAPH 2010 slides ) 또는 Naughty Dog의 Carlos Gonzalez ( GDC 2012 slides )가 설명한 "flow maps"는 확실히 살펴보고 싶은 기술 입니다. 기본 개념은 벡터 필드 ( "흐름 맵")를 페인트하고 런타임에 클라우드 텍스처를 왜곡하고 스크롤하는 데 사용되며, 왜곡 거리가 너무 길면 서로 다른 두 클라우드 텍스처 사이에서 주기적으로 크로스 페이딩되는 것입니다.
어떤 방법을 사용해야합니까?
Gimp / Photoshop에서 사전 렌더링 클라우드 텍스처는 매우 쉽습니다. 중단되면 몇 초 안에 새로운 텍스처를 생성 할 수 있습니다. 런타임 코드는 사소하고 빠릅니다. 그러나 고유 한 클라우드 텍스처는 디스크 공간 요구 사항이 높고 (더 크게 / 느리게 다운로드 됨) 런타임시 더 많은 VRAM 사용을 의미합니다.
런타임 클라우드 생성은 처음에는 훨씬 어렵지만 일단 작동하면 미리 렌더링 된 클라우드 텍스처보다 몇 가지 분명한 이점이 있습니다. 추가 디스크 공간이나 VRAM을 사용하지 않고도 무한한 사실적인 애니메이션 클라우드 패턴을 생성 할 수 있습니다. 그러나 픽셀 당 여러 3D 노이즈 기능을 평가하는 데 드는 런타임 비용은 엄청날 수 있습니다. 클라우드 픽셀 쉐이더는 사전 렌더링 된 경우보다 훨씬 느립니다.
TL; DR : 사전 렌더링 된 클라우드를 사용하여 시작하고 추가 다양성이 필요하거나 추가 프로그래밍 문제가 필요한 경우 런타임 절차 적 클라우드로 전환하십시오.