1983년, 켄 펄린은 펄린 노이즈라는 특별한 유형의 노이즈를 발명했습니다. 이러한 유형의 노이즈는 컴퓨터 그래픽에 광범위한 응용 프로그램, 특히 자연 장면과 애니메이션을 생성 할 때 현실적인 물리적 효과를 효과적으로 만드는 데 도움이 될 수 있습니다. 펄린 노이즈는 지형을 생성하고, 변수에 의사난수 변경을 제공하고, 이미지 텍스처를 업데이트하는 데 사용할 수 있습니다. 이 글에서는 펄린 노이즈의 배경, 용도, 그리고 중요성에 대해 자세히 알아보겠습니다.
켄 펄린이 이 작품을 만든 영감은 당시 컴퓨터 생성 이미지(CGI)의 기계적 느낌에 대한 좌절감에서 나왔습니다. 1985년에 그는 SIGGRAPH 컨퍼런스에서 "이미지 합성기"라는 제목의 논문을 공식적으로 발표했는데, 여기서 펄린 노이즈에 대해 자세히 설명했습니다. 그의 개발은 부분적으로 디즈니의 1982년 컴퓨터 애니메이션 SF 영화 트론에서 작업한 내용에서 영감을 얻었습니다. 펄린은 이러한 기술을 개발한 뒤, 1997년에 컴퓨터로 생성한 표면에 자연스러운 질감을 만드는 기술에 기여한 공로로 아카데미상을 수상했습니다.
“Perlin 노이즈가 개발된 이후, 컴퓨터 그래픽 아티스트들은 자연 현상의 복잡성을 더욱 사실적으로 표현할 수 있게 되었습니다.”
펄린 노이즈는 컴퓨터 그래픽의 사실감을 점진적으로 높여주는 그래디언트 노이즈로 사용되는 절차적 텍스처 요소입니다. 이 기능은 의사난수적 성격을 띠지만, 모든 눈에 보이는 세부 사항의 크기는 일정합니다. 이 속성은 작업을 매우 제어하기 쉽게 만들어줍니다. 아티스트는 여러 개의 크기가 조정된 Perlin 노이즈 사본을 수학적 표현식에 넣어서 다양한 절차적 텍스처를 만들 수 있습니다. 펄린 노이즈를 사용하여 생성된 합성 텍스처는 종종 CGI에서 표면, 불, 연기, 구름과 같은 컴퓨터로 생성된 시각적 요소가 더 자연스럽게 보이도록 하는 데 사용됩니다.
펄린 노이즈는 일반적으로 2차원, 3차원 또는 4차원으로 구현되지만, 실제로는 어느 차원에서나 정의할 수 있습니다. 구현에는 일반적으로 3 단계가 포함됩니다. 랜덤 그라디언트 벡터의 그리드 정의, 오프셋으로 그라디언트 벡터의 도트 생성물을 계산하고 이러한 값 사이를 보간합니다.
각 그리드 교차점이 무작위 n차원 단위 길이 그래디언트 벡터와 연관된 n차원 그리드를 정의합니다. 이러한 무작위성은 자연스러운 질감 효과를 만드는 데 도움이 됩니다.
모든 후보 지점의 값을 계산하기 위해 먼저 포인트가있는 고유 한 그리드 셀을 찾은 다음 셀의 2^n 모서리와 관련 구배 벡터를 식별 한 다음 각 코너의 오프셋 벡터를 계산하고 계산합니다. 각 모서리의 그래디언트 벡터. 각 모서리의 그래디언트 벡터의 점곱은 오프셋 벡터로 계산됩니다. 각 그리드 코너의 영향은 거리에 따라 증가하므로 오프셋 벡터의 정규화 작업이 상당한 급격한 변화를 유발할 수 있으므로 보간 단계에서 거리를 설명하는 것이 더 중요합니다.
마지막 단계는 이러한 점곱을 보간하는 것입니다. 이는 2^N 그리드 노드에서 1 차 파생 상품이 0 인 함수를 사용하여 수행되므로 각 그리드 노드 근처에서 출력은 노드의 그라디언트 벡터 및 바이어스 벡터의 도트 생성물을 근사화합니다.
복잡성"펄린 노이즈는 모든 노드에서 0을 통과한다는 사실이 특징이며, 이로 인해 독특한 모습을 보입니다."
노이즈 함수를 평가할 때마다 그리드 셀이 포함된 각 노드에서 위치와 기울기 벡터의 내적을 계산해야 합니다. 따라서 Perlin 노이즈의 복잡도는 차원이 증가하고 컨텍스트가 증가함에 따라 O(2^n)입니다. Perlin Noise는 여전히 계산에 자리 잡고 있지만 간단한 노이즈 및 OpenSimplex 노이즈와 같은 새로운 대안이 등장하여 계산 효율이 향상되었습니다.
펄린 노이즈의 발명은 시각 효과를 만드는 방식을 바꾸었을 뿐만 아니라, 컴퓨터로 생성된 이미지에 대한 우리의 이해에도 영향을 미치고 있습니다. 미래에는 기술이 어떻게 디지털 세계에서 자연 현상을 재현하는 우리의 능력을 더욱 향상시킬까요?