원문 : https://www.micromine.com/what-is-implicit-modelling/
주의 : 번역이 개판이므로 이상하면 원문을 참고하세요.
주의 : 허락받고 번역한 것이 아니므로 언제든 내려갈 수 있습니다.
정보 : 본문에서는 수학적 개념을 다루고 있으므로 "implicit function" 을 "음함수", "explicit function "을 "양함수", "parametric function" 을 "매개변수함수"라 번역합니다.
Paul Hooykaas
November 19, 2014
Introduction
모든 사람들이 음함수 모델링( implicit modeling ) 행사에 뛰어 들고 싶어하는 것으로 보입니다. Orefind 블로그 페이지에서는 이 유행을 반영하는데, 2012 년 후반부터 적어도 6 개의 관련 기사들이 있습니다 -- Jun Cowan 과 Ron Reid 가 주목할 만한 기여자들입니다.
불행하게도, 업계에서는 "음함수 모델링" 이라는 개념에 대한 일과된 이해가 없어 보입니다. 제가 불행하다라고 이야기한 이유는 원래의 정의는 "진짜" 라는 한정자를 필요로 하지 않음에도 리뷰어( reviewer )들이 이제 "진짜 암시적 모델링" 이라고 부르를 정도까지 타협이 일어나고 있기 때문입니다.
그래서 여기에서는 음함수 모델링이 실제로는 무엇인지 명확하게 해 보려고 합니다. 이 개념은 광물 자원 분야( mineral resources sector )에서는 상대적으로 새로 등장한 것입니다만, 컴퓨터 그래픽스 업계는 1960 년 후반부터 기반 기법들을 사용해 오고 있습니다. Jules Bloomenthal 의 ( 1995 년 1 월의 ) 논문인 Skeletal Design of Natural Forms 으로부터 발췌한 내용을 고려해 봅시다.
기하 모델링( geometric modeling )은 종종 파라미터( parametric ) 기법과 음함수( implicit ) 기법으로 분류됩니다. 둘 다 컴퓨터 그래픽스로부터 개발되었습니다( [Coons 1967] 에서 초기 파라미터 기법이 소개되었고, [Mathematical Applications Group 1968] 에서 초기 음함수 기법이 소개되었습니다. 음함수 서피스들은 더욱 손쉽게 볼륨 관계( volumetric relationship )들을 수집( capture )합니다...
수학에서 "음함수" 라는 단어는 더 오랜 역사를 가지고 있으며, 그것은 특별한 유형의 함수를 기술하기 위해서 사용됩니다.
Implicit or Explicit
"음함수 모델링" 은 2003 년 11 월 벤디고( Bendigo )에서 열린 5 회 국제 광산 지질학 컨퍼런스( international mining geology conference )에서 제출된 논문에서 Jun Cowan 에 의해 탐사( exploration ) 업계와 광산 업계에 소개되었습니다. 이 기사의 많은 부분들은 그 논문의 내용을 반복한 것입니다.
아마도 음함수 모델링과 관련된 개념들을 강조하기 위해서, 그 논문은 ( 수작업 디지털화( manual digitizing )에 매우 의존하는 ) 전통적인 모델링 기법들을 '양함수' 라고 기술한 것 같습니다. 필자는 이러한 언급이 무심코 오늘날 우리가 인지하게 된 혼란의 일부 원인이 된 것이라 생각합니다. 매일 대화를 하면서 '음함수' 와 '양함수' 라는 단어들은 반대 의미로 쓰입니다( 후자는 "완전히 명확하게 정의된" 을 의미하고 전자는 "직접적으로 표현되지 않은" 을 의미합니다 ). 두 단어들을 모델링 프로세스( process )와 연관시킴으로써, 모든 메서드들이 이 두 가지 분류 중 하나로 들어 가야 한다고 여겨지게 되었습니다. 양함수 기법을 이해하는 것이 쉬웠기 때문에, 수작업 디지털화를 배제한 적절한 출력을 생성하는 모든 프로시저( procedure )들을 "음함수" 라고 여겨지도록 분류하는 것이 편했습니다. 예를 들어, 3D 블록 모델로부터 하나 이상의 등급 셸( grade cell )을 생성하는 것은 음함수 모델링의 형태라고 주장하는 것이 일반적( popular )입니다. 이것은 '음함수' 이라는 기술자( descriptor )가 일반적인 용법이 아니라 수학적인 의미에서 생겨났다는 것을 알게 되면 그리 이상한 것은 아닙니다.
Curves and Surfaces
이 주제에 대한 많은 참고 자료( reference material )들은 '커브( curve )' 와 '서피스( surface )' 에 대해 언급합니다. 커브와 서피스의 수학적 정의에 대해서 언급하는 것은 중요합니다. 왜냐하면 그것들은 이런 개념들에 대한 표준적인 이해와는 약간 다르기 때문입니다:
- 커브는 라인( line )과 유사하지만 직선일 것을 요구받지 않습니다. 열린( open ) 커브는 시작 점과 끝 점이 다릅니다. 닫힌( closed ) 커브는 시작점과 끝이 만납니다. 그러므로 닫힌 커브에는 끝 점이 없습니다.
- 놀랍게도 서피스의 ( 기하학적( geometric ) ) 정의는 '매니폴드( manifold )' 와 '유클리드( Euclidean )' 과 같은 기술적인 개념들로 빠르게 어수선해질 수 있습니다. 단순한 설명은 "솔리드( solid, 역주 : 안이 채워진 도형? ) 경계의 일부 혹은 전체" 입니다. 그런 서피스들의 중요한 점은 커브처럼 열려있거나 닫혀있다는 것입니다. 평면( plane )은 열린 서피스의 단순한 예입니다. 그리고 구( sphere )는 닫힌 서피스의 단순한 예입니다. 이것을 바라보는 다른 방식은 열린 서피스가 면적을 가지고 있고 닫힌 서피스가 부피를 가지고 있다는 것입니다.
Function Types
자, 수학 문맥에서 "음함수" 는 어떤 의미일까요? 수학에서는 ( 커브의 ) x, y 사이의 관계나 ( 서피스의 ) x, y, z 사이의 관계를 함수라고 부르며, 세 가지 종류의 구별되는 함수 유형이 존재합니다: 양함수, 음함수, 매개변수함수.
양함수: 일반 형태: y = f(x) 등차식 왼쪽의 변수는 등차식 오른쪽의 다른 변수의 항들로 표현됩니다. Circle: y = √( r2 - x2 ) 양함수들은 단일 값들을 가집니다. 이는 원을 정의하기 위해서는 두 개의 개별적인 양함수들이 요구된다는 것을 의미합니다.
|
|
음함수: 일반 형태: f( x, y ) = 0 0 이 되는 항들의 집합을 설정함으로써 정의됩니다. Circle: x2 + y2 - r2 = 0 |
|
매개변수함수: 일반 형태: x = Fx( t ), y = Fy( t ) 출력 요소들이 파라미터나 파라미터들에 기반합니다. Circle: x = r * cos( t ), y = r * sin( t ) |
노트 :
- 위는 변수 x 와 y 를 사용하는 커브( 혹은 라인 )에 기반합니다. z 변수를 사용함으로써 서피스를 포함하는 논의로 확장하는 것이 가능합니다.
- 함수와 공식( equation ) 사이에는 약간의 차이가 있습니다만, 여기에서는 무시합니다.
양함수들은 x 값으로부터 직접적으로 y 값을 생성합니다. 그래서 원 상에 존재하는 점들의 수열을 생성하는 것이 상대적으로 쉽습니다. 하지만 ( 닫힌 라인이나 서피스가 지원되지 않는 ) 단일 값 제약( single value restriction )에 의해 양함수 형태는 우리 목적에 맞지 않게 됩니다.
음함수들은 "implicit" 라는 단어의 일반적인 용법과 연결됩니다. 원 예제에서 음함수는 x2 + y2 - r2 = 0 이라는 것을 기억하세요. 이에 기반해서 특정 반지름( 2 라고 하죠 )이 주어졌을 때 원을 어떻게 그려야 할 것인지 생각해 보세요. 원 위에 있는 연속된 점들을 체계적으로( systematically ) 생성할 수 있는 직접적인 방법이 존재하지 않습니다. 그리고 이것이 이 표현이 음함수라고 불리는 이유입니다. 원이 거기 존재한다 -- 확실히 잘 정의되어 있습니다 -- 는 것을 알고 있습니다만, 그것을 가시적으로 표현하는 것은 문제입니다.
하지만 음함수 형태는 자신만의 특별한 특성을 가지고 있습니다. ( 반지름이 알려진 값인 ) 특별한 원의 경우에, 우리는 모든 x, y 를 공식에 대입할 수 있습니다. 만약 그 결과가 양수라면 그 점은 원 밖에 존재합니다. 만약 결과가 음수라면 그 점은 원 안에 존재합니다. 만약 결과가 0 이라면 그 점은 원 위에 존재합니다. 다시 말해 모든 점에 대한 '분류( classification )'를 쉽게 할 수 있습니다.
한편으로 파라미터 표현은 원을 그리는 매우 편리한 방법을 제공합니다. t = 0 에서 시작해 x 와 y 를 계산합니다. 이제 적은 양만큼 t 를 증가시키면서 다음 x 와 y 를 계산합니다. 이를 t = 2π 가 될 때까지 계속 진행합니다...
An Implicit Model
변수를 포함하고 있지만 측정 가능한 속성( attribute )을 가진 3D 볼륨( volume )에 대해 생각해 보죠. '속성' 은 광석( ore ) 몸체의 밀도( density ), 온도( temperature ), 등급( grade )일 수 있습니다. 실제 측정값들은 분산된 데이터 포인트들로부터 취해집니다. 그 데이터 포인트들은 볼륨 상의 속성에 대한 연속적인 수학적 표현을 제공하기 위한 음함수들을 유도하기 위해서 사용될 수 있습니다. 이 음함수 모델은 무한한 개수의 isosurface -- 상수값의 점들을 표현하는 서피스 -- 들을 포함합니다. 등급 셸은 isosurface 에 대한 친숙한 예입니다.
하지만 음함수 모델 자체는 가시화될 수 없습니다. 그렇게 하기 위해서는 모델로부터 하나 이상의 isosurface 들을 추출하고 이를 3D 공간에 그려야 합니다. 만약 모델이 파라미터 형식으로 변환될 수 있다면 isosurface 추출은 쉬워질 것입니다. 하지만 사는 게 그렇게 쉽지는 않습니다. 동일한 파라미터 해법을 찾아내는 것은 너무 멀리 있는 희망입니다.
원 예제에서 살펴 봤듯이, 음함수 모델은 체계적으로 isosurface 상의 점들을 생성하기 위한 직접적인 방법을 가지고 있지 않습니다. 그것은 점이 그 서피스 상에 존재하는 지, 위쪽이나 아래쪽에 존재하는지를 결정하는 테스트를 제공합니다. 하지만 서피스 점들 자체를 생성하는 명시적인 규칙을 제공하지는 않습니다.
The Definition (finally)
음함수 모델은 볼륨 상의 속성들에 대한 연속적인 수학적 표현입니다. 그것은 무한한 세부적인( fine ) 해상도를 가지고 있습니다. 이 모델로부터 눈에 보이는 서피스들을 생성하는 것은 개별적인 다음 단계입니다. 그리고 그것은 음함수 모델을 생성하는 것과는 별개입니다.
등급 셸을 블록 모델로부터 생성하는 시나리오를 다시 살펴 보죠. 위의 정의를 이용하면 두 가지 이유로 실패할 것입니다. 첫 번째로 그 모델은 삼차원 공간 상의 연속적인 등급이 아닌 개별적인 등급값을 가진 이산적인( discrete ) 점 집합입니다. 두 번째로 출력 서피스의 해상도는 원래 모델의 블록 크기에 의존합니다.
Isosurface Extraction
음함수 모델링은 일반적으로 세 부분으로 구별됩니다:
- 적절한 형식으로 데이터를 조직하기.
- 연속적인 볼륨 모델을 생성하기( 음함수 모델 ).
- 모델에 포함된 하나 이상의 서피스들을 출력하기.
출력은 거의 항상 삼각화된( triangulated ) 메시나 와이어프레임( wireframe )입니다. 삼각형은 직선으로 구성되므로, 출력 와이어프레임은 모델링된 서피스의 근사치( approximation )입니다. 메시를 더 세부적으로 만들수록 ( 더 작은 삼각형으로 만들수록 ) 더 나은 근사치가 나오며 외형이 더 부드러워집니다. 메시의 크기는 외형과 계산 시간 사이의 타협점입니다.
서피스 점들을 생성하는 직접적인 방법이 존재하지 않기 때문에, 간접적인 수단에 의존해야 합니다. 가장 일반적인 기법들 중의 하나는 "마칭 큐브( marching cube )"라 불립니다.
그 원칙은 2D 원 예제에서 "마칭 스퀘어( marching square )" 를 사용해서 ( 가장 단순하게 ) 설명될 수 있습니다. 좌상단에 위치한 정사각형으로부터 시작해, 정사각형의 모서리( corner )에서 음함수를 평가합니다. 만약 모든 모서리들이 양수값을 반환한다면, 그 정사각형은 완전히 원 바깥쪽에 존재합니다. 마찬가지로, 모든 모서리가 음수값을 반환한다면, 그 정사각형은 완전히 원 안쪽에 존재합니다. 만약 일부 모서리는 원 바깥에 존재하고 일부 모서리는 원 안쪽에 존재한다면, 그 정사각형은 원과 겹쳐 있는 것이고, 겹치는 라인을 계산할 수 있습니다. 만약 정사각형과 동일한 크기의 그리드를 가진 영역을 다루고 있다면, 원을 근사계산하는 라인 세그먼트( segment ) 집합을 결과로 작업을 끝내게 될 것입니다. 정사각형이 더 작아질 수록, 더 많은 개수의 라인 세그먼트들이 생겨나고 그 결과는 더 부드러워집니다.
3D 문맥에서, 큐브의 크기는 최종 서피스의 해상도를 제어합니다. 아래에 있는 스크린샷( screenshot )에는 두 개의 드래곤이 있는데요, 같은 음함수 모델을 사용하고 있지만, 서피스들이 서로 다른 메시 크기를 사용해서 생성되었습니다.
Radial basis functions
음함수 모델링은 언제나( invariably ) Radial Basis Functions( RBF ) 와 연관되어 있습니다. 이것들은 분산된 데이터 보간 문제를 해결하는 가장 정확하고 안정적인 기법 중의 하나로 인식되고 있습니다.
기저 함수들은 수학적 레고( Lego )로 기술됩니다. 그것들은 기본적인 기능 빌딩 블록( functional building block )들의 집합인데, 그 블록들은 우리가 필요로 하는 기능들을 제공하기 위해 서로의 위쪽에 쌓일( stack )수 있습니다.
Radial 기저 함수는 거리에 기반해 값들을 생성하는 함수들의 그룹입니다. 그래서 특정 점에 가까워질 수록 더 많은 영향이 발생합니다. 가장 일반적인 유형들은 다음과 같습니다:
- Gaussian.
- Multiquadric.
- Inverse quadratic.
- Inverse multiquadric.
- Polyharmonic spline.
내 조사( survey )에 영향을 미친 것은 Grady Wright 가 2003 년에 작성한 논문입니다. 그는 RBF 개발이 초기에는 ( 1968 ) 자동화되고( automated ) 선입견없는( unbiased ) 등고선( contour ) 지도를 만들기 위해서 개발되었다고 언급했습니다.
Summary
필자는 최근에 지질학자( geologist )들과 광산 기술자( engineer )들에게 음함수 모델에 대해서 어떻게 생각하는지에 대해 묻고 있습니다. 그 답변들은 다양했고 보통 명확하지 못했습니다. 자원 업계는 이 모델링 기술에 지난 10 년 동안 노출되어 왔습니다. 하지만 그 방법론은 더 오래전부터 존재했던 기하학적 프로세스들에서 채택되어 왔습니다. 우리는 음함수 모델링의 의미를 수집하기 위해 수학적 흔적을 따라야 합니다. 그렇게 하면, 명확한 정의가 보입니다. 그것은 볼륨 상의 수치적 속성들에 대한 연속적인 표현입니다. 그 모델은 x, y, z 항들에 대한 수학적 함수입니다. 보통 볼륨이 신발장 모양( shoe box shape )을 가지는게 편리합니다. 정의된 범위 내의 좌표계에서 xyz 위치를 삽입하면, 해당 위치의 속성값을 계산할 수 있습니다. 이것이 "연속적인 표현"이 의미하는 바입니다.
그 모델 자체를 가시화하는 직접적인 방법은 존재하지 않습니다. 이를 위해서는 추가적이고 독립적인 단계가 필요하며, 모델링되고 있는 속성들에 대한 하나 이상의 3D 등고이나 isosurface 들이 추출되는 것을 내포합니다.
우리 업계가 이 정의를 수용하는지 혹은 현재의 모호함을 계속 유지하게 되는지 여부는 여전히 남아 있습니다. 현재의 AusIMM "Mineral Resource and Ore Reserve Estimation -- Guide to Good Practice" 에는 "음함수 모델링" 에 대한 20 개가 넘는 참조들이 존재합니다. 이것은 이 방법론이 진지하게 수용되고 있음을 보여주며, 업계가 그 의미를 일관되게 이해하는 것이 더 중요해 집니다.
References
http://www.orefind.com/docs/orefind-research-papers-in-pdf/pigm_hr.pdf
http://www.unchainedgeometry.com/jbloom/dissertation.html
http://www.psych.mcgill.ca/misc/fda/ex-basis-a1.html
http://mathinsight.org/surface_defined_implicitly
http://www.wdv.com/Math/Calculus/Lecture01.pdf
http://amath.colorado.edu/faculty/fornberg/Docs/GradyWrightThesis.pdf
'Graphics' 카테고리의 다른 글
[ 번역 ] Poisson Disk Sampling (0) | 2019.10.19 |
---|---|
[ 번역 ] Deinterleaved Texturing for Cache-Efficient Interleaved Sampling (0) | 2019.10.16 |
[ 번역 ] Adaptive Screen Space Ambient Occlusion (0) | 2019.10.16 |
Reflection Vector & HLSL reflect() (0) | 2019.10.04 |
[ 기고 ] Normal Blur Sub-Surface Scattering (0) | 2019.09.09 |
[ 번역 ] Color Fundamentals: Shading (0) | 2018.11.29 |
Texture Size 와 MipMap Level (4) | 2018.06.02 |
[ 번역 ] 실제 이미지에서 specular 와 diffuse 분리하기 (0) | 2017.09.03 |
[ 질문 공유용 ] dead-end detection 에 대한 질문 (0) | 2017.05.04 |
[ 번역 ] Terrain Synthesis from Digital Elevation Models (0) | 2017.04.15 |