절차적 산포

Dash에는 각기 특정 목적에 맞게 설계된 다양한 산포 도구가 포함되어 있습니다. 이 페이지에서는 이러한 산포 도구가 Dash에서 가장 많이 사용되는 이유를 설명하겠습니다.

Surface Scatter는 메쉬 표면에서 작동하는 세계적 수준의 분산 솔루션입니다. 아이디어는 이를 표면/지면으로 사용할 기하(정적 메시, 랜드스케이프, 프로시저럴 메시 등...)와 분산하려는 몇몇 액터를 제공하면, 나머지는 이 도구가 알아서 처리한다는 것입니다.

이것은 Dash에서 가장 광범위한 도구이며 여러 주요 AAA 스튜디오, 재능 있는 개별 아티스트들이 요청한 기능들과 우리 팀의 첨단 월드 빌딩에 대한 끊임없는 추구를 반영하고 있습니다.

circle-info

반드시 읽어보세요 시작하기 페이지에서 이 페이지의 정보를 쉽게 소화하기 위해. 이 페이지에서는 우리가 알고 있다고 가정하는 Dash 도구 사용의 기본을 다루는 환경 생성 섹션을 다룹니다.

특정 사용 사례에 대한 사용하기 쉬운 전용 분산 도구를 제공하는 것 외에도 사람들이 우리 분산 도구를 좋아하는 주요 이유는 마스킹 기능들 때문입니다. 대부분의 도구는 몇 가지 기본 마스킹 설정을 공유하지만 Surface Scatter는 사실상 모든 기능을 갖추고 있으므로 하나씩 살펴보겠습니다!

마스킹 기능

Dash의 분산 도구에는 다양한 마스킹 기능이 포함되어 있으며 대부분은 Surface Scatter에만 있지만 다른 도구들도 몇 가지 기능을 가지고 있고 우리는 이들에 마스킹 기능을 적극적으로 확장하고 있습니다. 주요 마스킹 기능들이 어떻게 작동하는지, 그리고 무엇을 할 수 있는지 모두 살펴보겠습니다.

본격적으로 살펴보기 전에 여기서 “마스킹”은 분산된 인스턴스를 제거하는 것을 의미합니다. 추가로 대부분의 마스킹 그룹은 마스크 결과를 반전할 수 있는 기능을 제공합니다. 일부 속성에는 오른쪽 아래 모서리에 작은 어두운 원이 있는 것을 볼 수 있는데, 이는 해당 속성을 우클릭하여 마스크 반전.

근접 마스킹

이 기능은 곡선, 메쉬 및 인스턴스로 마스킹할 수 있게 해줍니다.

다음과 같은 거리 속성이 있어 근접 거리를 제어하며 네이티브 UE 단위를 사용합니다. 다른 속성은 샘플링입니다. 이 값은 마스킹의 품질을 제어합니다. 값이 높을수록 품질이 높고, 낮을수록 낮습니다.

위 예에서는 마스킹에 메쉬와 곡선을 사용하고 있지만 인스턴스를 사용하는 것도 매우 쉽습니다: 뷰포트에서 인스턴스를 선택하고 근접 오브젝트에 추가하세요. 아래 예에서는 일부 구체를 분산한 뒤 원반을 분산하여 구체 근처의 원반만 유지했습니다.

근접 마스킹을 활용해 현실적인 숲을 만들 수 있습니다. 먼저 나무를 분산하고 그 아래에 고사리와 잎을 일부 유지한 후, 경로가 필요하면 곡선을 근접 마스크로 사용하고 그 경로의 가장자리에 바위를 분산하는 식으로 사용할 수 있습니다.

Dash 1.8.5부터 Surface Scatter는 Proximity Table을 통해 무한한 수의 근접 마스크를 추가할 수 있는 기능을 제공합니다. 이는 이전의 3개 근접 마스크를 대체했습니다. Proximity Table에서는 그룹을 생성할 수 있으며 각 그룹은 자체 오브젝트, 거리 및 너비 값을 가질 수 있습니다. 예를 들어 첫 번째 그룹을 사용해 특정 거리로 일부 오브젝트를 마스크하고 다른 두 그룹으로 동일한 작업을 할 수 있습니다.

마지막으로 근접 마스킹은 마스크 반전에 매우 적합합니다.

각도 마스킹

각도 마스킹은 비교적 간단합니다: 기저 표면을 기반으로 각도를 결정하고 해당 영역의 모든 분산 오브젝트를 제거합니다. 이는 산에 분산할 때 경사면에 나무나 기타 오브젝트가 생성되지 않도록 하는 데 이상적입니다.

높이 마스킹

Surface Scatter와 같은 도구에는 최소 높이 마스크최대 높이 마스크 속성이 있어 위 또는 아래에서 분산된 오브젝트를 잘라낼 수 있습니다.

오브젝트 마스킹

단순히 거리만 사용하는 근접 마스킹과 달리 오브젝트 마스킹은 레이 트레이싱을 사용해 인스턴스가 오브젝트 내부, 외부 또는 근처에 있는지를 결정합니다. 곡선을 그려 그 안에 모든 인스턴스를 유지하고 싶다면 이 기능이 완벽합니다. 또한 메쉬나 볼륨 안/밖에 있는 인스턴스를 유지하는 데도 사용할 수 있습니다.

이 마스킹 방법에는 또한 내부 유지 부울 속성이 있어 토글하여 마스킹이 입력 오브젝트 내부의 인스턴스를 유지할지, 아니면 외부의 인스턴스를 유지할지 선택할 수 있습니다. 또한 인스턴스를 근처에 유지하기 위해 거리 속성을 사용할 수도 있습니다.

노이즈 마스킹

노이즈 마스킹은 분산된 오브젝트의 균일성을 빠르게 깨뜨릴 수 있게 해줍니다. 스케일링에서 주파수, 축별 스트레칭, 노이즈 스무딩, 왜곡 등 광범위한 매개변수를 제공합니다...

잔디, 나무 또는 쓰레기 등을 분산할 때 이 기능을 사용하면 결과를 더욱 자연스럽게 만들 수 있으므로 적극 권장합니다.

클럼프 마스킹

클럼프 마스킹은 임의의 인스턴스를 선택하고 이를 클럼프의 중심점으로 사용하여 작동합니다. 샘플할 인스턴스의 밀도를 조정하는 값과 클럼프 반경을 제어하는 값을 제공합니다. 노이즈 및 다른 마스크와 결합하면 현실적인 분산 설정에 매우 강력한 도구가 될 수 있습니다.

경계 마스킹

경계 마스킹은 표면 기하의 경계 엣지를 감지하고 해당 경계 근처의 모든 오브젝트를 마스크합니다.

이 기능은 정원처럼 인공적인 분산 설정에 매우 유용합니다. 기본 기하 형태를 만들고 그 위에 식물을 분산한 다음 그 기하를 숨길 수 있습니다. 기하의 각 에지 루프 경계는 별도로 처리되며 경계 최소/최대 속성은 각 경계 루프에 대한 마스킹에 약간의 무작위성을 추가할 수 있게 해줍니다. Noise는 경계의 균일성을 깨뜨리는 단순한 노이즈 효과입니다.

투영 마스킹

투영 마스킹은 각 인스턴스의 지점이 위로 레이를 쏘게 하고, 추가한 메쉬 중 그 레이가 충돌한 메쉬가 있으면 충돌한 인스턴스를 유지하도록 합니다. 또한 효과를 반전할 수도 있습니다. 사용 사례는 자동차 아래의 식물이나 쓰레기처럼 오브젝트 아래에 있는 인스턴스를 유지하는 것부터 장면의 어떤 오브젝트 아래에 있는 모든 인스턴스를 제거하는 것까지 다양합니다.

랜드스케이프 레이어 마스킹

이 마스킹 기능을 사용하면 페인트 레이어의 이름을 Surface Scatter에 전달할 수 있으며 도구는 해당 레이어를 마스크로 사용합니다. 최대 세 개의 레이어를 전달할 수 있습니다.

텍스처 마스킹

텍스처 마스킹은 비교적 간단합니다: UE의 콘텐츠 브라우저에서 텍스처를 선택하고 텍스처 경로 텍스처 마스킹 그룹의 속성에 전달하면 끝입니다. 어떤 채널을 마스크로 사용할지 선택하고 그라데이션 픽셀을 돕기 위해 색상 임계값을 조정하며 텍스처 마스크를 타일링할 수 있습니다. 텍스처에 흰색과 검은색 픽셀이 포함되어 있는지 확인하면 흰색 픽셀들이 마스크로 사용됩니다. 아주 구체적인 형태의 작은 장식 정원 같은 구조를 만들려고 한다면 평면에 분산한 뒤 평면을 숨기고 정원 형태를 나타내는 텍스처를 주는 이 접근법을 권장합니다.

버텍스 컬러 마스킹

버텍스 컬러는 정적 메쉬에 적용할 수 있으며 모든 RGB 채널이 이 마스킹 그룹에서 사용 가능합니다. 추가로 그라데이션 픽셀에서 마스킹 동작을 조정할 수 있는 픽셀 임계값 제어가 있으며 또한 블렌드 모드 드롭다운에서 버텍스 컬러가 마스킹 로직에 어떤 영향을 미칠지 선택할 수 있습니다.

방향성 마스킹

각도 마스킹과 달리 방향성 마스킹은 태양광(또는 어떤 액터든) 액터를 사용하여 태양의 회전에 따라 오브젝트를 마스크할 수 있게 합니다. 이 기능은 이끼처럼 햇빛에 민감한 오브젝트를 제거하는 데 사용할 수 있으며, 가장 흔한 사용 사례입니다.

마스크 추가 / 제거

이는 인스턴스를 무작위로 추가하거나 제거하는 간단한 마스킹 기법입니다. 예를 들어 근접 마스킹을 사용해 식물로부터 경로를 깨끗이 할 수 있지만 낮은 값의 추가 마스크를 사용해 여기저기 몇몇 식물을 남겨두게 할 수 있습니다.

속성 참조

나무용 Surface Scatter, 관목용 다른 Surface Scatter, 풀용 또 다른 Surface Scatter 등을 사용하여 숲과 같은 복잡한 설정을 만들고, 숲을 따라 목재 기둥을 배치하는 Path Scatter와 도로 등을 추가하면 복잡성이 빠르게 감당하기 어려워집니다. 우리는 이를 이해하기 쉽게 만들기 위해 참조를 사용합니다. 도로에는 너비가 있고 목재 기둥은 약간의 오프셋이 있어도 그 너비를 준수하기를 원할 것입니다. 식생도 도로 위에 생성되지 않게 하길 원할 것입니다.

이를 수행하는 방법은 참조 속성을 생성하는 것입니다. 우리는 이를 시작하기 페이지에서 다루지만 워크플로우는 상당히 간단합니다: 도로의 너비를 지시하는 Distance 또는 Width 같은 속성을 만들고 모든 도구가 이를 사용하도록 합니다. 속성이 참조를 사용할 때 우리는 가중치를 부여할 수 있으며, 이는 해당 속성이 참조가 제공하는 값을 초과하여 확장될 수 있게 합니다. 예를 들어 Width가 320이고 목재 기둥에 0.1의 가중치를 주면 가중치가 백분율 승수처럼 작동하여 기둥이 너비보다 약간 더 크게 됩니다.

분산 테이블

나중 버전(Dash 1.8.5 이후)부터 일부 도구에 데이터 테이블을 추가하기 시작했습니다. 주요한 것은 Surface Scatter의 분산 테이블입니다. 분산 속성의 + 아이콘으로 여러 분산 오브젝트를 단순히 할당하는 대신 Edit Table 버튼을 눌러 분산 테이블을 열 수 있습니다.

여기에서 여러 속성 행을 생성하고 각 행에 하나 또는 여러 분산 오브젝트를 할당한 다음 밀도 오프셋스케일 오프셋 을(를) 속성 행별로 제어할 수 있습니다. 즉 여러 Surface Scatter를 생성할 필요 없이 단일 Surface Scatter에서 분산 오브젝트를 매우 구체적으로 제어할 수 있습니다.

이 데이터 테이블 로직은 때때로 필요한 세부 제어를 제공하기 위해 다른 도구와 설정으로 천천히 확장되고 있습니다.

마지막 업데이트

도움이 되었나요?