바둑판 식으로 배열 할 수있는 노이즈 기능을 만드는 데 왜 두 배나 비쌉니까?


13

여러 곳에서 Perlin 노이즈 루프를 매끄럽게 만들려면 약간 다른 방식으로 두 번 계산하고 두 결과를 합산해야합니다.

이 Perlin 노이즈 수학 FAQ 는 다음 공식을 제공합니다.

Floop(x,y,z)=(tz)F(x,y,z)+zF(x,y,zt)t

z 방향으로 노이즈 함수 루프 를 만듭니다 . 또한이를 확장하여 2 차원으로 루프하는 것은 F의 4 가지 평가를 , 3 차원으로 루프하는 것은 F의 8 개의 평가를 취할 것이라고 언급 합니다.FzFF

나는 이것이 연속적이면서도 지속적으로 구별 할 수있는 타일들 사이에 매끄럽게 결합한다는 것을 이해하지만, 노이즈 포인트가 모듈 크기를 모듈러스로 줄여서 필요한 타일 크기로 간단히 노이즈 함수를 평가하면 직관적으로 기대됩니다. 노이즈 함수가 바로 주변 그리드 포인트 (2D 노이즈의 경우 4, 3D 노이즈의 경우 8)만을 기반으로하는 경우 계산 지점이 타일의 오른쪽 가장자리를 지나갈 때 가장 왼쪽 그리드 포인트를 사용하면됩니다. 다른 그리드 포인트와 동일한 노이즈 품질?

여러 곳 에서이 다중 계산 방식을 보았으므로 이점이 있다고 가정하지만 그리드 포인트가 너무 커지면 그리드 포인트를 처음으로 다시 래핑하는 단점을 알기 위해 고심하고 있습니다. 내가 무엇을 놓치고 있습니까?

답변:


19

사람들이 일반적으로 이것을 추천하는 것은 불행합니다. 그런 식으로 노이즈 함수 사본 2 개 (또는 4 개 등)를 혼합하는 것은 매우 나쁜 생각입니다. 비용이 많이들뿐만 아니라 정확한 결과를 얻지 못합니다!

펄린 노이즈 혼합 펄린 노이즈

왼쪽에는 펄린 소음이 있습니다. 오른쪽에는 Perlin 노이즈의 두 인스턴스가 있으며, 왼쪽에서 오른쪽으로 쌓이고 혼합됩니다.

그 차이는 미묘하지만 두 번째 이미지는 가운데로 내려 오는 세로 열에서 대비가 낮다는 것을 알 수 있습니다. 그것은 두 가지 다른 노이즈 함수 인스턴스 사이의 50 % 블렌드 인 곳입니다. 이러한 블렌드는 원래의 노이즈 기능처럼 보이지 않습니다.

좋아, 그래서 꽤 아니라 단지 원시 소음을보고 나쁜 ...하지만 당신이 다음 이미지에 어떤 비선형 변환을 할 경우, 비 균일 대비는 문제가 발생할 수 있습니다. 예를 들어 60 %로 임계 값이 지정된 이미지는 다음과 같습니다. (예를 들어, 바다에서 섬을 생성한다고 생각하십시오.)

임계 값 펄린 노이즈 임계 값 혼합 펄린 노이즈

이제 오른쪽 이미지의 중간에 더 적은 흰색 영역이 어떻게 나타나는지 알 수 있습니다.

앞에서 언급했듯이 Perlin과 같은 그리드 기반 노이즈의 경우 그리드 포인트에서 의사 난수 그라디언트를 바둑판 식으로 배열하는 것이 더 좋습니다. 쉽고 저렴하며 보간 알고리즘을 평상시와 같이 그라디언트에 적용 할 수 있습니다 (바둑판 식 텍스처의 이중 선형 보간과 유사). 이것은 이상한 아티팩트없이 타일링 노이즈를 생성합니다. 왜냐하면 상단 노이즈보다는 기본 노이즈 알고리즘 과 함께 작동하기 때문 입니다. 기본으로 사용하는 임의의 특징점을 타일링하여 Worley 노이즈 (셀룰러 노이즈)와 유사한 전략을 사용할 수 있습니다.

그러나 여러 옥타브의 노이즈로 항상 쉬운 것은 아닙니다. 옥타브 사이의 상대 스케일 (일명 "lacunarity")이 정수 또는 단순한 합리적인 숫자가 아닌 경우 모든 옥타브 그리드가 일치하는 편리한 타일링 포인트를 찾지 못할 수 있습니다. 각 옥타브를 독립적으로 바둑판 식으로 배열 할 수 있지만이 경우 전체 노이즈를 여전히 타일링 할 수 없습니다.


4
나란히 놓인 이미지 는 설명에 대한 직관적 인 느낌을 얻는 데 실제로 차이를 만듭니다. 나는 내 자신의 대답에 대해 이것을 명심할 것입니다.
trichoplax
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.