2012-03-03 3 views
10

내 Perlin 노이즈 함수 (0.75 지속성에서 3D 심플 렉스의 6 옥타브를 더함)는 double s의 2D 배열 배열을 생성합니다.C에서의 Perlin 노이즈 함수의 균등 분포 #

이 숫자는 각각 평균 ​​[0, 1]로 정규화되어 나온 것입니다. 예외를 피하기 위해 부동 소수점 정확도 문제로 인한 것일 수 있지만 예외는 아닙니다. 이상적인 경우 정확하게이 부근으로 노이즈 출력을 제한하기에 충분합니다.

어쨌든 모든 세부 사항입니다. 요점은 여기 노이즈의 256별로 256 배열이다

enter image description here

정상 착용감 히스토그램은 다음과 같다 :

enter image description here

matlab에의 lillietest 함수 인 Lilliefors 테스트를 적용하여 숫자 세트가 정규 분포에서 오는 것인지 확인합니다. 내 결과는 반복적으로 1이었는데, 이는이 숫자가 정상적으로 분배되지 않았다는 것을 의미합니다.

내 노이즈 기능에서 값 목록에 적용하면 결과가 균등하게 분포되는 것처럼 표시하려면 다음과 같은 함수를 사용하십시오. f(x)

나는이 기능을 C#에서 구현할 수 있으며 실행하는데 몇 분이 걸리지 않길 바란다.

다시 한 번, 숫자가 어디서 왔는지는 중요하지 않습니다. 질문은 한 분포를 다른 분포로 변형시키는 것과 관련이 있습니다. 특히 정상적인 것과 같은 것입니다. 그럼에도 불구하고 내 노이즈 기능 구현은 thisthis을 기반으로합니다. 위의 값 배열 here을 찾을 수 있습니다.

+0

히스토그램은 정상적으로 보입니다.하지만 유니폼과 노멀을 교대로 사용하고 있습니다 (호환되지 않습니다). 펄린 노이즈가 어떻게 작용하는지, 특히 연속성을 감안할 때, 다소 정규 분포가 균일 한 것보다 훨씬 가능성이 높습니다. – ssube

+0

그럼, 정규 분포 또는 균일 분포를 원합니까? 그 두 가지는 완전히 다른 것입니다. – svick

+0

물론 균일 한 배포를 원합니다. 보시다시피, 나는 이미 정상적인 것을 얻고 있습니다. @peachykeen 나는 그것을 어디에서 했는가? 또한, 명시된 바와 같이, 분포는 Lilliefors 테스트에 따라 정상이 아닙니다. – Superbest

답변