본 명세서는 본 발명의 권리범위를 명확히 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명을 실시할 수 있도록, 본 발명의 원리를 설명하고, 실시 예들을 개시한다. 개시된 실시 예들은 다양한 형태로 구현될 수 있다.
명세서 전체에 걸쳐 동일 참조 부호는 동일 구성요소를 지칭한다. 본 명세서가 실시 예들의 모든 요소들을 설명하는 것은 아니며, 본 발명이 속하는 기술분야에서 일반적인 내용 또는 실시 예들 간에 중복되는 내용은 생략한다. 명세서에서 사용되는 '부'(part, portion)라는 용어는 소프트웨어 또는 하드웨어로 구현될 수 있으며, 실시 예들에 따라 복수의 '부'가 하나의 요소(unit, element)로 구현되거나, 하나의 '부'가 복수의 요소들을 포함하는 것도 가능하다. 이하 첨부된 도면들을 참고하여 본 발명의 작용 원리 및 실시 예들에 대해 설명한다.
본 개시에서 '대상체(object)'는 촬영의 대상이 되는 것으로서, 사람, 동물, 또는 그 일부를 포함할 수 있다. 예를 들어, 대상체는 신체의 일부(장기 또는 기관 등), 대상체 상에 부착 가능하거나 대상체 내에 삽입 가능한 인공 구조물, 또는 팬텀(phantom) 등을 포함할 수 있다. 예를 들어, 대상체는 치아, 치은, 구강의 적어도 일부 영역, 및/또는 구강 내에 삽입 가능한 인공 구조물(예를 들어, 브라켓 및 와이어를 포함하는 교정 장치, 임플란트, 인공 치아, 인레이 및 온레이 등을 포함하는 치아 수복물, 구강 내 삽입되는 교정 보조 도구 등), 인공 구조물이 부착된 치아 또는 치은 등을 포함할 수 있다.
본 개시에서 '영상'은 대상체에 대한 2차원 영상 또는 대상체를 입체적으로 나타내는 3차원 모델 또는 3차원 영상이 될 수 있다. 본 개시에서 영상이란, 2차원 프레임 및 3차원 프레임을 모두 포함할 수 있다. 예를 들어, 영상은, 대상체에 대해서 서로 다른 시점에서 획득된 2차원 영상들을 포함하는 2차원 프레임, 또는 포인트 클라우드 형태 또는 폴리곤 메쉬 형태로 표현되는 3차원 프레임을 포함할 수 있다.
또한, 본 개시에서 '데이터'는 대상체를 2차원 또는 3차원적으로 표현하기 위해서 필요한 정보, 예를 들어, 적어도 하나의 영상 센서로부터 획득된 로우 데이터(raw data)를 의미할 수 있다. 구체적으로, 로우 데이터는 대상체에 대한 3차원 모델을 생성하기 위해서 획득되는 2차원 영상들일 수 있다. 로우 데이터는, 3차원 스캐너(예를 들어, 구강 스캐너(intraoral scanner))를 이용하여 대상체를 스캔할 때 복수의 영상 센서들에 의해 획득되는 서로 다른 시점의 2차원 영상들이 될 수 있다. 또한, 본 개시에서 '3차원 데이터'는 치아, 치은, 및 치아 또는 치은에 부착되는 인공 구조물 중 적어도 하나를 포함하는 대상체의 입체적인 특성을 나타내는 3차원 모델을 의미할 수 있다.
이하에서는 도면을 참조하여 실시 예들을 상세히 설명한다.
도 1은 일 실시 예에 따른 3차원 모델 처리 시스템을 설명하기 위한 도면이다.
도 1에 도시된 바와 같이, 본 개시의 일 실시 예에 따른 3차원 모델 처리 시스템(200)은, 3차원 스캔 장치(100) 및 3차원 모델 처리 장치(300)를 포함할 수 있다.
일 실시 예에 따른 3차원 모델 처리 시스템(200)은, 3차원 스캔 장치(100)를 이용하여 대상체에 패턴 광을 조사(project)하고 패턴 광이 조사된 대상체를 스캔함으로써, 패턴의 변형에 의한 삼각 계측의 원리를 이용하여 대상체의 형상을 나타내는 3차원 모델을 획득할 수 있다. 그러나, 3차원 스캔 장치(100)로 3차원 모델을 획득하는 방법은 이에 한정되지 않으며, 구현 방식에 따라 다양한 방법으로 3차원 모델을 획득할 수 있다.
일 실시 예에 따른 3차원 스캔 장치(100)는, 대상체로부터 획득된 로우 데이터를 3차원 모델 처리 장치(300)에게 전송할 수 있다. 3차원 모델 처리 장치(300)는, 전달받은 로우 데이터에 기초하여, 대상체의 표면의 형상을 3차원적으로 나타내는 3차원 모델을 생성할 수 있다. 3차원 모델은, 포인트 클라우드 데이터 또는 폴리곤 메쉬 데이터일 수 있다. 다른 일 실시 예에 따른 3차원 스캔 장치(100)는, 대상체로부터 획득된 로우 데이터를 재구성하여 3차원 프레임을 생성하고, 생성된 3차원 프레임을 3차원 모델 처리 장치(300)에 전송할 수 있다.
일 실시 예에 따른 3차원 스캔 장치(100)는, 구강 내의 3차원 모델을 획득하기 위한 의료 장치를 포함할 수 있다. 구체적으로, 3차원 스캔 장치(100)는 구강 내에 삽입되어 비 접촉식으로 치아를 스캐닝함으로써, 적어도 하나의 치아를 포함하는 구강에 대한 3차원 모델을 생성하기 위한 장치가 될 수 있다. 또한, 3차원 스캔 장치(100)는 구강 내에 인입 및 인출이 가능한 형태를 가질 수 있으며, 적어도 하나의 영상 센서(예를 들어, 광학 카메라 등)를 이용하여 환자의 구강 내부를 스캔할 수 있다. 또한, 3차원 스캔 장치(100)는 테이블 스캐너일 수 있다.
3차원 스캔 장치(100)는 대상체인 구강 내부의 치아, 치은 또는 구강 내에 삽입 가능한 인공 구조물(예를 들어, 브라켓 및 와이어를 포함하는 교정 장치, 임플란트, 인공 치아, 구강 내 삽입되는 교정 보조 도구 등) 중 적어도 하나의 표면을 이미징하기 위해서, 대상체에 대한 표면 정보를 로우 데이터로서 획득할 수 있다. 3차원 모델 처리 장치(300)는, 로우 데이터를 기초로 결합(merge) 등의 3차원 연산을 수행하여 3차원 모델을 획득하고, 3차원 모델을 렌더링한 영상을 화면 상에 디스플레이에 표시할 수 있다.
일 실시 예에 따른 3차원 모델 처리 장치(300)는 3차원 스캔 장치(100)와 유선 또는 무선 통신 네트워크를 통하여 연결되며, 3차원 스캔 장치(100)가 대상체를 스캔하여 획득한 로우 데이터 또는 3차원 프레임을 3차원 스캔 장치(100)로부터 수신할 수 있다.
3차원 모델 처리 장치(300)는, 수신된 로우 데이터 또는 3차원 프레임에 기초하여, 대상체에 대한 3차원 모델 또는 영상을 생성, 처리, 디스플레이 및/또는 전송할 수 있는 모든 전자 장치가 될 수 있다. 예를 들어, 3차원 모델 처리 장치(300)는 스마트 폰(smart phone), 랩탑 컴퓨터, 데스크탑 컴퓨터, PDA, 태블릿 PC 등의 컴퓨팅 장치가 될 수 있으며, 이에 한정되지 않는다.
3차원 모델 처리 장치(300)는 3차원 스캔 장치(100)에서 수신된 데이터에 기초하여, 대상체의 진단에 필요한 정보 및 대상체 영상 중 적어도 하나를 생성하고, 생성된 정보 및/또는 영상을 디스플레이(320)를 통하여 디스플레이 할 수 있다.
일 실시 예에 따른 3차원 모델 처리 장치(300)는 대상체에 대한 3차원 모델 또는 영상을 분석하고, 분석 결과를 처리, 디스플레이 및/또는 전송할 수 있다.
또한, 일 실시 예에 따른 3차원 모델 처리 장치(300)는 3차원 스캔 장치(100)에 연동되는 전용 소프트웨어를 저장 및 실행할 수 있다. 전용 소프트웨어는 전용 프로그램 또는 전용 어플리케이션으로 호칭될 수 있다. 3차원 모델 처리 장치(300)가 3차원 스캔 장치(100)와 상호 연동되어 동작하는 경우, 3차원 모델 처리 장치(300)에 저장되는 전용 소프트웨어는 3차원 스캔 장치(100)와 연결되어 대상체 스캔을 통하여 획득되는 데이터들을 실시간으로 수신할 수 있다. 예를 들어, 자사의 구강 스캐너인 i500 제품에 대응되는 i500 에서 구강 스캔을 통하여 획득된 데이터를 처리하기 위한 전용 소프트웨어가 존재한다. 3차원 모델 처리 장치(300)는 i500 제품에 대응되는 전용 소프트웨어를 저장 및 실행할 수 있다. 전용 소프트웨어는 3차원 모델을 획득, 처리, 저장, 및/또는 전송하기 위한 적어도 하나의 동작들을 수행할 수 있다.
전용 소프트웨어는 3차원 모델 처리 장치(300)의 프로세서 또는 메모리에 저장될 수 있다. 또한, 전용 소프트웨어는 3차원 스캔 장치(100)에서 획득된 데이터의 이용을 위한 사용자 인터페이스를 제공할 수 있다. 전용 소프트웨어에서 제공되는 사용자 인터페이스 화면은 개시된 실시 예에 따라서 생성되는 대상체에 대한 3차원 모델이 렌더링 된 영상을 포함할 수 있다. 예를 들어, 개시된 실시 예에서, 전용 소프트웨어에서 제공되는 사용자 인터페이스 화면은 이하의 도면들에서 도시 되는 사용자 인터페이스 화면들 중 어느 하나가 될 수 있다.
도 2는 일 실시 예에 따른 3차원 모델 처리 시스템의 블록도를 도시한다.
도 2에 도시된 바와 같이, 일 실시 예에 따른 3차원 모델 처리 장치(300)는, 외부 디바이스, 또는 외부 서버와 유선 또는 무선 통신 네트워크를 통하여 연결될 수 있다. 일 실시 예에 따른 3차원 모델 처리 장치(300)는, 3차원 스캔 장치(100), 데이터 획득 장치(101)(예를 들어, 컴퓨터 단층 촬영(Computed Tomography, CT) 장치, 또는 자기공명영상(Magnetic Resonance Imaging, MRI) 장치 등의 의료 진단 장치), 또는 서버(102) 중 적어도 하나로부터 대상체에 대한 데이터를 획득하고 처리할 수 있다. 또는, 일 실시 예에 따른 3차원 모델 처리 장치(300)는, 내부 메모리에 미리 저장되어 있던 데이터를 획득하고 처리할 수 있다.
일 실시 예에 따른 3차원 모델 처리 장치(300)에서 처리된 3차원 모델은, 3차원 프린팅을 통해 3차원 물체를 제작하기 위해 이용될 수 있다. 3차원 프린팅을 통해 제작된 3차원 물체를 용이하게 식별하기 위하여, 3차원 물체 상에 3차원 물체의 식별 정보를 나타내는 텍스트가 3차원 물체 상에 추가될 수 있다.
도 3a 및 도 3b는 일반적인 3차원 모델 처리 장치가 3차원 모델 상에 텍스트를 추가하는 방법을 설명한다.
도 3a에 도시된 바와 같이, 일반적인 3차원 모델 처리 장치는, 대상체를 나타내는 3차원 모델(301) 상에 문자열을 나타내는 3차원 텍스트 데이터(302)를 추가할 수 있다. 3차원 모델(301)의 표면이 평탄한 영역에 3차원 텍스트 데이터(302)가 추가되는 경우, 3차원 모델(301)에 대응되는 부분과 3차원 텍스트 데이터(302)에 대응되는 부분이 잘 결합(combine)된 3차원 물체가 3차원 프린팅을 통해 제작될 수 있다.
반면에, 도 3b에 도시된 바와 같이, 3차원 모델(303) 상에 굴곡이 심한 영역 또는 3차원 모델(303) 영역 외에 3차원 텍스트 데이터(304)가 추가되는 경우, 3차원 모델(303)에 대응되는 부분으로부터 3차원 텍스트 데이터(304)에 대응하는 부분의 적어도 일부가 분리되어 프린팅 될 수 있다.
따라서, 3차원 프린팅 과정에서 복수의 문자들을 포함하는 텍스트 전체가 3차원 물체 상에 잘 결합되어 있을 수 있도록 하기 위해서는, 3차원 물체 상에 텍스트 추가가 적합한 영역을 사용자가 용이하게 파악할 수 있도록 하는 것이 요구될 수 있다.
본 개시의 다양한 실시 예들에 따르면, 3차원 모델 처리 장치(300)는 3차원 모델 상에 텍스트를 추가함에 있어서, 3차원 텍스트 데이터가 3차원 모델과 적절하게 결합될 수 있는 지 여부를 판단하고 판단 결과를 화면 상에 표시할 수 있다.
다양한 실시 예들에 따라 3차원 모델 처리 장치(300)가 3차원 모델 상에 텍스트를 추가하는 구체적인 방법과 관련하여서는, 이하에서 도 4 내지 도 10을 참조하여 보다 상세히 설명한다.
도 4는 일 실시 예에 따른 3차원 모델 처리 장치가 3차원 모델 상에 텍스트를 추가하는 방법의 흐름도를 도시한다.
단계 S401에서 일 실시 예에 따른 3차원 모델 처리 장치(300)는, 적어도 하나의 문자에 대응하는 3차원 텍스트 데이터를 획득할 수 있다.
일 실시 예에 따른 3차원 모델 처리 장치(300)는, 내부 메모리 또는 외부 디바이스로부터 적어도 하나의 문자에 대응하는 3차원 텍스트 데이터를 획득할 수 있다. 3차원 모델 처리 장치(300)는, 적어도 하나의 문자를 입력하는 사용자 입력을 수신하고, 사용자 입력에 기초하여 적어도 하나의 문자를 나타내는 3차원 텍스트 데이터를 획득할 수 있다.
일 실시 예에 따른 3차원 모델 처리 장치(300)는, 적어도 하나의 문자에 대응하는 사용자 입력을 수신하고, 적어도 하나의 문자에 대응하는 윤곽선(contour) 데이터를 획득할 수 있다. 3차원 모델 처리 장치(300)는, 윤곽선 데이터에 포함되는 복수의 제1 정점들을 연결함으로써 2차원 메쉬 데이터를 획득할 수 있다. 3차원 모델 처리 장치(300)는, 2차원 메쉬 데이터를 제1 면으로 포함하고, 제1 면으로부터 소정 깊이만큼 이격된 제2 면을 포함하는 3차원 메쉬 데이터를 3차원 텍스트 데이터로서 획득할 수 있다.
일 실시 예에 따른 3차원 모델 처리 장치(300)는, 사용자로부터 복수의 문자들을 포함하는 제1 문자열에 대응하는 사용자 입력을 수신할 수 있다. 3차원 모델 처리 장치(300)는, 제1 문자열에 포함되는 각 문자에 대응하는 윤곽선 데이터를 획득할 수 있다. 3차원 모델 처리 장치(300)는, 각 문자에 대응하는 윤곽선 데이터에 포함되는 복수의 제1 정점들을 연결함으로써 2차원 메쉬 데이터를 획득할 수 있다. 3차원 모델 처리 장치(300)는, 제1 문자열에 포함되는 각 문자에 대응하는 3차원 텍스트 데이터를 포함하는, 3차원 텍스트 데이터 세트를 획득할 수 있다.
단계 S402에서 일 실시 예에 따른 3차원 모델 처리 장치(300)는, 3차원 텍스트 데이터와 3차원 모델을 화면 상에 표시할 수 있다.
일 실시 예에 따른 3차원 모델 처리 장치(300)는, 3차원 모델을 렌더링 하여 화면 상에 표시할 수 있다. 3차원 모델 처리 장치(300)는, 3차원 모델이 표시된 화면 상에, 사용자에 의해 입력된 적어도 하나의 문자에 대응하는 3차원 텍스트 데이터를 추가로 표시할 수 있다.
일 실시 예에 따른 3차원 모델 처리 장치(300)는, 기준점 또는 기준면으로부터 3차원 모델의 표면까지의 거리 또는 사용자 입력 중 적어도 하나에 기초하여, 3차원 공간 내에서 3차원 텍스트 데이터가 배치될 위치를 결정할 수 있다. 일 실시 예에 따른 3차원 모델 처리 장치(300)는, 3차원 텍스트 데이터의 X축 좌표값 및 Y축 좌표값을 결정할 수 있다. 일 실시 예에 따른 3차원 모델 처리 장치(300)는, 결정된 X축 좌표값 및 Y축 좌표값에 기초하여, 3차원 모델에 근접하여 위치하도록 3차원 텍스트 데이터의 Z축 좌표값을 결정할 수 있다.
일 예로서, 3차원 모델 처리 장치(300)는, 화면 상의 소정 위치를 선택하는 사용자 입력을 수신하고, 화면 상의 소정 위치에 기초하여 기준점을 결정할 수 있다. 3차원 모델 처리 장치(300)는, 기준점으로부터 3차원 모델의 표면까지의 거리에 기초하여, 3차원 텍스트 데이터의 위치를 결정할 수 있다. 3차원 모델 처리 장치(300)는, 화면 상의 소정 위치에 기초하여 3차원 텍스트 데이터의 X축 좌표값 및 Y축 좌표값을 결정하고, 3차원 모델을 고려하여 3차원 텍스트 데이터의 Z축 좌표값을 결정할 수 있다.
예를 들어, 3차원 텍스트 데이터의 X축 좌표값이란, 화면 상에 디스플레이되고 있는 3차원 공간 내에서, 화면의 가로축을 따라 결정되는 3차원 텍스트 데이터의 위치를 나타내는 값일 수 있다. 3차원 텍스트 데이터의 Y축 좌표값이란, 화면 상에 디스플레이되고 있는 3차원 공간 내에서, 화면의 세로축을 따라 결정되는 3차원 텍스트 데이터의 위치를 나타내는 값일 수 있다. 3차원 텍스트 데이터의 Z축 좌표값이란, 화면 상에 디스플레이되고 있는 3차원 공간 내에서, 화면을 기준으로 3차원 텍스트 데이터의 깊이를 나타내는 값일 수 있다.
일 실시 예에 따른 3차원 모델 처리 장치(300)는, 기준점으로부터 3차원 모델로 가상의 선을 조사함으로써, 3차원 모델의 표면 상에서 기준점으로부터 가장 가까운 포인트를 식별할 수 있다. 3차원 모델 처리 장치(300)는, 3차원 모델 상에서 식별된 포인트에 3차원 텍스트 데이터가 부착되도록, 3차원 텍스트 데이터의 Z축 좌표값을 결정할 수 있다.
다른 예로서, 3차원 모델 처리 장치(300)는, 화면 상의 제1 위치에 대응하는 위치에 3차원 텍스트 데이터를 배치하고, 화면 상의 제1 위치에 표시된 3차원 텍스트 데이터를 제2 위치로 드래그하는 사용자 입력을 수신할 수 있다. 3차원 모델 처리 장치(300)는, 사용자 입력에 기초하여 3차원 텍스트 데이터의 X축 좌표값 및 Y축 좌표값을 결정하고, 3차원 모델을 고려하여 3차원 텍스트 데이터의 Z축 좌표값을 결정할 수 있다. 3차원 모델 처리 장치(300)는, 화면 상의 제2 위치에 기초하여 기준점을 결정하고, 기준점으로부터 3차원 모델의 표면까지의 거리에 기초하여, 3차원 텍스트 데이터의 Z축 좌표값을 결정할 수 있다.
다른 예로서, 3차원 모델 처리 장치(300)는, 화면 상에 디스플레이 되고 있는 3차원 공간 내의 3차원 모델에 복수의 가상의 선들을 조사할 수 있다. 3차원 모델 처리 장치(300)는, 복수의 가상의 선들을 3차원 모델에 조사함으로써, 3차원 모델의 표면 상에서 가장 가까운 포인트(즉, 3차원 모델의 표면 상에서 가장 돌출된 포인트)를 식별할 수 있다. 3차원 모델 처리 장치(300)는, 3차원 모델 상에서 식별된 포인트에 기준 문자에 대응하는 3차원 텍스트 데이터의 포인트가 부착되도록, 3차원 텍스트 데이터 세트를 위치 정렬할 수 있다.
3차원 모델 처리 장치(300)는, 화면 상에 디스플레이 되고 있는 3차원 모델의 표면에서 가장 돌출된 영역을 검색하고, 검색된 영역에 대응하는 X축 좌표값 및 Y축 좌표값을 결정할 수 있다.
3차원 모델 처리 장치(300)는, 3차원 텍스트 데이터의 제2 면에 포함된 정점들로부터 3차원 모델의 검색된 영역까지의 연직 거리들에 기초하여, 3차원 텍스트 데이터의 Z축 좌표값을 결정할 수 있다.
일 실시 예에 따른 3차원 모델 처리 장치(300)는, 3차원 모델 상에 텍스트가 양각(embossment)으로 입력되는 지 또는 음각(intaglio)으로 입력되는 지 여부에 기초하여 3차원 텍스트 데이터의 Z축 좌표값을 결정할 수 있다.
일 예로서, 3차원 모델 상에 텍스트가 양각으로 입력되는 경우, 3차원 모델 처리 장치(300)는, 3차원 텍스트 데이터의 제1 면과 제2 면이 3차원 모델의 외부에 위치하도록 3차원 텍스트 데이터의 위치를 결정할 수 있다. 3차원 모델 처리 장치(300)는, 3차원 텍스트 데이터의 제2 면에 포함된 정점들로부터 3차원 모델의 표면까지의 연직 거리들의 합이 최소인, 3차원 텍스트 데이터의 위치를 결정할 수 있다.
다른 예로서, 3차원 모델 내에 텍스트가 음각으로 입력되는 경우, 3차원 모델 처리 장치(300)는, 3차원 텍스트 데이터의 제1 면과 제2 면이 3차원 모델의 내부에 위치하도록 3차원 텍스트 데이터의 위치를 결정할 수 있다. 3차원 모델 처리 장치(300)는, 3차원 텍스트 데이터의 제2 면에 포함된 정점들로부터 3차원 모델의 표면까지의 연직 거리들의 합이 최소인, 3차원 텍스트 데이터의 위치를 결정할 수 있다.
또한, 3차원 모델 처리 장치(300)는, 3차원 텍스트 데이터의 노멀 벡터와 3차원 모델의 노멀 벡터에 기초하여, 3차원 텍스트 데이터의 각도를 결정할 수 있다.
단계 S403에서 일 실시 예에 따른 3차원 모델 처리 장치(300)는, 3차원 텍스트 데이터와 3차원 모델이 결합 가능한 지를 판단할 수 있다.
일 실시 예에 따른 3차원 모델 처리 장치(300)는, 소정 오프셋이 적용된 3차원 텍스트 데이터와 3차원 모델의 교차(intersection) 여부에 기초하여, 3차원 텍스트 데이터와 3차원 모델이 결합 가능한 지를 판단할 수 있다. 오프셋이 적용된 3차원 텍스트 데이터는, 오프셋만큼 깊이가 추가된 3차원 텍스트 데이터를 포함할 수 있다.
일 실시 예에 따른 3차원 모델 처리 장치(300)는, 오프셋이 적용된 3차원 텍스트 데이터를 획득하기 위하여, 3차원 텍스트 데이터의 제2 면에 포함되는 제2 정점을 소정 오프셋만큼 이동시킬 수 있다. 3차원 모델 처리 장치(300)는, 3차원 텍스트 데이터의 제1 면의 제1 정점과 이동된 제2 정점을 연결하는 라인을 결정할 수 있다. 3차원 모델 처리 장치(300)는, 라인과 3차원 모델의 표면이 교차하는 지 여부를 판단할 수 있다. 3차원 모델 처리 장치(300)는, 3차원 텍스트 데이터의 제1 면의 제1 정점들과 소정 오프셋만큼 이동된 제2 정점들을 연결하는 라인들 중에서, 3차원 모델의 표면과 교차하는 라인들의 개수가 기준 값 이상인 지 여부를 판단하고, 판단 결과에 기초하여 3차원 텍스트 데이터와 3차원 모델이 결합 가능한 지를 판단할 수 있다. 예를 들어, 3차원 모델 처리 장치(300)는, 3차원 텍스트 데이터의 제1 면의 제1 정점들과 소정 오프셋만큼 이동된 제2 정점들을 연결하는 모든 라인들이 3차원 모델의 표면과 교차하는 경우, 3차원 텍스트 데이터와 3차원 모델이 결합 가능하다고 판단할 수 있다.
단계 S404에서 일 실시 예에 따른 3차원 모델 처리 장치(300)는, 판단 결과를 화면 상에 표시할 수 있다.
일 실시 예에 따른 3차원 모델 처리 장치(300)는, 3차원 텍스트 데이터와 3차원 모델이 결합 가능한 지 여부에 기초하여, 화면 상에 표시되는 3차원 텍스트 데이터의 색, 모양, 또는 밝기 중 적어도 하나를 결정할 수 있다.
일 실시 예에 따른 3차원 모델 처리 장치(300)는, 3차원 텍스트 데이터가 3차원 모델에 결합 가능한 경우와 결합 가능하지 않은 경우를 상이하게 표시할 수 있다. 예를 들어, 일 실시 예 에 따른 3차원 모델 처리 장치(300)는, 3차원 텍스트 데이터가 3차원 모델에 결합 가능한 경우 제1 색(예를 들어, 파란색)으로 3차원 텍스트 데이터를 표시할 수 있다. 3차원 텍스트 데이터가 3차원 모델에 결합 가능하지 않은 경우 제2 색(예를 들어, 주황색)으로 3차원 텍스트 데이터를 표시할 수 있다.
일 실시 예에 따른 3차원 모델 처리 장치(300)는, 화면 상에 표시된 3차원 텍스트 데이터를 3차원 모델에 결합 불가능한 제1 위치로부터 3차원 모델에 결합 가능한 제2 위치로 드래그하는 사용자 입력에 따라, 3차원 텍스트 데이터의 색상을 제2 색으로부터 제1 색으로 변경할 수 있다.
또한, 일 실시 예에 따른 3차원 모델 처리 장치(300)는, 복수의 문자들에 대응하는 3차원 텍스트 데이터 세트 중에서 일부 문자들에 대응하는 3차원 텍스트 데이터가, 3차원 모델과 결합 가능하지 않다고 판단할 수 있다. 3차원 모델 처리 장치(300)는, 3차원 모델과 결합 가능하지 않다고 판단되는 일부 3차원 텍스트 데이터를, 다른 3차원 텍스트 데이터와 상이하게 표시할 수 있다. 3차원 모델 처리 장치(300)는, 사용자가 입력하고자 하는 문자열에 대응하는 3차원 텍스트 데이터 세트 중에서 어떠한 문자에 대응하는 3차원 텍스트 데이터가 3차원 모델과 결합되지 않는지를 표시할 수 있다. 따라서, 사용자는, 문자열에 포함된 문자들 중에서 문제가 되는 문자를 직관적으로 확인하고, 문자열을 수정하거나 3차원 텍스트 데이터의 위치를 변경할 수 있다.
일 실시 예에 따른 3차원 모델 처리 장치(300)는, 3차원 텍스트 데이터와 3차원 모델이 결합 가능한 경우, 텍스트가 추가된 3차원 모델을 획득할 수 있다. 3차원 모델 처리 장치(300)는, 3차원 모델 상에 소정 오프셋이 적용된 상기 3차원 텍스트 데이터를 결합하거나, 3차원 모델로부터 소정 오프셋이 적용된 3차원 텍스트 데이터에 대응하는 데이터를 삭제함으로써, 텍스트가 추가된 3차원 모델을 획득할 수 있다.
도 5a, 도 5b 및 도 5c는 일 실시 예에 따른 3차원 모델 처리 장치가 3차원 텍스트 데이터를 획득하는 과정의 예를 도시한다.
일 실시 예에 따른 3차원 모델 처리 장치(300)는, 다양한 문자들 각각에 대응하는 윤곽선 데이터를 포함하는 윤곽선 데이터 세트를 획득할 수 있다. 3차원 모델 처리 장치(300)는, 오픈 API(Application Programming Interface)로부터 윤곽선 데이터 세트를 획득할 수 있다. 소정 문자에 대응하는 윤곽선 데이터는 적어도 하나의 폐루프를 포함하고, 복수의 포인트들로 구성될 수 있다.
일 실시 예에 따른 3차원 모델 처리 장치(300)는, 내부 메모리에 미리 저장되어 있던 윤곽선 데이터 세트로부터, 사용자 입력에 대응하는 적어도 하나의 문자를 나타내는 윤곽선 데이터를 획득할 수 있다.
도 5a에 도시된 바와 같이, 일 실시 예에 따른 3차원 모델 처리 장치(300)는, 문자 'a'를 입력하는 사용자 입력을 수신하면, 문자 'a'를 나타내는 윤곽선 데이터(510)를 획득할 수 있다. 윤곽선 데이터(510)는, 복수의 제1 정점들로 구성된 바깥쪽 폐루프와 안쪽 폐루프를 포함할 수 있다.
다음으로, 도 5b에 도시된 바와 같이, 일 실시 예에 따른 3차원 모델 처리 장치(300)는, 윤곽선 데이터 내에 포함되는 제1 정점들을 연결하여 2차원 메쉬 데이터(520)를 생성할 수 있다.
다음으로, 일 실시 예에 따른 3차원 모델 처리 장치(300)는, 2차원 메쉬 데이터(520)에 기초하여 3차원 텍스트 데이터를 생성할 수 있다.
도 5c에 도시된 바와 같이, 일 실시 예에 따른 3차원 모델 처리 장치(300)는, X축 좌표값 및 Y축 좌표값으로 구성된 2차원 메쉬 데이터에 소정 깊이 값을 적용하여, X축 좌표값, Y축 좌표값 및 Z축 좌표값으로 구성된 3차원 텍스트 데이터(530)를 생성할 수 있다. 3차원 모델 처리 장치(300)는, 윤곽선 데이터로부터 획득된 2차원 메쉬 데이터를 제1 면으로 포함하고, 제1 면으로부터 소정 깊이 값만큼 이격된 제2 면을 포함하는 3차원 메쉬 데이터를 3차원 텍스트 데이터(530)로서 생성할 수 있다.
본 개시의 실시예는 도 5b에 도시된 예에 제한되지 않는다. 일 실시 예에 따른 3차원 모델 처리 장치(300)는, 윤곽선 데이터(510)의 바깥쪽 폐루프와 안쪽 폐루프 사이에 임의의 정점을 생성하고, 임의의 정점을 기준으로 2차원 메쉬 데이터(520)을 생성할 수 있다. 3차원 모델 처리 장치(300)는, 2차원 메쉬 데이터(520)에 소정 깊이 값을 적용하여 3차원 텍스트 데이터를 생성할 수 있다. 3차원 모델 처리 장치(300)는, 2차원 메쉬 데이터(520)의 노멀 벡터의 방향 또는 노멀 벡터의 반대 방향으로 임의의 정점으로부터 라인을 생성하고, 생성된 라인과 3차원 모델이 교차하는 지 여부에 기초하여, 3차원 텍스트 데이터와 3차원 모델이 결합 가능한 지를 판단할 수 있다.
윤곽선 데이터로부터 생성된 2차원 메쉬 데이터를 포함하는 제1 면(531)의 정점들을 제1 정점들(또는, 전면(front) 정점들)이라고 지칭하고, 제1 정점들로부터 소정 깊이 값이 적용된 제2 면(532)에 포함되는 정점들을 제2 정점들(또는, 후면(back) 정점들)이라고 지칭할 수 있다.
도 5a 내지 5c에는 문자 'a'에 대한 3차원 텍스트 데이터를 생성하는 경우를 예로 들어 설명하였으나, 본 개시는 도시된 예에 제한되지 않는다. 3차원 모델 처리 장치(300)는, 다양한 문자에 대응하는 3차원 텍스트 데이터를 획득할 수 있다. 또한, 3차원 모델 처리 장치(300)는, 사용자에 의해 복수의 문자들을 포함하는 문자열이 입력되는 경우, 복수의 문자들에 대응하는 3차원 텍스트 데이터 세트를 획득할 수 있다.
일 실시 예에 따른 3차원 모델 처리 장치(300)는, 3차원 텍스트 데이터가 획득되면, 3차원 모델을 포함하는 3차원 공간 내에서 3차원 텍스트 데이터가 배치될 위치를 결정할 수 있다. 일 실시 예에 따른 3차원 모델 처리 장치(300)는, 사용자 입력에 기초하여, 또는, 3차원 모델의 일부 영역 중에서 가장 돌출된 것으로 검색된 영역에 기초하여, 3차원 텍스트 데이터의 X축 좌표값 및 Y축 좌표값을 결정할 수 있다. 그리고, 3차원 모델 처리 장치(300)는, 3차원 모델의 위치를 기준으로 3차원 텍스트 데이터의 Z축 좌표값을 결정할 수 있다.
이하, 3차원 텍스트 데이터의 Z축 좌표값을 결정하는 구체적인 방법을 설명한다.
일 실시 예에 따른 3차원 모델 처리 장치(300)는 다음의 과정을 따라 3차원 모델 상에 3차원 텍스트 데이터를 위치 정렬할 수 있다.
일 실시 예에 따른 3차원 모델 처리 장치(300)는, 복수의 문자들을 포함하는 문자열을 입력하는 사용자 입력을 수신하고, 문자열에 대응하는 3차원 텍스트 데이터 세트를 획득할 수 있다. 3차원 모델 처리 장치(300)는, 복수의 문자들 중에서 기준 문자, 또는 복수의 문자들의 중앙에 위치하는 것으로 판단되는 기준 점을 선택할 수 있다.
예를 들어, 3차원 모델 처리 장치(300)는, 문자열 “ABCDE”에 대응하는 3차원 텍스트 데이터 세트를 획득하고, 문자열 “ABCDE” 중에서 중앙에 위치한 문자 “C”를 기준 문자로서 선택할 수 있다. 예를 들어, 3차원 모델 처리 장치(300)는, 문자열 “ABCD”에 대응하는 3차원 텍스트 데이터 세트를 획득하고, 문자열 “ABCD” 중에서 중앙에 위치한 문자 “B” 또는 문자 “C”를 기준 문자로서 선택할 수 있다.
또는, 3차원 모델 처리 장치(300)는, 문자열에 대응하는 3차원 텍스트 데이터 세트를 하나의 메쉬 데이터로서 결정하고, 결정된 메쉬 데이터의 중앙에 위치하는 것으로 판단되는 점을 기준점으로서 설정할 수 있다. 예를 들어, 3차원 모델 처리 장치(300)는, 문자열 “ABCD”에 대응하는 3차원 텍스트 데이터 세트를 획득하고, 문자열 “ABCD” 중에서 문자 “B” 및 문자 “C” 사이의 중앙에 위치한 점을 기준점으로 설정할 수 있다.
일 실시 예에 따른 3차원 모델 처리 장치(300)는, 화면 상의 소정 위치를 선택하는 사용자 입력(예를 들어, 화면 상의 소정 위치를 클릭하는 사용자의 입력 등)을 수신하고, 화면 상의 소정 위치에 대응하는 X축 좌표값 및 Y축 좌표값을 결정할 수 있다. 3차원 모델 처리 장치(300)는, X축 좌표값 및 Y축 좌표값에 의해 결정된 기준점을 기준으로 가상의 선을 3차원 모델에 조사함으로써, 3차원 모델의 표면 상에서 기준점으로부터 가장 가까운 포인트를 식별할 수 있다. 3차원 모델 처리 장치(300)는, 3차원 모델 상에서 식별된 포인트에 기준 문자에 대응하는 3차원 텍스트 데이터의 포인트가 부착되도록, 또는, 3차원 모델 상에서 식별된 포인트에 3차원 텍스트 데이터 세트의 기준점이 부착되도록, 3차원 텍스트 데이터 세트를 3차원 모델에 인접하여 위치 정렬할 수 있다.
다른 일 실시 예에 따른 3차원 모델 처리 장치(300)는, 화면 상에 디스플레이 되고 있는 3차원 공간 내의 3차원 모델에 Z축 방향으로 복수의 가상의 선들을 조사할 수 있다. 3차원 모델 처리 장치(300)는, 복수의 가상의 선들을 3차원 모델에 조사함으로써, 3차원 모델의 표면 상에서 화면으로부터 가장 가까운 포인트(즉, 3차원 모델의 표면 상에서 가장 돌출된 포인트)를 식별할 수 있다. 3차원 모델 처리 장치(300)는, 3차원 모델 상에서 식별된 포인트에 기준 문자에 대응하는 3차원 텍스트 데이터의 포인트가 부착되도록, 또는, 3차원 모델 상에서 식별된 포인트에 3차원 텍스트 데이터 세트의 기준점이 부착되도록, 3차원 텍스트 데이터 세트를 3차원 모델에 인접하여 위치 정렬할 수 있다.
예를 들어, 사용자의 구강 내부를 나타내는 치아 모델은, 치아 및 치은을 나타내는 구강 영역과 구강 영역을 받치는 베이스 영역을 포함할 수 있다. 일반적으로 치아 모델의 경우, 구강 영역에 비해 베이스 영역이 돌출되게 되므로, 3차원 모델 처리 장치(300)는, 사용자가 텍스트를 입력하면, 상대적으로 돌출된 베이스 영역을 검색하고, 입력된 텍스트에 대응하는 3차원 텍스트 데이터 세트를 검색된 베이스 영역 상에 자동으로 위치 정렬 할 수 있다.
한편, 일 실시예에 따른 3차원 모델 처리 장치(300)는, 3차원 모델을 세그멘테이션 할 수 있다. 3차원 모델 처리 장치(300)는 템플릿을 사용하거나 인공지능 등을 사용하여, 적어도 하나의 치아에 대응하는 영역, 치은에 대응하는 영역, 및/또는 베이스 영역으로 3차원 모델을 분리할 수 있다. 3차원 모델에 있어서, 구강을 나타내는 영역(예를 들어, 치아 영역 및/또는 치은 영역)은 입력된 텍스트로 인해서 변형되면 안되는 중요한 영역이다. 따라서, 사용자에 의해 입력된 텍스트는, 구강을 나타내는 영역이 아닌 베이스 영역에 추가되는 것이 바람직할 수 있다.
따라서, 일 실시예에 따른 3차원 모델 처리 장치(300)는, 세그멘테이션에 의해 식별된 각 치아를 기준으로 일정 거리 내에는 텍스트가 추가되지 않도록 하는 락킹(Locking) 기능을 설정할 수 있다. 락킹 기능이 활성화되면, 3차원 모델 처리 장치(300)는, 사용자에 의해 입력된 텍스트가 3차원 모델 상에서 설정된 영역 이외의 영역에 위치할 수 있도록 텍스트를 자동 위치 정렬할 수 있다. 예를 들어, 3차원 모델 처리 장치(300)는, 사용자에 의해 입력된 텍스트가 구강 영역 이외의 영역, 즉, 베이스 영역에 위치할 수 있도록 텍스트를 자동 위치 정렬할 수 있다.
한편, 3차원 텍스트 데이터와 3차원 모델이 잘 결합되기 위해서는, 3차원 텍스트 데이터의 제2 면의 정점들이 3차원 모델의 표면(즉, 3차원 모델의 표면에 위치한 메쉬 또는 정점)과 맞닿아야 한다. 그러나, 3차원 모델의 표면이 평평하지 않은 경우, 3차원 텍스트 데이터의 제2 면의 정점들의 일부가 3차원 모델과 접촉하더라도, 제2 정점들의 나머지 일부는 3차원 모델과 접촉하지 않을 수 있다.
따라서, 일 실시 예에 따른 3차원 모델 처리 장치(300)는, 3차원 모델과의 결합을 위한 오프셋을 3차원 텍스트 데이터에 적용할 수 있다. 3차원 모델 처리 장치(300)는, 3차원 텍스트 데이터의 제2 면의 정점들로부터 오프셋만큼 이동된 가상의 정점들을 설정함으로써, 3차원 텍스트 데이터에 오프셋을 적용할 수 있다.
일 실시 예에 따른 3차원 모델 처리 장치(300)는, 3차원 텍스트 데이터의 제2 면의 노멀 벡터의 방향으로, 또는 제2 면의 노멀 벡터의 반대 방향으로 제2 면 정점들을 이동시킴으로써 가상의 제3 정점들을 설정할 수 있다. 3차원 모델 처리 장치(300)는, 오프셋이 적용된 3차원 텍스트 데이터와 3차원 모델의 교차 여부에 기초하여, 3차원 텍스트 데이터와 3차원 모델이 결합 가능한 지를 판단하고 판단 결과를 화면 상에 표시할 수 있다.
도 6a는 일 실시 예에 따른 3차원 모델 처리 장치가 오프셋이 적용된 3차원 텍스트 데이터와 3차원 모델의 교차 여부를 판단하는 방법을 설명한다.
도 6a에 도시된 바와 같이, 일 실시 예에 따른 3차원 모델 처리 장치(300)는, 3차원 모델 상에 텍스트가 양각으로 입력되는 경우, 3차원 텍스트 데이터(611, 631)가 3차원 모델(605)의 외부에 위치하도록 3차원 텍스트 데이터(611, 631)의 위치를 결정할 수 있다.
도 6a에서, 3차원 텍스트 데이터(611)는, 적어도 하나의 문자에 대응하는 윤곽선 데이터로부터 생성된 2차원 메쉬 데이터를 제1 면(611a)으로서 포함하고, 제1 면으로부터 소정 깊이 값(601)만큼 이격된 제2 면(611b)을 포함할 수 있다.
3차원 모델 처리 장치(300)는, 오프셋(602)이 적용된 3차원 텍스트 데이터를 획득하기 위하여, 3차원 텍스트 데이터(611)의 제2 면(611b)에 포함되는 제2 정점들을 소정 오프셋만큼 이동시킬 수 있다. 3차원 모델 처리 장치(300)는, 3차원 텍스트 데이터의 제1 면(611a)의 제1 정점들과 이동된 제2 정점들을 연결하는 라인들을 결정할 수 있다. 3차원 모델 처리 장치(300)는, 라인들과 3차원 모델의 표면이 교차하는 지 여부를 판단할 수 있다. 3차원 모델 처리 장치(300)는, 제1 정점을 시작점으로 하고, 오프셋만큼 이동된 제2 정점을 끝점으로 하는 라인 상에 3차원 모델의 표면의 메쉬 또는 정점이 위치하면, 라인과 3차원 모델의 표면이 교차한다고 판단할 수 있다.
3차원 모델 처리 장치(300)는, 3차원 텍스트 데이터의 제1 면(611a)의 제1 정점들과 오프셋(602)만큼 이동된 제2 정점들을 연결하는 라인들 중에서, 3차원 모델의 표면과 교차하는 라인들의 개수가 기준 값 이상인 지 여부를 판단 할 수 있다. 3차원 모델 처리 장치(300)는, 판단 결과에 기초하여 3차원 텍스트 데이터(611)와 3차원 모델(605)이 결합 가능한 지를 판단할 수 있다.
일 실시 예에 따른 3차원 모델 처리 장치(300)는, 1개 이상의 라인들이 3차원 모델(605)의 표면과 교차하지 않으므로, 3차원 텍스트 데이터(611)가 3차원 모델(605)과 결합 가능하지 않다고 판단할 수 있다.
반면에, 도 6a에서, 3차원 텍스트 데이터(631)는, 제1 면(631a) 및 제2 면(631b)을 포함할 수 있다. 3차원 모델 처리 장치(300)는, 3차원 텍스트 데이터의 제1 면(631a)의 제1 정점들과 소정 오프셋만큼 이동된 제2 정점들을 연결하는 라인들을 결정할 수 있다. 3차원 모델 처리 장치(300)는, 3차원 텍스트 데이터의 제1 면(631a)의 제1 정점들과 오프셋(602)만큼 이동된 제2 정점들을 연결하는 라인들 중에서, 3차원 모델의 표면과 교차하는 라인들의 개수가 기준 값 이상인 지 여부를 판단 할 수 있다.
일 실시 예에 따른 3차원 모델 처리 장치(300)는, 모든 라인들이 3차원 모델(605)의 표면과 교차하므로, 3차원 텍스트 데이터(631)가 3차원 모델(605)과 결합 가능하다고 판단할 수 있다.
도 6b는 일 실시 예에 따른 3차원 모델 처리 장치가 오프셋이 적용된 3차원 텍스트 데이터와 3차원 모델의 교차 여부를 판단하는 방법을 설명한다.
도 6b에 도시된 바와 같이, 일 실시 예에 따른 3차원 모델 처리 장치(300)는, 3차원 모델 상에 텍스트가 음각으로 입력되는 경우, 3차원 텍스트 데이터(661, 681)가 3차원 모델(605)의 내부에 위치하도록 3차원 텍스트 데이터(661, 681)의 위치를 결정할 수 있다.
도 6b에서, 3차원 텍스트 데이터(661)는, 적어도 하나의 문자에 대응하는 윤곽선 데이터로부터 생성된 2차원 메쉬 데이터를 제1 면(661a)으로서 포함하고, 제1 면으로부터 소정 깊이 값(601)만큼 이격된 제2 면(661b)을 포함할 수 있다.
3차원 모델 처리 장치(300)는, 오프셋(602)이 적용된 3차원 텍스트 데이터를 획득하기 위하여, 3차원 텍스트 데이터(661)의 제2 면(661b)에 포함되는 제2 정점들을 소정 오프셋만큼 이동시킬 수 있다. 3차원 모델 처리 장치(300)는, 3차원 텍스트 데이터의 제1 면(661a)의 제1 정점들과 이동된 제2 정점들을 연결하는 라인들을 결정할 수 있다. 3차원 모델 처리 장치(300)는, 라인들과 3차원 모델의 표면이 교차하는 지 여부를 판단할 수 있다. 3차원 모델 처리 장치(300)는, 제1 정점을 시작점으로 하고, 오프셋만큼 이동된 제2 정점을 끝점으로 하는 라인 상에 3차원 모델의 표면의 메쉬 또는 정점이 위치하면, 라인과 3차원 모델의 표면이 교차한다고 판단할 수 있다.
3차원 모델 처리 장치(300)는, 3차원 텍스트 데이터의 제1 면(661a)의 제1 정점들과 오프셋(602)만큼 이동된 제2 정점들을 연결하는 라인들 중에서, 3차원 모델의 표면과 교차하는 라인들의 개수가 기준 값 이상인 지 여부를 판단 할 수 있다. 3차원 모델 처리 장치(300)는, 판단 결과에 기초하여 3차원 텍스트 데이터(661)와 3차원 모델(605)이 결합 가능한 지를 판단할 수 있다.
일 실시 예에 따른 3차원 모델 처리 장치(300)는, 1개 이상의 라인들이 3차원 모델(605)의 표면과 교차하지 않으므로, 3차원 텍스트 데이터(661)가 3차원 모델(605)과 결합 가능하지 않다고 판단할 수 있다.
반면에, 도 6b에서, 3차원 텍스트 데이터(681)는, 제1 면(681a) 및 제2 면(681b)을 포함할 수 있다. 3차원 모델 처리 장치(300)는, 3차원 텍스트 데이터의 제1 면(681a)의 제1 정점들과 소정 오프셋만큼 이동된 제2 정점들을 연결하는 라인들을 결정할 수 있다. 3차원 모델 처리 장치(300)는, 3차원 텍스트 데이터의 제1 면(681a)의 제1 정점들과 오프셋(602)만큼 이동된 제2 정점들을 연결하는 라인들 중에서, 3차원 모델의 표면과 교차하는 라인들의 개수가 기준 값 이상인 지 여부를 판단 할 수 있다.
일 실시 예에 따른 3차원 모델 처리 장치(300)는, 모든 라인들이 3차원 모델(605)의 표면과 교차하므로, 3차원 텍스트 데이터(681)가 3차원 모델(605)과 결합 가능하다고 판단할 수 있다.
도 6a 및 도 6b에 도시된 바와 같이, 일 실시 예에 따른 3차원 모델 처리 장치(300)는, 각 문자에 대응하는 3차원 텍스트 데이터 별로 3차원 모델과의 결합 가능 여부를 판단할 수 있다. 따라서, 일 실시 예에 따른 3차원 모델 처리 장치(300)는, 사용자가 입력하고자 하는 문자열에 대응하는 3차원 텍스트 데이터 세트 중에서 어떠한 문자에 대응하는 3차원 텍스트 데이터가 3차원 모델과 결합되지 않는지를 표시할 수 있다. 따라서, 사용자는, 문자열에 포함된 문자들 중에서 문제가 되는 문자를 직관적으로 확인하고, 문자열을 수정할 수 있다. 또는 사용자는, 3차원 모델 상에서 문자열 입력이 적합한 영역을 빠르고 정확하게 찾을 수 있다.
도 7a는 일 실시 예에 따른 3차원 모델 처리 장치가 3차원 모델 상에 양각 방식으로 텍스트를 추가한 예를 도시한다.
도 7a에 도시된 바와 같이, 일 실시 예에 따른 3차원 모델 처리 장치(300)는, 3차원 모델 상에 텍스트가 양각으로 입력되는 경우, 3차원 텍스트 데이터 세트(711)가 3차원 모델(710)의 외부에 위치하도록 문자열에 대응하는 3차원 텍스트 데이터 세트(711)의 위치를 결정할 수 있다.
일 실시 예에 따른 3차원 모델 처리 장치(300)는, 3차원 모델(710) 상에 3차원 텍스트 데이터 세트(711)를 위치 정렬할 수 있다. 3차원 모델 처리 장치(300)는, 3 차원 텍스트 데이터 세트(711)에 포함되는 각 문자에 대응하는 3차원 텍스트 데이터의 제1 면의 정점들(또는, 전면(front) 정점들)을 시작점들로서 포함하고, 소정 깊이 값 및 오프셋만큼 이동된 제2 정점들(또는, 후면(back) 정점들)을 끝점들로서 포함하는 3차원 메쉬 데이터를 3차원 모델 상에 결합할 수 있다.
3차원 모델 처리 장치(300)는, 3차원 텍스트 데이터의 제1 면의 제1 정점들과 오프셋만큼 이동된 제2 정점들을 연결하는 라인들이 3차원 모델(710)의 표면과 교차하는 위치들을 기초로 3차원 텍스트 데이터의 후면(back) 정점들을 결정할 수 있다. 3차원 모델 처리 장치(300)는, 3 차원 텍스트 데이터 세트(711)에 포함되는 각 문자에 대응하는 3차원 텍스트 데이터의 제1 면의 정점들을 시작점들로서 포함하고, 3차원 모델(710)과의 교차 위치들을 기초로 새롭게 결정된 후면 정점들을 끝점들로서 포함하는 3차원 메쉬 데이터를 획득할 수 있다.
3차원 모델 처리 장치(300)는, 획득된 3차원 메쉬 데이터를 3차원 모델에 결합함으로써, 3차원 모델 상에 텍스트를 추가할 수 있다.
도 7b는 일 실시 예에 따른 3차원 모델 처리 장치가 3차원 모델 내에 음각 방식으로 텍스트를 추가한 예를 도시한다.
도 7b에 도시된 바와 같이, 일 실시 예에 따른 3차원 모델 처리 장치(300)는, 3차원 모델 상에 텍스트가 음각으로 입력되는 경우, 3차원 텍스트 데이터 세트(721)가 3차원 모델(720)의 내부에 위치하도록 문자열에 대응하는 3차원 텍스트 데이터 세트(721)의 위치를 결정할 수 있다.
일 실시 예에 따른 3차원 모델 처리 장치(300)는, 3차원 모델(720) 내에 3차원 텍스트 데이터 세트(721)를 위치 정렬할 수 있다. 3차원 모델 처리 장치(300)는, 3 차원 텍스트 데이터 세트(721)에 포함되는 각 문자에 대응하는 3차원 텍스트 데이터의 제1 면의 정점들을 시작점들로서 포함하고, 소정 깊이 값 및 오프셋만큼 이동된 제2 정점들을 끝점들로서 포함하는 3차원 메쉬 데이터를 획득할 수 있다.
3차원 모델 처리 장치(300)는, 3차원 텍스트 데이터의 제1 면의 제1 정점들과 오프셋만큼 이동된 제2 정점들을 연결하는 라인들이 3차원 모델(720)의 표면과 교차하는 위치들을 기초로 3차원 텍스트 데이터의 후면(back) 정점들을 결정할 수 있다. 3차원 모델 처리 장치(300)는, 3 차원 텍스트 데이터 세트(721)에 포함되는 각 문자에 대응하는 3차원 텍스트 데이터의 제1 면의 정점들을 시작점들로서 포함하고, 3차원 모델(720)과의 교차 위치들을 기초로 새롭게 결정된 후면 정점들을 끝점들로서 포함하는 3차원 메쉬 데이터를 획득할 수 있다.
3차원 모델 처리 장치(300)는, 획득된 3차원 메쉬 데이터를 3차원 모델(720)로부터 삭제함으로써, 3차원 모델 상에 텍스트를 추가할 수 있다.
도 8a 및 도 8b는 일 실시 예에 따른 3차원 모델 처리 장치가 디스플레이 하는 화면의 예를 도시한다.
일 실시 예에 따른 3차원 모델 처리 장치(300)는, 3차원 모델(810) 상에 3차원 텍스트 데이터 세트(811)를 위치 정렬할 수 있다.
도 8a에 도시된 바와 같이, 일 실시 예에 따른 3차원 모델 처리 장치(300)는, 복수의 문자들에 대응하는 3차원 텍스트 데이터 세트(811)가 3차원 모델(810) 상에 잘 결합되어 있는 지 여부를 판단할 수 있다. 3차원 모델 처리 장치(300)는, 3차원 텍스트 데이터 세트(811)에 포함되는 복수의 문자들 각각에 대응하는 3차원 텍스트 데이터가 3차원 모델(810) 상에 잘 결합되어 있는 지 여부를 판단할 수 있다.
3차원 모델 처리 장치(300)는, 각 문자를 나타내는 3차원 텍스트 데이터에 오프셋을 적용하고, 오프셋이 적용된 3차원 텍스트 데이터가 3차원 모델(810)과 교차하는 지 여부에 기초하여, 3차원 텍스트 데이터가 3차원 모델(810) 상에 잘 결합되어 있는 지 여부를 판단할 수 있다.
3차원 모델 처리 장치(300)는, 3차원 텍스트 데이터 세트(811)에 포함되는 3차원 텍스트 데이터와 3차원 모델이 결합 가능한 지 여부에 기초하여, 화면 상에 표시되는 3차원 텍스트 데이터의 색, 모양, 또는 밝기 중 적어도 하나를 결정할 수 있다.
예를 들어, 도 8a에 도시된 바와 같이, 일 실시 예에 따른 3차원 모델 처리 장치(300)는, 3차원 텍스트 데이터 세트(811)에 포함되는 모든 3차원 텍스트 데이터가 3차원 모델(810)과 결합 가능하다고 판단하고 모든 3차원 텍스트 데이터의 색을 제1 색(예를 들어, 파란색)으로 결정할 수 있다.
일 실시 예에 따른 3차원 모델 처리 장치(300)는, 사용자 입력에 기초하여, 3차원 텍스트 데이터 세트(811)를 다른 위치로 이동할 수 있다.
도 8b에 도시된 바와 같이, 일 실시 예에 따른 3차원 모델 처리 장치(300)는, 3차원 텍스트 데이터 세트(811)를 위쪽 방향으로 이동할 수 있다.
3차원 텍스트 데이터 세트(811)의 위치가 이동함에 따라, 문자 “l”과 문자 “d”에 대응하는 3차원 텍스트 데이터(813, 815)의 상단 끝 부분이 3차원 모델(810)과 접촉하지 않게 될 수 있다.
따라서, 3차원 텍스트 데이터 세트(811)의 위치가 이동함에 따라, 일 실시 예에 따른 3차원 모델 처리 장치(300)는, 3차원 텍스트 데이터 세트(811)에 포함되는 일부 3차원 텍스트 데이터(813, 815)가 3차원 모델(820)과 결합 가능하지 않다고 판단할 수 있다.
3차원 모델 처리 장치(300)는, 복수의 문자들에 대응하는 3차원 텍스트 데이터 세트(811) 중에서 일부 문자들에 대응하는 3차원 텍스트 데이터(813, 815)가, 오프셋을 적용하더라도 3차원 모델(820)과 교차하지 않는다고 판단할 수 있다. 3차원 모델 처리 장치(300)는, 3차원 텍스트 데이터(813, 815)가 3차원 모델(810)과 결합 가능하지 않는 다는 판단에 기초하여, 3차원 텍스트 데이터(813, 815)의 색상을 상이하게 표시할 수 있다.
일 실시 예에 따른 3차원 모델 처리 장치(300)는, 일부 3차원 텍스트 데이터(813, 815)의 색을 제2 색(예를 들어, 주황색)으로 결정할 수 있다. 예를 들어, 3차원 모델 처리 장치(300)는, 3차원 모델 상에 잘 결합되는 것으로 판단되는 3차원 텍스트 데이터는 파란색으로 표시하고, 3차원 모델 상에 잘 결합되지 않는다고 판단되는 3차원 텍스트 데이터는 주황색으로 표시할 수 있다.
도 8b에는 결합 가능하지 않다고 판단되는 3차원 텍스트 데이터의 색만을 변경하는 경우를 예로 들어 도시하였으나, 본 개시의 다양한 실시 예들은 도 8a 및 도 8b에 도시된 예에 제한되지 않는다. 구현에 따라서 다양한 방식을 통해, 3차원 텍스트 데이터가 3차원 모델에 결합 가능한 지 여부에 대한 정보가 제공될 수 있다.
예를 들어, 3차원 모델 처리 장치(300)는, 3차원 텍스트 데이터 세트에 포함되는 적어도 일부 3차원 텍스트 데이터가 3차원 모델과 결합이 가능하지 않다고 판단되는 경우, 3차원 텍스트 데이터 세트에 포함되는 모든 3차원 텍스트 데이터의 색을 변경할 수 있다. 그리고, 3차원 모델 처리 장치(300)는, 결합이 가능하지 않다고 판단되는 적어도 일부 3차원 텍스트 데이터를 나머지 3차원 텍스트 데이터와 상이하게 표시할 수 있다. 예를 들어, 3 차원 모델 처리 장치(300)는, 결합이 가능하지 않다고 판단되는 적어도 일부 3차원 텍스트 데이터를 굵게(bold) 표시할 수 있다.
일 실시 예에 따른 3차원 모델 처리 장치(300)는, 상술한 과정을 통해, 텍스트가 추가된 3차원 모델을 획득할 수 있다.
도 9는 일 실시 예에 따른 3차원 모델 처리 장치가 출력하는 텍스트가 추가된 3차원 모델의 예를 도시한다.
일 실시 예에 따른 3차원 모델 처리 장치(300)는, 3차원 텍스트 데이터와 3차원 모델이 결합 가능한 경우, 텍스트가 추가된 3차원 모델을 획득할 수 있다. 3차원 모델 처리 장치(300)는, 3차원 모델 상에 소정 오프셋이 적용된 상기 3차원 텍스트 데이터를 결합함으로써, 도 9에 도시된 바와 같이 텍스트가 추가된 3차원 모델을 획득할 수 있다.
일 실시 예에 따른 3차원 모델 처리 장치(300)는, 3차원 모델 상에 텍스트를 추가함에 있어서, 추가되는 문자 별로 해당 문자에 대응하는 3차원 텍스트 데이터가 3차원 모델과 결합 가능한 지 여부를 판단하여 표시할 수 있다.
더 나아가, 일 실시 예에 따른 3차원 모델 처리 장치(300)는 사용자가 입력한 문자에 대응하는 3차원 텍스트 데이터가 3차원 모델과 결합 가능하지 않은 경우, 결합 가능하지 않다는 정보를 표시할 뿐만 아니라, 사용자가 입력한 문자가 3차원 모델에 추가되지 않도록 할 수 있다. 따라서, 사용자는, 3차원 모델과 결합 가능한 위치에 3차원 텍스트 데이터를 추가하기 위해서, 문자를 다시 입력하거나 3차원 텍스트 데이터의 위치를 변경할 수 있다. 3차원 모델 처리 장치(300)는, 3차원 모델과 결합이 불가능한 텍스트의 경우 추가되지 않도록 하여, 3차원 모델(320)에 대응되는 부분으로부터 3차원 텍스트 데이터(321)에 대응하는 부분의 적어도 일부가 분리되어 3차원 프린팅 되는 문제를 방지할 수 있다.
도 10은 일 실시 예에 따른 3차원 모델 처리 장치의 블록도를 도시한다.
도 10에 도시된 3차원 모델 처리 장치(300)는, 본 개시의 다양한 실시 예들에 따른 3차원 모델 처리 방법을 수행할 수 있으며, 도 1 내지 도 9에 대한 설명이 적용될 수 있다. 따라서, 상술한 바와 중복되는 내용은 생략한다.
일 실시 예에 따른 3차원 모델 처리 장치(300)는 3차원 스캔 장치 등의 외부 장치 또는 외부 서버와 유선 또는 무선 통신 네트워크를 통하여 연결되며, 대상체에 대한 3차원 모델을 획득할 수 있다.
3차원 모델 처리 장치(300)는, 획득된 3차원 모델에 기초하여, 대상체에 대한 3차원 영상을 생성, 처리, 디스플레이 및/또는 전송할 수 있는 모든 전자 장치가 될 수 있다. 본 개시의 다양한 실시 예들에 따른 3차원 모델 처리 장치(300)는 고정형 단말이거나 이동형 단말일 수 있다. 3차원 모델 처리 장치(300)는, 예를 들어, 스마트 폰(smart phone), 랩탑 컴퓨터, 데스크탑 컴퓨터, PDA, 태블릿 PC 등의 컴퓨팅 장치가 될 수 있으며, 이에 한정되지 않는다.
도 10을 참조하면, 3차원 모델 처리 장치(300)는 프로세서(310), 디스플레이(320), 통신 인터페이스(330), 사용자 입력부(340), 및 메모리(350)를 포함할 수 있다.
일 실시 예에 따른 프로세서(310)는 적어도 하나의 인스트럭션을 수행하여, 의도하는 동작을 수행하도록 3차원 모델 처리 장치(300)를 제어한다. 적어도 하나의 인스트럭션은 프로세서(310) 내에 포함되는 내부 메모리(미도시) 또는 별도의 메모리(350) 내에 저장되어 있을 수 있다.
일 실시 예에 따른 프로세서(310)는 적어도 하나의 인스트럭션을 수행하여, 의도하는 동작을 수행하도록 3차원 모델 처리 장치(300) 내부에 포함되는 적어도 하나의 구성들을 제어할 수 있다. 따라서, 프로세서(310)가 소정 동작을 수행하는 경우를 예로 들어 설명하더라도, 3차원 모델 처리 장치(300)에 포함하는 적어도 하나의 구성들이 소정 동작을 수행하도록 프로세서(310)가 적어도 하나의 구성들을 제어하는 것을 의미할 수 있다.
일 실시 예에 따른 프로세서(310)는 3차원 모델 처리 장치(300)의 외부에서부터 입력되는 신호 또는 데이터를 저장하거나, 3차원 모델 처리 장치(300)에서 수행되는 다양한 작업에 대응되는 저장 영역으로 사용되는 RAM(미도시), 3차원 모델 처리 장치(300)의 제어를 위한 제어 프로그램 및/또는 복수개의 인스트럭션이 저장된 ROM(미도시) 및 적어도 하나의 인스트럭션을 실행하는 적어도 하나의 내부의 프로세서(미도시)를 포함할 수 있다.
또한, 프로세서(310)는 비디오에 대응되는 그래픽 처리를 위한 그래픽 프로세서(Graphic Processing Unit, 미도시)를 포함할 수 있다. 또한, 프로세서(310)는 코어(core, 미도시)와 GPU(미도시)를 통합한 SoC(System On Chip)로 구현될 수 있다.
개시된 실시 예에서, 프로세서(310)는 구강에 대한 3차원 모델을 렌더링함으로써 영상을 생성할 수 있다. 예를 들어, 3차원 모델은, 복수의 치아들, 치은, 및 인공 구조물 중 적어도 하나를 포함하는 구강의 표면 형상 정보를 포함할 수 있다.
디스플레이(320)는 프로세서(310)에 제어에 따라서 소정 화면을 디스플레이 할 수 있다. 구체적으로, 디스플레이(320)는 3차원 모델을 포함하는 사용자 인터페이스 화면을 디스플레이 할 수 있다. 또는, 디스플레이(320)는 대상체에 대한 진단 및 치료와 관련되는 정보를 포함하는 사용자 인터페이스 화면을 디스플레이 할 수 있다.
통신 인터페이스(330)는 적어도 하나의 외부 전자 장치(미도시)또는 서버(미도시)와 유선 또는 무선 통신 네트워크를 통하여 통신을 수행할 수 있다.
사용자 입력부(340)는 3차원 모델 처리 장치(300)를 제어하기 위한 사용자 입력을 수신할 수 있다. 사용자 입력부(340)는 사용자의 터치를 감지하는 터치 패널, 사용자의 푸시 조작을 수신하는 버튼, 사용자 인터페이스 화면 상의 일 지점을 지칭 또는 선택하기 위한 마우스(mouse) 또는 키보드(key board) 등을 포함하는 사용자 입력 디바이스를 포함할 수 있으나 이에 제한되지 않는다.
또한, 사용자 입력부(340)는 음성 인식을 위한 음성 인식 장치(미도시)를 포함할 수 있다. 예를 들어, 음성 인식 장치(미도시)는 마이크가 될 수 있으며, 음성 인식 장치는 사용자의 음성 명령 또는 음성 요청을 수신할 수 있다. 그에 따라서, 프로세서(310)는 음성 명령 또는 음성 요청에 대응되는 동작이 수행되도록 제어할 수 있다.
메모리(350)는 프로세서(310)가 실행하는 적어도 하나의 인스트럭션을 저장할 수 있다. 또한, 메모리(350)는 프로세서(310)가 실행하는 적어도 하나의 프로그램을 저장하고 있을 수 있다. 메모리(350)는 외부 장치 또는 외부 서버로부터 수신되는 데이터(예를 들어, 대상체 스캔을 통하여 획득된 로우 데이터, 2차원 영상 데이터, 3차원 모델 등)를 저장할 수 있다. 메모리(350)는 대상체를 3차원적으로 나타내는 대상체 영상을 저장할 수 있다.
본 개시의 일 실시 예에 따른 프로세서(310)는, 메모리(350)에 저장된 프로그램을 실행함으로써 3차원 모델 처리 장치(300)의 전체적인 동작을 제어할 수 있다.
프로세서(310)가 3차원 모델 상에 텍스트를 추가하는 구체적인 방법에 대해서는 도 4에 대한 설명이 적용될 수 있고 중복되는 설명은 생략한다.
일 실시 예에 따른 프로세서(310)는, 내부 메모리 또는 외부 디바이스로부터 적어도 하나의 문자에 대응하는 3차원 텍스트 데이터를 획득할 수 있다. 프로세서(310)는, 적어도 하나의 문자를 입력하는 사용자 입력을 수신하고, 사용자 입력에 기초하여 적어도 하나의 문자를 나타내는 3차원 텍스트 데이터를 획득할 수 있다.
일 실시 예에 따른 프로세서(310)는, 적어도 하나의 문자에 대응하는 사용자 입력을 수신하고, 적어도 하나의 문자에 대응하는 윤곽선(contour) 데이터를 획득할 수 있다. 프로세서(310)는, 윤곽선 데이터에 포함되는 복수의 제1 정점들을 연결함으로써 2차원 메쉬 데이터를 획득할 수 있다. 프로세서(310)는, 2차원 메쉬 데이터를 제1 면으로 포함하고, 제1 면으로부터 소정 깊이만큼 이격된 제2 면을 포함하는 3차원 메쉬 데이터를 3차원 텍스트 데이터로서 획득할 수 있다.
일 실시 예에 따른 프로세서(310)는, 사용자 입력부(340)을 통해, 복수의 문자들을 포함하는 제1 문자열에 대응하는 사용자 입력을 수신할 수 있다. 프로세서(310)는, 제1 문자열에 포함되는 각 문자에 대응하는 윤곽선 데이터를 획득할 수 있다. 프로세서(310)는, 각 문자에 대응하는 윤곽선 데이터에 포함되는 복수의 제1 정점들을 연결함으로써 2차원 메쉬 데이터를 획득할 수 있다. 프로세서(310)는, 제1 문자열에 포함되는 각 문자에 대응하는 3차원 텍스트 데이터를 포함하는, 3차원 텍스트 데이터 세트를 획득할 수 있다.
일 실시 예에 따른 프로세서(310)는, 3차원 텍스트 데이터와 3차원 모델을 화면 상에 표시하도록 디스플레이(320)를 제어할 수 있다.
일 실시 예에 따른 프로세서(310)는, 3차원 모델을 렌더링 하여 디스플레이(320)의 화면 상에 표시할 수 있다. 프로세서(310)는, 3차원 모델이 표시된 화면 상에, 사용자에 의해 입력된 적어도 하나의 문자에 대응하는 3차원 텍스트 데이터를 추가로 표시하도록 디스플레이(320)를 제어할 수 있다.
일 실시 예에 따른 프로세서(310)는, 사용자 입력 또는 3차원 텍스트 데이터로부터 3차원 모델의 표면까지의 거리 중 적어도 하나에 기초하여, 3차원 공간 내에서 3차원 텍스트 데이터가 배치될 위치를 결정할 수 있다. 일 실시 예에 따른 프로세서(310)는, 3차원 텍스트 데이터의 X축 좌표값 및 Y축 좌표값을 결정할 수 있다. 일 실시 예에 따른 3차원 모델 처리 장치(300)는, 결정된 X축 좌표값 및 Y축 좌표값에 기초하여, 3차원 모델에 근접하여 위치하도록 3차원 텍스트 데이터의 Z축 좌표값을 결정할 수 있다.
일 실시 예에 따른 프로세서(310)는, 3차원 모델 상에 텍스트가 양각으로 입력되는 지 또는 음각으로 입력되는 지 여부에 기초하여 3차원 텍스트 데이터의 Z축 좌표값을 결정할 수 있다.
일 예로서, 3차원 모델 상에 텍스트가 양각으로 입력되는 경우, 프로세서(310)는, 3차원 텍스트 데이터의 제1 면과 제2 면이 3차원 모델의 외부에 위치하도록 3차원 텍스트 데이터의 위치를 결정할 수 있다. 프로세서(310)는, 3차원 텍스트 데이터의 제2 면에 포함된 정점들로부터 3차원 모델의 표면까지의 연직 거리들의 합이 최소인, 3차원 텍스트 데이터의 위치를 결정할 수 있다.
다른 예로서, 3차원 모델 내에 텍스트가 음각으로 입력되는 경우, 프로세서(310)는, 3차원 텍스트 데이터의 제1 면과 제2 면이 3차원 모델의 내부에 위치하도록 3차원 텍스트 데이터의 위치를 결정할 수 있다. 프로세서(310)는, 3차원 텍스트 데이터의 제2 면에 포함된 정점들로부터 3차원 모델의 표면까지의 연직 거리들의 합이 최소인, 3차원 텍스트 데이터의 위치를 결정할 수 있다.
또한, 프로세서(310)는, 3차원 텍스트 데이터의 노멀(normal) 벡터와 3차원 모델의 노멀 벡터에 기초하여, 3차원 텍스트 데이터의 각도를 결정할 수 있다.
일 실시 예에 따른 프로세서(310)는, 3차원 텍스트 데이터와 3차원 모델이 결합 가능한 지를 판단할 수 있다.
일 실시 예에 따른 프로세서(310)는, 소정 오프셋이 적용된 3차원 텍스트 데이터와 3차원 모델의 교차 여부에 기초하여, 3차원 텍스트 데이터와 3차원 모델이 결합 가능한 지를 판단할 수 있다. 오프셋이 적용된 3차원 텍스트 데이터는, 오프셋만큼 깊이가 추가된 3차원 텍스트 데이터를 포함할 수 있다.
일 실시 예에 따른 프로세서(310)는, 오프셋이 적용된 3차원 텍스트 데이터를 획득하기 위하여, 3차원 텍스트 데이터의 제2 면에 포함되는 제2 정점을 소정 오프셋만큼 이동시킬 수 있다. 프로세서(310)는, 3차원 텍스트 데이터의 제1 면의 제1 정점과 이동된 제2 정점을 연결하는 라인을 결정할 수 있다. 프로세서(310)는, 라인과 3차원 모델의 표면이 교차하는 지 여부를 판단할 수 있다. 프로세서(310)는, 3차원 텍스트 데이터의 제1 면의 제1 정점들과 소정 오프셋만큼 이동된 제2 정점들을 연결하는 라인들 중에서, 3차원 모델의 표면과 교차하는 라인들의 개수가 기준 값 이상인 지 여부를 판단하고, 판단 결과에 기초하여 3차원 텍스트 데이터와 3차원 모델이 결합 가능한 지를 판단할 수 있다. 예를 들어, 프로세서(310)는, 3차원 텍스트 데이터의 제1 면의 제1 정점들과 소정 오프셋만큼 이동된 제2 정점들을 연결하는 모든 라인들이 3차원 모델의 표면과 교차하는 경우, 3차원 텍스트 데이터와 3차원 모델이 결합 가능하다고 판단할 수 있다.
일 실시 예에 따른 프로세서(310)는, 판단 결과를 화면 상에 표시하도록 디스플레이(320)를 제어할 수 있다.
일 실시 예에 따른 프로세서(310)는, 3차원 텍스트 데이터와 3차원 모델이 결합 가능한 지 여부에 기초하여, 화면 상에 표시되는 3차원 텍스트 데이터의 색, 모양, 또는 밝기 중 적어도 하나를 결정할 수 있다.
일 실시예에 따른 프로세서(310)는, 3차원 텍스트 데이터의 제1 면의 제1 정점들과 소정 오프셋만큼 이동된 제2 정점들을 연결하는 라인들 중에서, 3차원 모델의 표면과 교차하는 라인들의 개수에 기초하여, 3차원 텍스트 데이터의 색, 모양, 또는 밝기 중 적어도 하나를 결정할 수 있다.
예를 들어, 프로세서(310)는, 3차원 텍스트 데이터의 제1 면의 제1 정점들과 소정 오프셋만큼 이동된 제2 정점들을 연결하는 라인들이 3차원 모델의 표면과 모두 교차하는 경우, 3차원 텍스트 데이터의 색상을 녹색으로 결정할 수 있다. 프로세서(310)는, 제1 정점들과 소정 오프셋만큼 이동된 제2 정점들을 연결하는 라인들이 3차원 모델의 표면과 모두 교차하지는 않지만 기준 값 이상 교차하는 경우, 3차원 텍스트 데이터의 색상을 연한 녹색으로 결정할 수 있다. 프로세서(310)는, 제1 정점들과 소정 오프셋만큼 이동된 제2 정점들을 연결하는 라인들이 3차원 모델의 표면과 적어도 하나는 교차하지만 기준 값 미만으로 교차하는 경우, 3차원 텍스트 데이터의 색상을 주황색으로 결정할 수 있다. 프로세서(310)는, 제1 정점들과 소정 오프셋만큼 이동된 제2 정점들을 연결하는 라인들이 3차원 모델의 표면과 하나도 교차하지 않는 경우, 3차원 텍스트 데이터의 색상을 빨간색으로 결정할 수 있다.
일 실시 예에 따른 프로세서(310)는, 3차원 텍스트 데이터와 3차원 모델이 결합 가능한 경우, 텍스트가 추가된 3차원 모델을 획득할 수 있다. 3 프로세서(310)는, 3차원 모델 상에 소정 오프셋이 적용된 상기 3차원 텍스트 데이터를 결합하거나, 3차원 모델로부터 소정 오프셋이 적용된 3차원 텍스트 데이터에 대응하는 데이터를 삭제함으로써, 텍스트가 추가된 3차원 모델을 획득할 수 있다.
상술한 본 개시의 다양한 실시 예들에 따른 3차원 모델 처리 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 또한, 본 개시의 실시 예에 따르면, 3차원 모델 획득 방법을 실행하는 적어도 하나의 인스트럭션을 포함하는 하나 이상의 프로그램이 기록된 컴퓨터로 읽을 수 있는 저장 매체가 제공될 수 있다.
상기 컴퓨터 판독 가능 저장 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 여기서, 컴퓨터 판독 가능 저장 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 구성된 하드웨어 장치가 포함될 수 있다.
여기서, 기기로 읽을 수 있는 저장매체는, 비일시적(non-transitory) 저장매체의 형태로 제공될 수 있다. 여기서, '비일시적 저장매체'는저장 매체가 실재(tangible)하는 장치임을 의미할 수 있다. 또한, '비일시적 저장매체'는 데이터가 임시적으로 저장되는 버퍼를 포함할 수 있다.
일 실시 예에 따르면, 본 문서에 개시된 다양한 실시 예들에 따른 구강 영상의 디스플레이 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예: compact disc read only memory (CD-ROM))의 형태로 배포될 수 있다. 또는, 어플리케이션 스토어를 통해 또는 두개의 사용자 장치들(예: 스마트폰들) 간에 직접, 온라인으로 배포(예: 다운로드 또는 업로드)될 수 있다.
이상에서 실시 예들에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속한다.