Lately, much research on hull plate forming has been successful in improving productivity of the forming process. Those researches include forming methods, forming information, and automation. After forming each plate, the fabricated surface is compared with the corresponding designed surface. Two sets of data from the designed and fabricated surfaces are matched in order to complete the forming process. However, only a few papers deals with comparison of two surfaces. This paper presents a new matching method based on the bounding volume hierarchy (BVH). By comparing the conventional method, this new approach using BVH shows not only good agreement but also better advantages.
선상가열과 삼각가열을 이용한 선체외판의 가공은 선박의 건조에서 많은 시간과 기술적인 노하우가 요구되는 공정이다. 선상가열과 관련된 많은 결과들이 여러 연구 (Kim & Chang, 2003; Kang, et al., 2000; Yun, et al., 1999; Chang & Moon, 1998; Chang, et al., 2002)를 통해 발표되었다. 선상가열을 이용한 선체외판 가공 자체만 본다면 매우 많은 성과가 있다고 볼 수 있다. 반면 곡면 가공을 지원하는 기술이나 가공 후 공정에 대한 연구는 상대적으로 미흡했다. 이는 여러 가지 원인에 기인한다. 먼저 선상가열을 이용한 곡판 가공자체가 선박 생산에서 매우 중요한 위치를 차지하고 동시에 병목을 보이는 구간이기 때문에 보다 비중 있게 다루어 졌다. 그 결과 현재까지의 선상가열과 관련한 연구 중에서 곡판에 대한 완성도 평가나 가공 후 마진(가공 시에 수축이나 굽힘으로 판이 줄어드는 것을 보상하기 위해 철판에 추가하는 영역)에 대한 절단선 등의 생산 현장의 입장에서 중요하다고 할 수 있는 곡판 가공 후 생산정보에 대한 획득 등의 문제는 상대적으로 소수의 연구만 진행되었다.
가공 후 생산정보 중 대표적인 것이 곡판의 완성도 평가와 마진(margin) 절단선이다. 이들 생산정보를 획득하기 위해서는 정합 기법의 적용이 필요하다. 정합이란 두 가지의 의미를 동시에 갖는다. 하나는 여러 점 군이나 여러 곡면의 비슷한 부분을 찾고 이를 접합하여 하나의 완전한 형상을 얻는 것과 두 형상간의 유사성을 평가하는 것이다. 선체외판 가공 후 생산정보 생성 시 적용되는 정합은 두 번째 개념 이다.
본 연구에서 사용하는 기본 정합방법은 사각형 곡면의 형태로 주어진 형상간의 유사성을 비교하는 것이다. 두 곡면간 유사성을 평가하는 정합의 과정은 비교하고자 하는 두 개의 곡면간의 대응점 찾는 것에서 시작한다. 대응점을 계산해서 공분산행렬을 구성하고 이를 변환하여 비교의 대상인 곡면의 변환행렬을 계산한다. 변환행렬을 이용해 비교 대상곡면을 강체변환하여 다시 대응점을 계산하고 목적함수(대응점간의 거리 제곱의 합)의 값이 가장 작으면 정합과정을 종료하고 아니면 앞의 과정들을 반복한다.
형상 간에 유사성을 비교하는 정합(기본 정합방법)은 몇 가지 특징이 있다. 정합 적용 후 항상 두 곡면은 그 무게 중심이 일치하게 된다. 이는 변환행렬을 구성하는 이동 행렬이 두 곡면의 무게중심간의 변위를 기준으로 계산되기 때문이다. 경우에 따라 두 곡면은 서로 침투(교차)되어 정합된다. 정합과정 자체가 목적함수의 상태를 가장 최소(2차 함수의 수렴성질)인 상태로 계산되므로 그 최종 자세는 고려되지 않는다. 정합을 실시하는 모든 단계에서 자세가 변경되면 다시 대응점을 계산해야 한다. 따라서 대응점을 계산하는 부분이 매우 자주 사용된다. 또 대응점을 계산하는 과정 자체가 매우 많은 계산시간을 요구한다.
Lee and Shin (2002)는 계측된 데이터를 통해 얻은 곡면과 설계곡면간의 유사성에 대한 평가를 진행하기 위해 정합기법을 사용했다. 앞에서 소개한 기본 정합만 사용했기 때문에 선상가열후 생산 단계에서 요구하는 다양한 형태의 마진 절단선 정보의 확보는 힘들다. Kim, et al. (2007)은 사각형 형태의 곡면에 특정한 점을 고정하기 위해 사용자가 지정한 임의의 점을 여러 번 중첩하여 중첩된 점이 정합의 기준으로 이용되게 하는 방법에 관해 연구를 진행했다. Lee and Shin (2002)와 Kim, et al. (2007)의 연구에서 정합기법의 기본개념만을 사용했기 때문에 정합된 결과는 목적함수의 값이 가장 작은 상태에서 종료된다. 때문에 두개의 곡면이 서로 관통하는 문제가 발생한다. 그리고 곡판의 가공 후 가장 중요한 마진면에 대한 절단정보를 항상 설계형상이 가공형상의 중앙에 위치한 상태의 정보만을 제공하기 때문에 항상 사면을 절단해야 하는 사면 마진의 형태로 얻어지게 된다. 반면 실제 현장에서는 선체의 외판을 구성하는 곡면 중에서 곡률의 변화가 가장 큰 선수미 부분의 곡면을 제외하면 사면마진을 부여한 상태에서 선체외판 가공을 실시하는 경우는 드물다. 그리고 마진을 부여 하더라도 각 변형을 고려해 철판의 한쪽 변이나 서로 인접한 두 개의 변에 부여하는 경우가 많다. 또 현장에서는 다년 간의 생산 경험을 통해 마진을 부여할 필요가 없는 곡판이있다는 것도 인지하고 있다.
Park (2009)은 정합기법의 곡판가공 후 생산정보에 획득을 위해 제약 정합 기법을 도입했다. 먼저 곡판의 특성에 맞는 마진면절단 정보를 얻기 위해 꼭지점 정합과 모서리정합을 제안했다. 그 결과 항상 사면 마진에 대한 절단정보로 얻어지던 것을 이면마진(가공 후 마진 절단선이 두 개인 상태)이나 삼면 마진(가공후 마진 절단선이 세 개인 상태)에 해당하는 경우에서도 적용 가능한 절단선 정보를 획득하는 방법을 제안했다. 그리고 제약정합을 수행한 후 추가 처리하여 곡면이 서로 교차하지 않는 상태로 정합결과가 출력되도록 했다. 그 결과 곡가공 후 마진의 절단 시설계곡면이 갖는 경계곡선의 길이가 항상 보존될 수 있다. 경계곡선의 길이를 보존이 필요한 것은 조립단계에서 서로 접합되는 부분의 품질 과 매우 밀접한 관계가 있기 때문이다.
현재까지 많은 연구들이 정합 방법을 개선하여 선박 생산에 적용할 수 있는 방안을 논의했다. 반면 정합 시 가장 큰 계산시간을 요구하는 대응점 계산 부분에 대한 개선연구는 드물었다.
본 연구는 선체외판의 완성도 및 마진 절단선을 계산하는 단계에서 사용되는 정합기법의 성능 향상을 위한 방법을 논의한다. 이를 위해 정합 시 대응점을 얻는 단계에 적용될 수 있는 방법과 현재 적용되고 있는 방법의 비교를 진행한다.
두 개의 곡면이 주어지면 두 곡면상의 점에서 서로 최단거리를 계산할 때는 목적함수가 2차인 최적 정식화를 통해 푼다. 그러나 연속한 식의 형태로 된 두 곡면 사이에서 바로 대응점을 찾는 것은 매우 많은 계산 시간이 필요하다. 따라서 둘 중 하나를 점 군으로 변환하여 점 군과 곡면간의 대응점을 계산한다.
식 (1)은 곡면식 r(
식 (1)~식 (4)를 계산할 수 있는 방법은 전체를 하나의 식으로 변환하여 풀이하는 방법과 특정점을 이용해 가장 근접한 해를 찾는 방법으로 나누어 볼 수 있다. 첫 번째 방법은 Symbolic Operation (Elber, 1992)을 통해 B-spline/Bezier형태의 다변수다항식을 이용한 방법이다. 곡면의 도메인(주어진 점과 곡면의 최근접 점의 매개변수의 좌표의 범위)을 반영하는 형태의 식이 된다. 따라서 최종적으로 얻어진 식에서 실제 해를 계산하기 위해서는 해를 포함하고 있지 않은 잉여 영역을 제거해야 한다. 이는 함수(B-spline/Bezier)의 분할과정을 통해 해결할 수 있다. 반면 함수에 분할과정은 긴 계산 시간을 요구한다. 그 결과 모든 점에 대한 대응점을 계산하는 시간은 매우 길어진다. 반면 곡면의 전체 도메인을 대상으로 계산을 진행하므로 매우 강건한 방법이다.
두 번째 방법은 전체 도메인을 대상으로 하지 않고 적당한 초기 점(실제 해와 가까울 것으로 보이는 점)을 계산하여 이를 시작점으로 실제 해를 찾는 수치적 방법이다. 초기 해의 품질에 따라 그 계산결과 민감하게 반응한다. 이상적인 위치에 초기 해를 입력하면 매우 빠른 속도로 수렴하지만 잘못된 위치를 입력하면 수렴속도가 급격히 느려지거나 잘못된 해를 출력할 수 있다. 초기 해의 합리적인 결정이라는 문제가 먼저 해결되어야 적용 할수 있다. 보통 곡면을 몇 개의 점으로 표현하고 대응점을 찾고자하는 점과 곡면을 근사한 점간의 거리를 기준으로 가장 가까운 곡면상의 점의 도메인 값을 초기해로 이용한다. 하지만 초기해가 주어져 대응점을 찾기 위해 수치적인 방법을 적용하는 경우 곡면상의 임의의 점의 대응점을 출력하지 않는 경우도 발생할 수 있다. 이는 수치적인 기법의 특성에 기인한다. 수치적인 기법을 이용해 대응점을 계산하는 방법은 초기해와 증분을 이용한다. 이때 해를 찾는 과정의 횟수와 증분의 한계 크기를 정의한다. 이는 연산이 실패하여 종료되지 않은 경우를 방지하고 유의미한 정도의 수치적인 정확도를 확보한 해를 얻기 위함이다. 그런데 실제 해를 찾기 전에 앞에서 언급한 제약 조건에 현재의 연산 상태가 만족하면 해를 찾는 과정이 중단된다. 결국 이러한 한계점으로 인해 정합의 종료기준이 되는 목적함수의 계산에 의미 있는 입력을 제공할 수 없게 될 수도 있다. 즉 점 군이 변환된 곡면데이터는 무조건 그에 해당하는 상대곡면상의 대응점이 존재하지 않을 수도 있다. 이러한 한계점을 보완하기 위해 해가 얻어지지 않으면 곡면을 구성하는 곡면의 경계곡선 그리고 곡면의 코너점과 주어진 점 간의 거리를 계산하여 그 거리가 가장 작은 점을 대응점으로 이용한다. 정리하면 임의의 점이 주어진 경우 그 점에 대응하는 곡면상의 한 점을 강건하게 계산하기 위해서는 많은 계산이 전제되어야 한다. 이를 세부적으로 분류하면 곡면과 점의 대응점 계산이 필요하고 다시 곡선과 점 마지막으로 코너점들 간의 계산이 필요하다.
본 연구에서 대응점을 계산하는 방법은 후자의 방법인 초기해를 이용해 실제 해를 찾는 방법이다.
3. BVH (Bounding Volume Hierarchy)
대용량의 메쉬 혹은 곡면 모델간의 충돌이나 최단거리는 게임, 물리엔진 등에서 매우 자주 요구된다. 하지만 기존의 방법으로 대용량의 모델을 다루기에 한계가 있다. 이는 매우 빠른 시간내에 결과를 요구하고 한번에 많은 모델간의 계산을 진행해야 하기 때문이다. 이와 관련한 많은 연구가 진행되어 왔다 (Larsen, et al., 1999) 그 중에서 주어진 모델을 여러 계층의 볼륨으로 재구성하고 구성된 볼륨간 계산을 통해 모델의 간섭 여부이나 최단거리를 계산하는 방법을 BVH라 한다. BVH는 계산에 소요되는 시간을 많이 줄여주는 이점이 있다. 이를 위해 삼각형 메쉬 혹은 곡면으로 구성된 모델에 BVH를 적용하기 위해서 여러 개의 볼륨으로 재구성 해야 한다. 반면 실제 모델을 여러 개의 볼륨으로 변환하면 그 저장용량이 입력모델에 수배에서 수천 배를 능가하게 된다. 이는 완벽히 모델을 포함하는 볼륨을 계산하기 위해 볼륨계층 각각이 갖는 오차를 해당 계층마다 저장해야 하기 때문이다. 따라서 BVH를 적용하기 위해서는 곡면이나 메쉬를 완전히 포함하는 볼륨을 얻어야 하고 최대한 작은 용량의 볼륨 정보를 얻어야 한다.
Kim (2012)은 Coon’s Patch의 성질을 이용해 자유형상 곡면을 포함하는 최소 포함 볼륨을 얻는 연구를 진행했다. Coon’s Patch는 삼각형 혹은 사각형 도메인을 갖는 곡면을 그 경계를 정의하는 곡선으로부터 생성하는 방법이다. 서로 마주 보는 두 곡선의 롤 곡면(ruled surface)을 각각 계산하여 더하고 다시 곡선과 곡선이 만나는 점을 일차 보간 한 선형곡면을 빼주어 경계곡선의 내부 형상인 곡면을 얻는다 (Patrikalakis & Maekawa, 2002).
그가 제안한 계층볼륨의 생성은 3 단계로 요약된다. 각 단계에서 현재의 모델에서 근사 모델로 변환 될 때 계산되는 근사오차를 계산한다. 오차의 크기가 사용자가 주어진 오차보다 작으면 근사를 멈추고 그보다 크면 다시 근사를 진행한다. 이는 기존에 제안된 연구들이 볼륨을 얻는 과정에서 필요했던 매우 큰 저장공간을 아주 작게 한다. 또 사용자가 정의한 오차의 크기에 만족하게 모델이 근사 되면 각 단계마다 사용자가 지정한 오차와 모델의 변환단계에 발생하는 오차의 합으로 최종 모델과 근사 모델간의 오차가 정의될 수 있다. 그 결과 근사모델과 사용자 정의한 오차와 변환오차의 합으로 입력 모델을 완전히 포함하는 근사 모델을 만들 수 있다.
모델의 근사단계는 다음과 같다. 첫 번째 단계는 곡면을 Coon’s Patch로 변환하는 과정으로 주어진 곡면과 이를 근사하는 Coon’s Patch간의 오차를 계산한다. 이를 위해 Coon’s Patch를 B-spline/Bezier 형태로 변환하여 원래 모델과 비교하여 주어진 오차가 만족 할 때까지 주어진 곡면을 분할하여 다시 Coon’s Patch로 근사를 실시한다. 두 번째 단계는 Coon’s Patch를 일차곡면으로 근사 하는 것이다. Coon’s Patch의 성질을 활용하면 Coon’s Patch를 구성하는 경계곡선과 경계곡선의 시작점과 끝점을 연결한 직선간의 오차를 이용해 계산할 수 있다.
Fig. 1은 롤 곡면의 경계곡선을 근사할 때 계산할 수 있는 오차를 표시한 것이다. 롤 곡면은 두 개의 경계곡선을 선형보간 하여 하나의 곡면으로 표현하는 방법이다. 이를 확장해보면 롤 곡면은 양단의 곡선을 선형 보간하여 곡면으로 만들고 변환 오차의 경우 오차 값을 선형 보간하여 오차 식을 만들 수 있다. 이때 롤곡면을 선형 곡면으로 변환할 때의 오차는 선형보간의 성질에 의해 양쪽 경계곡선이 직선으로 변환할 때 발생하는 최대오차를 넘지 않는다. 결국 경계곡선의 근사과정에 발생한 오차로 롤 곡면을 선형곡면으로 근사할 때의 전체 오차를 표현할 수 있다. 세번째 단계는 이전 단계에서 얻은 사각형 일차 곡면의 네 점을 꼭지점으로 하는 사면체를 만든다. 이때 사면체를 구성하는 삼각형과 일차 곡면간의 오차는 일차 곡면과 삼각형간의 Hausdorff distance(두 형상간에 서로수직인 두 점 중 가장 거리가 먼 점)를 계산하는 식을 통해 얻을 수 있다.
정리하면 매개변수 곡면을 Coon’s Patch로 변환하는 과정에서 적용하는 오차와 Coon’s Patch를 1차 곡면으로 변환하는 과정에서 적용되는 오차, 마지막으로 1차 곡면과 삼각형 간의 오차의 총합과 사면체 데이터를 이용해 두 개의 곡면이 주어진 경우 두 곡면간 임의의 점에서 가장 가까운 점을 계산할 수 있게 된다.
Fig. 2는 앞에서 설명한 BVH생성 과정을 정리한 것이다. 자유형상을 곡면과 사용자가 지정한 근사 오차를 기준으로 Coon’s patch로 변환하고 Coon’s patch의 경계곡선을 이등분하여 일회분할 시 네 개의 일차 곡면을 만든다. 다시 말해 n회 분할하면 전체 일차 곡면의 개수는 4n로 계산된다. 이때의 근사오차는 Fig. 1에 나온 것과 같이 계산하고 각 분할 단계에서 이를 저장한다. 일차 곡면을 사면체로 변환할 때는 일차 곡면의 꼭지점 네 개를 이용해 생성한다. 이때 발생하는 근사오차는 필요 시 주어진 식을 이용해 계산한다.
h식 (6)은 임의의 형상의 사각형 곡면을 구성하는 네 변의 곡선이 주어진 경우 이를 Coon’s Patch(𝑿(𝑢,𝑣))로 재구성하는 식이다. 𝐫(0,𝑣), 𝐫(1,𝑣), 𝐫(𝑢,0), 𝐫(𝑢,1)는 사각형 곡면의 네 변을 구성하는 경계곡선이다. 식 (7)은 곡면이 Coon’s Patch로 변환 될때 오차를 계산하는 식이다. 𝑿(𝑢,𝑣) 는 Coon’s Patch를 근사 전원 곡면을 𝑿𝑖,𝑗,𝐫𝑖,𝑗는 각각 Coon’s Patch와 곡면의 조정점이다.
식 (8)은 1차 곡면의 식을 나타내고 식 (9)은 Coon’s Patch를 구성하는 롤 곡면 중 방향의 곡면을 식 (10)은 𝑣방향을 나타낸다. 식 (11)은 𝑢방향 롤 곡면과 식 (8)의 1차곡면이 갖는 오차를 계산하는 곡면 이고 식 (12)은 방향 롤 곡면과 식 (8)의 1차 곡면이 갖는 에러를 계산하는 식 이다. 식 (13)은 최종적으로 일차 곡면과 Coon’s Patch 간의 오차를 계산하는 식이다. 식 (13)에서 오차를 계산하는 과정을 보면 두 개의 롤 곡면과 일차 곡면의 오차를 나타내는 식의 합으로 Coon’s Patch를 일차 곡면으로 근사할 때의 에러로 볼 수 있다. 즉 롤 곡면을 일차 곡면으로 근사하는 과정에서 롤 곡면과 일차 곡면 사이의 에러는 롤 곡면의 양단을 구성하는 곡선과 직선 사이의 오차로 계산할 수 있고 양단에서 계산되는 에러는 일차 보간을 통해 롤 곡면 전체에서 계산 가능하다. 이를 좀더 단순화시켜 보면 롤 곡면과 일차 곡면 사이의 에러 중 롤 곡면을 구성하는 양단의 곡선에서 계산되는 에러 중 가장 큰 오차를 롤 곡면에 근사에 대한 대표 오차로 볼 수 있다. 그 결과 Coon’s Patch를 일차 곡면을 근사할 때 발생하는 에러는 불린합(boolean sum) 성질에 의해 두 개의 롤 곡면이 1차 곡면을 근사할 때 발생하는 에러의 합으로 나타낼 수 있다.
식 (14)는 일차 곡면을 나타낸 것이다. 식 (15)는 식 (14)를 근사 하는 사면체를 구성하는 삼각형 하나를 상대좌표개념을 이용해 곡면으로 표현한 식이다. 식 (16)은 일차 곡면과 삼각형 사이의 변위를 계산하는 식이다. 식 (16)은 식 (14)와 식 (15)의 도메인 특성에 따라 𝑢=0.5, 𝑣=0.5일 때 가장 큰 변위를 보인다. 이 변위의 절대 크기는 ||𝒑00 +𝒑11 −𝒑01 −𝒑10||/4이고 일차 곡면과 사면체의 Hausdorff distance이다. 앞에서 설명한 근사오차와 최종 형상인 사면체를 이용하면 두 곡면간의 대응점을 계산할 수있다. 사면체 간의 대응점을 계산하는 방법으로 GJK알고리즘을 적용했다. GJK알고리즘은 볼록체(convex hull)로 정의된 두 개의 물체간의 간섭이나 최단거리를 계산하는 방법이다.
Fig. 3은 GJK알고리즘의 절차를 정리한 것이다. Fig. 4는 Fig. 3에서 정리한 절차를 단계적으로 적용하여 설명한 것이다. Fig. 3에서 사용한 CH는 convex hull이고 이는 GJK로 대응점을 계산하는 두 형상 중 하나를 구성하는 점 군 전체를 포함하는 것이다. SC는 계산과정에서 –P방향에 위치한 CH의 점 중 대응점을 계산하는 점과 가장 가까운 점을 의미한다. Fig. 4의 (a)에서 CH의 외부에 십자가로 표시된 점은 CH와 대응점을 계산하는 기준점이다. 그리고 이는 사면체를 구성하는 위상요소인 점(vertex), 선(edge), 면(face), 볼륨(volume)간에 대응점을 순차적으로 계산할 때 GJK알고리즘에 의해 계산되는 점이다. 따라서 사면체간의 대응점을 계산한 결과는 경우에 따라 다양한 대응관계로 주어진다. 예를 들면 꼭지점과 꼭지점이 또는 면과 면상의 임의의 점이 대응점으로 계산될 수 있다.
BVH로 얻은 여러 사면체 간의 대응점을 GJK알고리즘을 적용해 얻는다. 그리고 자유곡면을 근사 하는 과정에서 얻은 근사오차를 이용해 오차 크기(Coon’s patch 오차+일차 곡면 오차+사면체 오차)만큼의 반지름을 갖는 가상의 구를 생성한다. 생성된 구를 이용해 사면체의 표면을 완전히 덮는다. 그러면 Fig. 5에 (c)와 같은 형상을 얻을 수 있다. 이때 대응점을 잇는 직선을 만들고 시작점과 끝점이 있는 사면체가 갖는 근사오차만큼 직선을 이동한다. 그러면 그 지점이 사면체로 변환된 자유 곡면의 대응점이 된다. 그리고 오차총합을 반지름으로 하는 구의 표면에 있는 점과 구의 중심점은 항상 수직으로 만나기 때문에 대응점은 서로 수직이 된다.
동일한 곡면을 이용해 한쪽 곡면을 3차원 상의 z방향으로 이동시키고 이들 곡면간의 대응점을 계산했다. 기존 방법은 2장에서 설명한 바와 같이 초기해와 수치적 기법인 Newton-Raphson 법을 적용해 임의의 점에 대응하는 곡면상의 점을 계산했다. 수치기법의 적용을 위한 초기해는 대응점을 계산하는 곡면을 여러개의 점으로 변환하여 주어진 점과 가장 가까운 점이 갖는 매개변수 도메인상의 좌표를 이용했다. 곡면을 점 군으로 변환하는 방법은 곡면의 도메인을 등 간격으로 분할하는 방법을 이용했고 점 군을 구성하는 점의 개수는 121개이다.
BVH는 근사과정에서 근사 전 후 형상의 오차를 비교해 오차를 만족할 때까지 근사를 진행하므로 BVH의 결과로 얻어지는 사면체의 개수는 형상에 따라 달라진다. 본 연구에서 사용한 형상 근사오차는 곡면에서 Coon’s Patch로 근사할 때 ‘0.01’을 적용했다. 적용 오차는 사용자가 임의로 정한 것이다. 곡면과 Coon’s patch간의 오차는 다양한 방법으로 측정할 수 있다. 그러나 Hausdorff distance, 곡률 등의 미분기하학적인 식을 이용하는 방법은 곡면의 도메인 전체를 대상으로 계산되어야 한다. 이는 경우에 따라 그 계산시간에 대한 예측이 어렵다. 따라서 곡면과 Coon’s patch의 조정점간의 최대거리를 근사오차의 기준으로 사용한다.
Coon’s Patch에서 1차 곡면으로 변환할 때 1회만 분할 했다. 앞 장에서 정리한 바와 같이 변환된 Coon’s patch를 1회 분할할때 얻어지는 일차 곡면의 개수는 네 개 이다. 매개변수 곡면을 Coon’s Patch변환 할 때 주어진 오차를 만족할 때까지 변환하지만 나머지의 경우 근사 시 각각의 형상에 맞는 오차를 저장한다. 따라서 매개변수 곡면을 Coon’s Patch변환 시에 근사 오차와 Coon’s Patch를 여러 개의 일차 곡면으로 근사하기 위한 분할횟수가 대응관계 계산시 소요되는 시간에 큰 영향을 준다. 비교에 사용한 전산기의 사양은 Ram(DDR2) 8Giga byte, CPU Intel CoreTM2 Quad CPU 2.4 GHz를 사용했다. 정확한 비교를 위해 계산에 대한 병렬처리는 수행하지 않았다.
근사과정에서 Fig. 6의 (a)는 비교 계산시에 사용한 곡면 모델이고 (b)는 이를 BVH로 변환한 모델이다. 회색으로 표시된 곡면은 기준이 되는 곡면이고 흑색으로 표시된 곡면은 기준곡면과 동일한 곡면을 z축의 방향으로 100만큼 이동시킨 곡면이다. 그리고 회색곡면과 흑색 곡면은 모두 BVH를 통해 근사된 것이다. BVH는 곡면에 대한 강체변환의 적용 전후의 형상은 같다. (c)는 기존 방법을 비교하기 위한 모델이다. 회색으로 표시된 곡면은 기준이 되는 곡면이고 흑색으로 표시된 점 군은 기준곡면과 동일한 곡면을 z축의 방향으로 100만큼 이동 시킨 것이다. Fig. 7~Fig. 9는 이와 동일한 구성이다. Fig. 6은 BVH로 변환 했을 때 다른 모델보다 많은 사면체로 변환되어 있다. 이는 곡면의 형상 복잡도가 상대적으로 높기 때문이다. 본 연구에서 정의하는 형상의 복잡도는 임의의 형상을 갖는 사각형 곡면의 경계 곡선을 이용해 Coon’s Patch로 재구성했을 때 근사오차가 작으면 형상의 복잡도가 낮고 근사오차가 크면 형상의 복잡도가 큼을 의미한다. 전체대응점을 계산하는 시간을 비교하면 기존방법은 304(ms:millisecond)가 소요되었고 BVH는 38(ms)가 소요되었다. 그리고 BVH를 구성하는 사면체의 개수는 112이다. 따라서 12,544번 대응점 계산이 발생한다. Fig. 7을 구성하는 절반은 상대적으로 복잡하고 나머진 반은 비교적으로 단순한 것을 알 수 있다. 대응점을 계산하는 시간을 비교하면 기존방법은 293(ms)가 소요되었고 BVH는 6(ms)가 소요되었다. BVH를 구성하는 사면체의 개수는 40이다. 따라서 1,600번 대응점(GJK 알고리즘) 계산이 발생한다. Fig. 8는 균일하게 근사 되어있고 이는 형상의 복잡도가 거의 비슷하기 때문이다. 대응점을 계산하는 시간을 비교하면 기존방법은 307(ms)가 소요되었고 BVH는 14(ms)가 소요되었다. BVH를 구성하는 사면체의 개수는 64이다. 따라서 4,096번 대응점 계산이 발생한다. Fig. 9는 전반적으로 형상의 복잡도가 낮지만 곡면을 구성하는 25%의 영역은 상대적으로 형상의 복잡도가 높다. 대응점을 계산하는 시간을 비교하면 기존방법은 331(ms)가 소요되었고 BVH는 3(ms)가 소요되었다. BVH를 구성하는 사면체의 개수는 28이다. 따라서 784번 대응점 계산이 발생한다.
곡면 형상에 의해 볼륨으로 변환된 형상의 분포가 한쪽으로 집중되는 경우가 있다. 그리고 볼륨이 집중된 형상으로 얻어진 대응관계를 이용해 정합(Matching)을 수행하면 그 결과가 의도하지 않게 계산될 수 있다. 이러한 경우 볼륨의 표면적 등을 이용해 볼륨의 크기가 비슷하도록 다시 분할 수 있다.
Table 1은 앞의 계산결과를 정리한 것이다. 대응점을 얻기 위해 모델을 변환하는 단계의 계산 시간을 비교하면 기존 방법의 경우는 거의 비슷한 계산시간을 보이고 있다. 반면 BVH는 형상이 가지는 형상 복잡도에 따라서 최대 10배(예제 1과 예제 2)의 차이를 보인다. 대응점을 계산시간을 보면 기존방법의 경우 거의 비슷한 계산시간이 걸린 것을 확인할 수 있다. 반면 BVH를 이용한 계산은 BVH를 구성하는 사면체의 개수에 따라 편차가 큼을 알 수 있다. 이는 BVH를 구성하는 모든 사면체간에 GJK를 적용하기 때문이다. 통상적으로 모델의 전체를 포함하는 경계상자간의 간섭여부를 확인하고 GJK를 적용하지만 정합 시 사용하는 모든 대응점을 계산하기 위해 모델을 구성하고 있는 모든 볼륨간의 계산을 수행했기 때문이다.
[Table 1] Comparison conventional method and BVH for calculation time
Comparison conventional method and BVH for calculation time
대응점을 계산하는 시간을 측정하기 위해 곡면을 점 군으로 변환하는 시간과 BVH로 변환하는 시간을 제외하고 순수하게 대응점을 계산하는 단계의 계산시간만 측정하여 비교했다. 계산시간으로 볼 때 기존방법에 대안으로써의 가능성을 확인할 수 있었다. 또 형상의 복잡도와 관계에 없이 많은 점을 생성하여 대응관계를 계산하는 방법에 대한 하나의 대안이 될 수 있음을 확인 할수 있었다. 마지막으로 모든 경우에 동일한 방법을 적용하여 대응점을 얻을 수 있다.
선박의 생산과정에서 선체외판 곡면을 가공하여 가공된 곡판에 대한 완성도나 마진 절단정보를 계산할 때 이용되는 정합기법에서 사용하는 곡면간 대응점 계산 방법을 비교했다. 이를 통해 새로운 대응점 계산 방법의 정합기법 가속화에 대한 가능성을 보였다. 선체외판에 대한 가공 후 마진에 대한 절단정보를 제공하기 위한 정합과정에서 시간의 소요가 큰 곡면간 대응점 계산단계의 성능 향상을 기대할 수 있다. 이는 단순한 정도의 향상을 의미하는 것이 아니고 정합절차 전체에서 대응점 계산이 반복적으로 사용되기 때문에 매우 큰 정합기법의 향상을 생각해 볼 수 있다. 또 기존 방법의 경우 형상의 복잡도와 관계없이 미리 정의된 개수의 점과 곡면간의 대응점을 계산해야 하지만 BVH를 적용하면 형상의 특성에 맞게 곡면을 근사한 후 대응점의 개수를 계산할 수 있게 된다. 향후 연구로는 BVH를 적용한 정합기법의 개선연구가 필요하다.