나는 지금 필사적이다. 모든 구석과 모든 것을 알아 내기 위해 검색했지만 여전히 캔트 .. 나는 자바로 타일 맵을 생성하기 위해 노이즈를 사용하는 방법을 찾고있다. 이것이 내가 이것을 알기 위해 프로그래밍에서 원했던 유일한 것입니다. 내가 배울 수있는 가장 좋은 방법은 무언가의 모든 간단한 코드를보고 테스트하여 분석하는 것입니다. 나에게 비디오를 보여줄 수 있거나 그것이 작동하는 방법에 대한 간단한 코드를 보여줄 수있는 사람이 있습니까? 나는 그것을 어떻게 만들 수 있는지 이해하지 못한다. 그것이 복잡한 단어를 정말로 이해할 수 없기 때문에 그것이 단순한 영어로라면 멋질 것입니다.Perlin Noise를 이해하고 사용하는 방법은 무엇입니까?
답변
실제로 Perlin Noise를 건너 뛰고 OpenSimplex Noise이라는 것을 조사하고 싶을 수도 있습니다.
Perlin Noise는 중요한 그리드 아티팩트를 나타내는 경향이있는 구형 알고리즘입니다. 기본 축과 45도 대각선을 따라 모든 기능을 정렬하는 경향이 있습니다.
OpenSimplex 노이즈는 기본적으로 Perlin Noise와 동일한 모든 항목에 유용합니다. 노이즈는 입력 포인트 (2D, 3D 또는 4D)를 취해 -1과 1 사이의 값을 반환합니다. 출력 값은 입력 좌표가 변경됩니다.
알고리즘이 기술 수준에서 작동하는 방법을 배우고 싶다면 ... 기본적으로 [수학] n 차원 hypercubic tiling (사각형, 큐브, tesseracts ..)이 소요되고 주 대각선을 따라 늘어납니다 simplectic honeycomb을 형성하기 위해 그런 다음 각 무작위로 임의로 그라디언트 방향을 선택하고 외삽 법을 적용한 다음 거리 기반 함수 ("커널")를 곱하여 0으로 이동하고 특정 반경 후에는 0으로 유지합니다. 하이퍼 큐빅 허니컴베이스에서 유효 좌표를 찾기 위해 입력 포인트가 "비뚤어졌습니다"다음 하이퍼 큐빅 공간 좌표를 기반으로 한 바로 가기 계산을 통해 심플한 벌집상의 어떤 모양이 결정되고 어떤 정점이 그 시점에서 가치 [/ 수학] ....하지만 좋은 소식은 단순히 사용하기 위해 그런 세부 사항에 들어가야 할 필요가 없다는 것입니다!
것은 그것을 사용하려면 디렉토리에 OpenSimplexNoise.java를 삭제하고 같은 것을 할 : 여기
OpenSimplexNoise noise = new OpenSimplexNoise(); //May provide seed as argument to generate different patterns.
for (int y = 0; y < 256; y++) {
for (int x = 0; x < 256; x++) {
double value = noise.eval(x/32.0, y/32.0, 0.5); //2D slice of 3D at z=0.5
//Now do whatever you need to do with the value.
}
}
가 펄린 노이즈 및 OpenSimplex 소음의 차이의 데모입니다 :

OpenSimplex Noise와 다르게 작동하는 Simplex Noise라는 알고리즘도 있습니다. 심플 렉스 노이즈 (Simplex Noise)는 동일한 사람 펠린 (Perlin)의 펄린 노이즈 (Perlin noise) 이후에 개발되었지만 불행하게도 3D + 버전은 특허가 필요합니다. OpenSimplex Noise는 실제로 게임 개발 프로젝트의 일부로 독자적으로 개발 한 제품으로 누구나 사용할 수 있습니다.
고맙다. 나는 그것을 시험해보고 찾을 것이다. –