1. 서론
고스트 일러스트레이션(ghosted illustration)은 모델의 기하학적 형상에 대한 요약 정보를 확인하는 용도로 사용되는 대표적인 도구 중 하나이다. 이것은 특정 내/외부 구조를 동시에 가시화하며, 내부 구조를 가리는 외부 구조는 그 중요도에 따라 투명도가 조정 되어 가려진 내부 구조를 드러나게 한다. 예를 들어, 외부의 ‘익숙한’ 평면으로 구성된 구조물 보다 내부의 특정 형상을 드러나게 하고 외부 구조물은 전체적인 윤곽을 판단할 수 있는 수준으로 불투명에서 투명으로 희미해지도록 할 수 있다. 그림.1 은 이것의 예를 보인다.
고스트 일러스트레이션 기법의 목표는 사용자가 부분적으로 제거된 구조를 유추할 수 있도록 충분한 힌트를 제공하면서 내부의 가려진 구조에 대한 명확한 형상을 드러내어 전체 구조에 대한 통찰을 제공하는 것에 있다. Bruckner et al. [1] 은 내/외부 구조를 X-레이로 스캔한 CT 볼륨데이터에 대하여 볼륨 렌더링 수행 중 투명도 변조(modulation)를 적용하여 고스트 일러스트레 이션 효과를 도출했다. 그들의 투명도 변조는 광선 투과과정에서 동적으로 투명도를 조절하여 수행되었으며, 이것은 볼륨 데이터 에 포함되어 있는 형상의 특징(feature) 평가에 기반하였다 [2]. Raytek et al. [3] 은 고스트 일러스트레이션을 생성하는 작업에서 사용자의 의도와 시각적 효과 사이의 관계를 정립하고 이를 사용자 상호 작용에 기반한합성 로직에 적용한 효율적인 프레임워크 (framework)를 보였다. 3차원 모델에서 부분적인 개별 모델이 분리되어 있는 경우, 그 부분 모델의 렌더링된 레이어를 합성함으로써 고스트 일러스트레이션을 효과적으로 생성할 수 있다 [4]. 렌더링 영상의 특정 부분에 대한 마스킹(masking)은 해당 영역의 가시화 가중치를 사용자가 조작 가능하게 하는 가장일반적인 툴 이며, 이를 통해 고스트 일러스트레이션의 목표를 더 효과적으로 달성할 수 있다 [5, 6].
2차원 레이어 합성의 기본 기술인 블렌딩(blending)은 깊이를 투명도의 가중치로 사용할 경우 순서-독립적-투명도(order-independent-transparency) 렌더링에서 올바른 폐색 정보(occlusion cue)를 제공할 수 있다 [7]. 올바른 폐색 정보는 투명 효과를 통한 3차원 구조물 파악을 위한 중요한 단서로 고스트 일러스트 레이션에서도 중요한 요소이다. Kim et al. [8] 은 기존의 순서 의존적인 블렌딩 기법에 두께의 중첩 정도에 따른 블렌딩 모델을 제안하여 이종의 3차원 모델간 혼합 가시화를 효과적으로 처리 했다. 본 연구에서 우리는 이러한 블렌딩 효과를 고스트 일러스트레이션을 위한 프레임워크의 주요 기술 요소로 도입한다. 또 한, 우리 방법은 3차원 모델의 개별 객체 단위의 렌더링 레이어에 대한 블렌딩을 수행하며, 기본 렌더링 알고리즘에 대한 가정을 하지 않는다. 따라서, 지연된(deferred) 렌더링 관점에서 비실사 (non-photorealistic) 렌더링 효과[9, 10]를 고스트 일러스트레이 션에 효과적으로 적용할 수 있을뿐만 아니라 폴리곤 모델, 볼륨 모델, 및 포인트 기반 모델에 대해서도 우리 프레임워크를 적용 할 수 있다. 우리가 도입한 블렌딩 프레임워크는 직관적인 사용자 제어와 함께기존 고스트 일러스트레이션에 더 풍부한 깊이 정보 를 제공하여 사용자의 자연스러운 3차원 구조물 파악을 도울 수 있다. 우리 기술은 증강현실(augmented reality)에서 폐색(occlusion) 구조물에 적용되어 사용자에게 더 직관적인 구조물 인식을 위한 시각 정보를 제공하는 기반 기술로도 활용 될 수 있다.
2. 깊이 기반 블렌딩(blending) 모델
우리는 고스트 일러스트레이션의 주요 기술 요소로 Kim et al.[8] 제안한 zSlab 혼합 모델을 도입한다. zSlab 혼합 모델은 중첩/교차되는 표면에서 발생하는 계단 현상을 부드러운 가시성 전이 (smooth visibility transition)를 통해 해결하기 위해 제안된 볼륨 모델 기반의 기술이다. 이를 폴리곤 모델의 표면에 적용하기 위해 ‘가상의(virtual)’ 두께를 적용하여 해당 모델을 볼륨 모델화한 후 렌더링을 수행하였다. 우리는 이 기술이 두께가 중첩되는 볼륨 표면에서 부드러운 가시성 전이를 보이는 사실에 주목하였으며, 이를 고스트 일러스트레이션에 사용한다.
두께가 있는 두 개의 표면이 같은 픽셀(pixel) 위치에서 겹치는 경우, 해당 픽셀의 조각은 서로의 두께에 대한 경계를 기준으로 분할(subdivision)되고 합성(merging)된다. 그림.2은 두께가 있는 표면 간 깊이 기반의 블렌딩 과정을 도식화한다. 겹치는 조각에 대한 색상의 분할(fragment subdivision)은 조각의 두께와 블렌딩 식의 역산으로 다음과같이 계산된다.
여기서 Af, df는 각각 앞조각의 불투명도를 나타내는 알파(alpha), Cf와 Cb는 각각 앞조각과 뒷조각의 알파가 곱해진 색상 (alpha-multiflied color or associated color)을 나타낸다 (Fig. 2 참조). 같은 깊이 구간을 공유하는 분할 조각의 합성(fragment merging)은 다음의 식으로 계산된다.
여기서 (C1, A1)와 (C2, A2)는 같은 구간에 위치한 분할 조각들 의 색상과 알파이다. 최종적으로 분할되고 합성된 조각들은 하 나의 조각으로 블렌딩(fragment blending) 되어 최종 색상을 나타 낸다.
그림. 3은 깊이 기반 블렌딩 기법을 통해 내부의 가려운 물체에 대한 고스팅(ghosting) 효과를 보이며 사용자가 지정하는 두께 값 (t)에 따라 해당 효과의 가시화 정도를 보인다. 전체 지오메트리 크기 정보에 기반하여 표면의 가상 두께를 할당하여 부드러운 합 성 효과를 생성할 수 있다. 개별 객체에 대하여 각각 투명도를 조절하는 것과 달리, 깊이 기반 블렌딩은 가상의 두께를 일괄적 으로 할당하여 깊이에 따른 최종 가시화 기여를 조절할 수 있다. 특히, 깊이 방향의 중첩 영역에서만 블렌딩이 이루어지며, 이것은 중첩이 발생하지 않는 영역의 불필요한 가시성 정보 상실을 최소화한다. 두께는 화면 공간(screen space)에서 모든 표면에 일괄적으로 적용되며, 이것은 깊이 기반 블렌딩 기법을 통해 깊이에 따른 가시성 기여도가 반영된 결과를 도출한다.
3. 비실사(non-photorealistic) 렌더링 레이어
우리의 고스트 일러스트레이션 프레임워크는 렌더링 레이어의 블렌딩을 기반으로 하며, 렌더링 레이어는 개별 표면모델에 대해 생성된다. 각 렌더링 레이어는 기본 렌더링 알고리즘에 제한되지 않으며, 모델의 기하학적 형상과 데이터 유형에 특화된 렌더링 결과가 레이어로 저장된다. 본 논문에서는 비실사 렌더링 기술을 바탕으로렌더링 레이어를 생성하며, 이를 위해 3차원 모델의 표면 투명도를 동적으로 결정하는 렌더링과 모델의 실루엣(silhouette) 렌더링을 비실사(non-photorealistic) 렌더링 기술로 사용한다.
고스트 일러스트레이션 기법은 모델의 내외부 정보를 포함하는 볼륨데이터의 과학적 가시화에서 많이 연구되어 왔다. 특히, Bruckner et al. [1]은 표면 조각의 셰이딩(shading) 값과 깊이 값으로 불투명도의 가중치를 정의하는 모델을 제안했으며, 우리는 이것의 간단화 모델로 다음의 식을 표면 조각의 알파 값으로 사용한다.
여기서 αmodel은 해당 객체의 주어진 불투명도를 나타내며, n̂와 v̂는 각각 해당 표면 조각에서의 정규화된 노말(normal) 벡터와 정규화된 시각 방향을 나타내며, 〈·,·〉은 두 벡터간 내적을 의미한 다. κt와 κs는 영상 공간(screen space)에서 정의된 투명도 가중치 조정 파라미터들이며, 각각 모든 객체들에 전역적으로 적용되는 투명도 가중치, 그리고 셰이딩 값에 따른 지수에 대한 투명도 가중치를 의미한다. Bruckner et al. [1] 모델에는 깊이를 정규화한 요소가 별도로 적용되나, 우리는 2장에서 기술한 깊이기반 블렌딩 모델이 깊이에 따른 고스팅 효과를 제공하므로 식 (3)에서는 깊이 요소를 고려하지 않는다. 그림.4은 동적 투명도 가중치 모델의 조작 파라미터(κt와 κs)에 따른 생성한 고스팅(ghosting) 효과를 따라 보인다.
비실사 렌더링 효과중 셰이딩에 의한 색상 차이가 불분명한 경우, 실루엣 효과[11, 12]는 해당 모델의 형상에 대한 단서를 제공 하는 강력한 도구가 될 수 있다. 그림.1은 실루엣 효과가 고스팅 일러스트레이션과 함께 사용되어 전체 구조에 대한 형상 단서를 효과적으로 제공할 수 있음을 보이는 예이다.
실루엣 효과를 생성하기 위한 다양한 방법 중 우리는 z 버퍼를 사용하는 영상 공간(image space) 기반의 방법을 사용한다 [9]. 이것은 두개의 연속적인 렌더링 패스를 통해 획득한 깊이 값의 차이를 통해 직관적으로 구현될 수 있으며 실루엣 결과를 별도의 레이어로 저장함으로써 우리의 블렌딩 프레임워크에 쉽게 적 용될 수 있다. 그림.5은 폐색을 완화시키는 효과와 함께 실루엣 효과가 적용된 예를 보인다.
4. 프레임워크 구현
우리의 고스트 일러스트레이션 프레임워크는 3장에서소개한 비실사 렌더링 기술을 바탕으로렌더링 레이어를 생성하고 사용자 상호작용 마스킹을 통해 비실사 렌더링의 효과와 레이어 블렌딩 의 효과를 Focus+Context (F+C) 설정 방식[5]으로 구현한다.
렌더링 결과는 색상 및 불투명도(알파)와 깊이 및 고스트 효과를 지원할 수 있는 여러 정보(예.2장에서 논의한 가상의 두께, 마스크 픽셀 및 객체 별 고스트 파라미터 정보)를 이용하여 합성된다. 이를 위해, 먼저 렌더링 결과는 G-버퍼 (Geometric Buffers) [13] 를 이용해 저장된다. G-버퍼는 렌더링 결과를 통한 뷰 종속 정보 (예, 렌더링 색상 및 깊이, 법선벡터, 객체 ID, 텍스처 좌표 등) 를 픽셀 별로 저장하는 2.5 차원 정보를 저장하는 자료 구조이다. 이렇게 각 모델별로 렌더링되어 저장된 G-버퍼는 깊이, 투명도, 그리고가상의 두께 정보를 기반으로 2장에서소개한 3차원 블렌딩 기술을 통해 하나의 장면으로 합성된다. 그림.6은 색상, 깊이 정보, 투명도, 가상의 두께 정보의 네 가지 비트 맵을 포함하는 G-버퍼를 보인다.
마스킹은 2차원 영상 합성에 자주 사용되는 일반적인 기술이다[5, 6]. 사용자는 레이어 마스크를 사용하여 레이어의 내용과 무 관하게 가시성을 수정할 수 있으며, 선택적으로 고스트 효과를 적용하여 전체 구조 정보를 효율적으로 전달할 수 있다. 영상 공간에서의 부드러운 가시성 전환(smooth visibility transition)을 사 용하여 구조를 반투명하게 만들거나 특정 객체를 선택적으로 강 조하거나 원치 않는 부분을 제거하도록 사용할 수 있다. 부드러운 가시성 전환을위해, 마스킹 영역에 적용할 파라미터와 그 효과의 적용을 마스크 중심에서 가장자리 방향으로 희미하게 희석되도록 한다. 이를 위해 우리는 가우시안(Gaussian) 함수를 사용한다. 그림.7은 마스크 영역에서의 부드러운 가시성 전환을위한 파라미터 가중치 모델과 그것의 적용예를 보인다.
우리는 그래픽스 프로세싱 유닛(Graphics Processing Units, GPUs)을 통해 렌더링 엔진을 구현했으며, 이를 위해 Direct3D 12 API를 사용하였다. 다양한 렌더링 정보를 저장하는 G-버퍼를 위해, 특정 RGBA 채널에 종속적인 전통적인 텍스쳐 인코딩 방식을 활용하는 것 대신 사용 목적에 특화된 구조체를 렌더타겟 텍스쳐로 사용하였으며, 픽셀당 16 바이트(byte)를 사용하였다. 블렌딩 결과는 연산에 참여하는 렌더링 레이어 순서에 의존적이며, 이는 사용자가 설정할 수 있도록 한다. 블렌딩은 GPU에 내재되어 있 는 연산자를 사용하는 것 대신 프로그래밍 가능한 GPU 기술(즉, programmable shader model)에 기반한 렌더타겟 텍스쳐의 읽기/ 쓰기를 통하여 구현하여 블렌딩 구현의 자유도 및 확장성을 향 상시켰다. 또한, 우리는 개별 객체 모델에서 깊이에 따른 레이어 분리를 지원하며 이것은 K-버퍼(K-Buffer) [14, 15]를 통해 구현 하였다. 사용자 선택적으로 생성된 K-버퍼는 G-버퍼의 요소로 편입되며 최종적으로 3차원 블렌딩을 통해 최종 장면이 생성된다.
5. 실험 결과
본 논문에서 제안된 고스팅 프레임워크는 다양한 3차원 모델 데이터에서 그 효과를 입증하였다. 먼저, 부품 단위의 모델로 저장 되어 있는 폴리곤 모델데이터에 대한 고스트 일러스트레이션을 다양한 파라미터를 통해 생성하였다. 제안한프레임워크는 폴리곤 모델 데이터 뿐만 아니라 렌더링 레이어로 저장 가능한 모든 타입의 모델에 대한 렌더링을 지원하며, 우리는 실제 CT 볼륨데 이터와 그것의 3차원 부속 객체의 고스트 효과를 임플란트 어플리케이션에 대해 보였다.
우리는 실험을 8GB GPU 전용 메모리가 장착 된 NVIDIA GeForce GTX 1080과 Windows 10의 운영체제 하의 Intel Core i7-7700이 설치된 컴퓨터에서 수행했다. 렌더링 속도는 10242 해상도에서 모두 30 fps 이상을 기록했다.
그림.8은 그림.1에서 보인 고스트 일러스트레이션과 비슷한 효과를 스포츠카 3차원 폴리곤 모델 데이터에서 생성한 결과이다. 마스크는 두개가 사용되었으며, 각각은 다음의 효과를 지정 하였다. (1) 저도의 투명도와 고도의 두께 지정에 따른 블렌딩. (2) 고도의 투명도와 개별 객체 단위의 실루엣 레이어 적용을 저도의 두께 지정에 따른 블렌딩. 우리는 이것을 개별 기술 요소 적용 결과와 함께 도식화하여 제안 고스트 효과의 효용성을 보였다. 즉, 차량의 전체적인윤곽에 대한 단서를 기하학적으로 제공함과 동시에 내부 구조체의 정보를 더 직관적으로 확인할 수 있는 렌더링 결과를 제공하였다.
그림.9은 생체 기관이 분할된 모델들에 대한 고스트 일러스트 레이션을 보인다. 내부 구조를 보이기 위한 일반적인 방법으로는 폐색 표면을잘라내거나 (cutoff) 폐색 표면의 투명도를 조절하는 방식이있다 (그림. 9(a)(b)). 우리의 고스트 일러스트레이션 프레 임워크에서는 마스크를 통해 사용자가 원하는 지점의 투시 효과 를 제공할 수 있으며 (그림. 9(c)), 척추와 내부 기관에 해당하는 레이어의 3차원 두께를 고도로 설정하여 폐색 표면에 블렌딩되 게 함으로써 해당 효과를 생성할 수 있다 (그림. 9(d)). 특히, 그림. 9(d)에서는 3차원 블렌딩 모델이 깊이 방향의 중첩 영역에서 만 적용되어, 중첩이 발생하지 않는 영역의 불필요한 가시성 정보 상실을 최소화하는 것을 확인할 수 있다. 또한, 해당 블렌딩은 깊이에 따른 선명도가 다르게 표현(깊이가 작을 수록 선명하고 클 수록 흐릿함)되어 폐색 표면에 의해 가려진 내부 구조의 효과적 인 통찰을 제공하는 고스트 일러스트레이션을 생성할 수 있도록 한다.
그림. 10은 치과 응용 분야(예. 임플란트 수술 계획)에서 사용되는 CT 볼륨데이터와 그것의 3차원 부속 객체의 고스트 효과를 보인다. 가장 쉽고 직관적인 방법은 CT 의 등면렌더링(isosur-face rendering)을 통해 표면을 버퍼에 그린 다음 이를 레이어 합성 프레임워크에 등록하여 고스트 효과를 생성하는 것이다 (그림. 10(a)). 볼륨 렌더링 기술[16]은 CT 스캔으로 생성된 볼륨데 이터의 내외부 구조를 가시화할 수 있는 기술이며, 우리는 알파 가중치 기술을 사용하여 CT 볼륨데이터의 고스트 효과를 부피감 있게 표현하였다. 이 경우, 볼륨 렌더링(volume rendering)에서의 광선 진행(ray casting)에 따른 알파 값이 상대적으로 낮게 조정 되어, 버퍼에 저장된 폴리곤 객체들을 깊이에 따라 별도의 조정 없이 볼륨 렌더링으로 표면할 수 있다. 그러나, 알파 가중치에 따라 폴리곤객체의 가시성이 큰 폭으로 변경되고 이로인해 지나치게 희미하거(식별이 힘듦)나 과한 색상 표현(볼륨 데이터 내부에 위치한다는 시각 정보를 잃음)이 발생할 수 있다 (그림. 10(b)(c)). 우리는 깊이 기반 블렌딩 기술을 활용하여 단순한 가시성 노출이 아닌 부피감 있는 고스트 효과를 통해 이를 극복할 수 있음을 보였다 (그림. 10(d)(e)).
6. 결론 및 향후 연구
본 논문에서는 기존의 고스트 일러스트레이션 효과에 깊이와 가상의 두께 개념을 도입한 3차원 블렌딩 기술을 적용하였고, 이를 통해 모델의 기하학적 요약 정보를 깊이감 있게 전달할 수 있는 고스트 일러스트레이션 프레임워크를 제안했다. 우리의 접근 방식은 과학 및 기술 일러스트레이션 생성에 일반적으로 사용되는 선택적 폐색 경감을 3차원 블렌딩과 동적 투명도 효과, 그리고 실루엣 효과를 혼합하여 다양하게 구현하였으며, 이를 통해 다양 한 고스트 효과를 가능하게 했다. 우리 방법은 폐색되는 깊이와 폐색 표면의 불투명도가 완화되는 정도에 따른 내부 구조체의 가시성을 시각적으로 일관성 있게 표현할 수 있도록 해 주며, 단일 시점을 넘어 3차원 자유도에서도 일관성 있는 시각적 효과를 구현했다. 우리가 제안한프레임워크는 일반적인 그래픽하드웨어를 활용하여 고품질의 3D 객체 일러스트레이션을 대화식으로 생성 할 수 있도록 한다. 또한, 직관적인 사용자 제어와 함께 기존 고스트 일러스트레이션에 더 풍부한 깊이 정보를 제공하여 사용자의 자연스러운 3차원 구조물 파악을 도울 수 있다. 이것은 증강현실(augmented reality)에서 폐색(occlusion) 구조물에 적용 되어 사용자에게 더 직관적인 구조물 인식을 위한 시각 정보를 제공하는 기반 기술로도 활용 될 수 있으며, 앞으로 이와 관련된 다양한 응용을 연구할필요가 있다.