클라우드 텍스처 맵을 쉽게 만들려면 어떻게해야합니까?


16

게임에서 3D 행성을 만들고 있습니다. 이들은 "글로브"로 간주됩니다. 그들 중 일부는 클라우드 레이어가 필요합니다. "지구"를 만들기위한 다양한 블렌더 튜토리얼을 보았고 클라우드 레이어에는 NASA의 지구 클라우드 맵을 사용했습니다 .

그러나 나는 절차 적으로 생성 된 많은 행성들로 가상의 우주를 창조 할 것입니다. 많은 변형을 사용하고 싶습니다.

NASA 링크와 같은 클라우드 맵을 절차 적으로 생성하는 방법이 있기를 바랍니다. 또한 가스 자이언트를 만들어야하므로 다른 종류의 구름 텍스처 맵 도 필요 합니다 .

그것이 너무 어려우면 여러 변형 된 클라우드 맵을 만드는 것으로 돌아갈 수 있습니다. 예를 들어 지구와 같은 경우 3, 거인의 경우 3 등

그렇다면 어떻게 클라우드 맵을 정적으로 작성 하거나 프로그래밍 방식으로 생성합니까?

답변:


19

클라우드 생성은 재미 있습니다! 오프라인 및 런타임 방법을 모두 다룰 것입니다.

사전 렌더링 된 구름

클라우드 텍스처를 오프라인으로 사전 렌더링하려면 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 : 사전 렌더링 된 클라우드를 사용하여 시작하고 추가 다양성이 필요하거나 추가 프로그래밍 문제가 필요한 경우 런타임 절차 적 클라우드로 전환하십시오.


1
이것은 매우 포괄적이고 따르기 쉬운 훌륭한 답변입니다. "구름 패턴을 제안하기 위해 구름을 뒤틀다"라고 언급 한 것을 봅니다. 이것은 내가 꼭해야 할 일이므로 좀 더 정교하게 할 수 있습니까? 이 정보를 받으면 답변을 수락하겠습니다.
EdwardTeach

@EdwardTeach 완료; 그것이 도움이되기를 바랍니다!
postgoodism
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.