KR20140098592A - 서피스 생성시 메쉬의 내면과 외면 판단 및 변경 장치와 그 방법 - Google Patents
서피스 생성시 메쉬의 내면과 외면 판단 및 변경 장치와 그 방법 Download PDFInfo
- Publication number
- KR20140098592A KR20140098592A KR1020130011442A KR20130011442A KR20140098592A KR 20140098592 A KR20140098592 A KR 20140098592A KR 1020130011442 A KR1020130011442 A KR 1020130011442A KR 20130011442 A KR20130011442 A KR 20130011442A KR 20140098592 A KR20140098592 A KR 20140098592A
- Authority
- KR
- South Korea
- Prior art keywords
- face
- normal vector
- vector
- mesh
- vertex
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/20—Finite element generation, e.g. wire-frame surface description, tesselation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/60—Analysis of geometric attributes
- G06T7/66—Analysis of geometric attributes of image moments or centre of gravity
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Geometry (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Computer Graphics (AREA)
- Software Systems (AREA)
- Processing Or Creating Images (AREA)
- Image Generation (AREA)
Abstract
본 발명은 메쉬자동생성기능을 이용해 생성된 메쉬 모델에서 각 삼각형 메쉬의 버텍스 인덱스 순서를 분석하여 내면과 외면을 판단하며, 또한 상기 각 삼각형 메쉬의 법선 방향을 분석하여 내면과 외면을 판단하고, 또한 상기 메쉬 모델의 무게중심에서 각 버텍스로 향한 벡터와 그 버텍스를 포함한 메쉬 면의 법선 사이의 각도를 분석하여 내면과 외면을 판단하여 상기 판단된 내면과 외면에 따라 각 삼각형 메쉬의 버텍스 인덱스 순서를 변경함으로써 내면과 외면을 나타내는 명암 표현을 정확하게 변경 표시할 수 있도록 하는 효과가 있으며, 또한 상기 내면과 외면을 변경하는 시간을 단축시킴으로써 사용자의 편의성을 향상시키는 효과가 있는 서피스 생성시 메쉬의 내면과 외면 판단 및 변경 장치와 방법에 관한 것이다.
Description
본 발명은 서피스 생성시 메쉬의 내면과 외면 판단 및 변경 장치와 방법에 관한 것으로, 더욱 상세하게는 메쉬자동생성기능을 이용해 생성된 메쉬 모델에서 서피스(surface)를 구성하는 각 페이스(면)가 내면인지 혹은 외면인지를 판단하고 변경할 수 있도록 하는 서피스 생성시 메쉬의 내면과 외면 판단 및 변경 장치와 방법에 관한 것이다.
최근 방송, 영화, 특수효과, 게임 등 다양한 분야에서 3차원 모델링의 중요성과 활용도가 증가하고 있으며, 통상적으로 상기 3차원 모델링은 들로네 삼각화(Delaunay Triangulation)에 의한 삼각형 메쉬 모델을 많이 이용하고 있다.
이를 본 발명에서는 3차원 메쉬 모델이라고 하는데, 상기 3차원 메쉬 모델은 3차원 공간에서 3차원 평면으로 이루어진 다각형(polygon)의 집합으로서, 상기와 같이 3차원 표면을 삼각형으로만 표현한 3차원 메쉬 모델을 삼각형 메쉬라고 부르며, 사각형으로만 표현한 3차원 메쉬 모델을 사각형 메쉬라고 부른다.
상기 3차원 메쉬 표면을 표현하는데 여러 종류의 다각형을 동시에 이용할 수도 있지만, 복잡도가 높아지기 때문에 주로 삼각형 메쉬를 많이 이용한다.
상기와 같이 3차원 메쉬 모델은 3차원 공간에서 수많은 삼각형 형상의 3차원 점으로 이루어지는데, 이 삼각형 형상을 이루는 3차원 점을 꼭짓점(vertex) 또는 버텍스(mesh point)라고 한다. 또한 두 개의 꼭짓점을 연결하여 생성된 직선의 연결점을 모서리(edge) 또는 메쉬 라인(mesh line)이라 하고, 세 개 이상의 모서리를 연결하여 생성된 표면을 면 또는 페이스(face)라고 한다.
그리고 상기와 같이 메쉬 단위로 모델링을 수행하는 것을 메쉬 모델링이라고 하는데, 상기 메쉬 모델링을 통해서 객체(Object)의 윤곽이나 명암을 표현할 때 더욱 세밀하게 처리할 수 있도록 하는 장점이 있기 때문에 많이 이용한다. 상기 메쉬 모델링은 전용 메쉬자동생성기능을 이용해서 자동으로 수행할 수 있다.
도 1은 종래의 메쉬자동생성기능을 이용하여 토끼를 모델링한 결과를 보인 예시도로서, 이에 도시된 바와 같이 토끼(bunny)의 표면이 다수의 삼각형 메쉬로 구성되어 있음을 알 수 있다. 여기서 상기 표면을 구성하는 각 삼각형 메쉬는 검정색 또는 흰색으로 그 명암이 표시되는데, 흰색으로 표시되어야 할 상당히 많은 메쉬가 검정색으로 표시되어 있는 상태이다. 즉 종래의 메쉬자동생성기능 이용해서 모델링을 수행할 경우 내면(검정색으로 표시되는 면)과 외면(흰색으로 표시되는 면)을 정확히 판단하지 못하는 문제점이 있다.
따라서 사용자는 메쉬자동생성기능을 이용한 모델링 후 잘못 표시된 내면과 외면을 시각적으로 판단하여 매뉴얼 방식으로 내면과 외면을 직접 변경하는 작업을 수행하여 도 2에 도시된 바와 같이 단계적으로 토끼 표면의 내면과 외면을 정확히 판단하여 변경해줌으로써 최종적으로는 도 3에 도시된 바와 같은 결과를 얻게 된다. 그러나 상기와 같이 서피스(surface)를 형성하는 모든 메쉬의 내면과 외면을 사용자가 직접 판단하고 변경하는 작업은 시간이 많이 소요되고, 사용자를 번거롭게 하는 문제점이 있으며, 또한 사용자의 피로도가 증가할 경우 판단력이나 정확성이 떨어질 수 있는 문제점이 있다.
본 발명은 상기와 같은 문제점을 해결하기 위해 창작된 것으로서, 메쉬자동생성기능을 이용해 생성된 메쉬 모델에서 서피스를 구성하는 각 페이스(또는 메쉬)가 내면인지 혹은 외면인지를 판단하고 변경할 수 있도록 하는 서피스 생성 시 메쉬의 내면과 외면 판단 및 변경 장치와 방법을 제공하는데 그 목적이 있다.
또한 본 발명은 메쉬자동생성기능을 이용해 생성된 메쉬 모델에서 각 삼각형 메쉬의 버텍스 인덱스 순서를 분석하여 내면과 외면을 판단할 수 있도록 하는 서피스 생성 시 메쉬의 내면과 외면 판단 및 변경 장치와 방법을 제공하는데 그 목적이 있다.
또한 본 발명은 메쉬자동생성기능을 이용해 생성된 메쉬 모델에서 각 삼각형 메쉬의 법선 방향을 분석하여 내면과 외면을 판단할 수 있도록 하는 서피스 생성 시 메쉬의 내면과 외면 판단 및 변경 장치와 방법을 제공하는데 그 목적이 있다.
또한 본 발명은 메쉬자동생성기능을 이용해 생성된 메쉬 모델의 무게중심에서 각 버텍스로 향한 벡터와 그 버텍스를 포함한 메쉬 면의 법선 사이의 각도를 분석하여 내면과 외면을 판단할 수 있도록 하는 서피스 생성 시 메쉬의 내면과 외면 판단 및 변경 장치와 방법을 제공하는데 그 목적이 있다.
또한 본 발명은 메쉬자동생성기능을 이용해 생성된 메쉬 모델에서 각 삼각형 메쉬의 버텍스 인덱스 순서를 변경함으로써 내면과 외면을 변경할 수 있도록 하는 서피스 생성 시 메쉬의 내면과 외면 판단 및 변경 장치와 방법을 제공하는데 그 목적이 있다.
본 발명의 일 측면에 따른 서피스 생성시 메쉬의 내면과 외면 판단 및 변경 장치는 메쉬 모델링된 객체의 서피스를 구성하는 다수의 페이스 중 내외면의 판단을 원하는 적어도 어느 하나의 페이스를 선택하는 페이스 선택부; 상기 선택된 페이스에 수직인 법선벡터를 생성하는 법선벡터 생성부; 상기 생성된 법선벡터의 방향을 임의의 기준 벡터의 방향과 비교하여 내면 또는 외면의 방향이 동일한 방향인지 혹은 동일하지 않은 방향인지 판단하는 법선벡터의 내면 또는 외면 방향 판단부; 및 상기 법선벡터의 방향이 상기 기준 벡터의 방향과 다를 경우, 그 법선벡터의 방향을 상기 기준 벡터의 방향과 일치되게 변경하는 법선벡터의 내면 또는 외면 방향 변경부;를 포함하고, 상기 메쉬 모델링된 객체의 무게중심으로부터 상기 선택된 페이스에 포함된 다수의 버텍스 중 어느 하나의 버텍스를 향하는 중심벡터를 생성하는 중심벡터 생성부;를 더 포함하며, 상기 법선벡터 생성부는, 상기 선택된 페이스를 구성하는 임의의 두 개의 모서리(edge)로 생성되는 두 개의 벡터를 외적하여 그 페이스에 수직인 법선벡터를 생성하고, 상기 법선벡터의 내면 또는 외면 방향 판단부는, 상기 기준 벡터와 상기 법선 벡터를 내적하여 그 값이 0보다 작은 경우에 상기 두 벡터의 내면 또는 외면의 방향이 동일하지 않은(또는 90도보다 큰)것으로 판단하고, 그 값이 0보다 크거나 같은 경우에 상기 두 벡터의 내면 또는 외면의 방향이 동일(또는 90도보다 작은)한 것으로 판단하며, 상기 법선벡터 내면 또는 외면의 방향 변경부는, 상기 법선벡터의 방향을 변경할 페이스의 버텍스 인덱스를 오른손 법칙에 적용하여 상기 버텍스 인덱스를 순서대로 오른손으로 감아쥐었을 때 그 엄지손가락이 향하는 방향이 내면 혹은 외면 방향을 향하는 순서로 변경하고, 상기 페이스 선택부는, 적어도 하나 이상의 페이스를 동시에 선택, 연속해서 선택, 혹은 이전에 선택된 페이스와 인접한 페이스를 선택하는 조건을 포함하는 특정한 조건을 이용한 선택 중 적어도 어느 한가지로 선택하며, 상기 법선벡터의 내면 또는 외면 방향 판단부는, 상기 법선벡터가 향하는 방향에 따라, 그 법선벡터가 외면을 향하면 해당 페이스도 외면인 것으로 판단하고, 그 법선벡터가 내면을 향하면 해당 페이스도 내면인 것으로 판단하고, 상기 기준 벡터는, 상기 메쉬 모델링된 객체의 무게중심으로부터 상기 선택된 페이스의 버텍스로 향하는 중심벡터이거나, 먼저 선택한 임의의 페이스에서 생성된 법선벡터인 것을 특징으로 하며, 상기 중심벡터는 항상 외면을 향하는 벡터이고, 상기 법선벡터는 내면을 향하거나 외면을 향하는 벡터 중 하나이고, 상기 법선벡터의 내면 또는 외면 방향 변경부는, 상기 기준 벡터의 방향이 잘못 설정되었을 경우, 상기 기준 벡터 및 그 기준 벡터의 내면 또는 외면의 방향과 동일하도록 설정된 모든 법선벡터들의 방향을 일괄적으로 반대 방향을 향하도록 변경하는 것을 특징으로 한다.
본 발명의 일 측면에 따른 서피스 생성시 메쉬의 내면과 외면 판단 및 변경 방법은, 메쉬 모델링된 객체의 내부 무게중심으로부터 상기 객체의 서피스를 구성하는 임의의 페이스를 선택하고 그 페이스에 포함된 어느 하나의 버텍스로 향하는 중심벡터를 생성하는 제1 단계; 상기 선택된 임의의 페이스에 수직인 법선벡터를 생성하는 제2 단계; 상기 중심벡터와 법선벡터의 내적을 산출하는 제3 단계; 및 상기 두 벡터를 내적한 값이 0보다 작으면 그 두 벡터의 내면 또는 외면의 방향이 서로 다른(또는 90도보다 큰) 것으로 판단하고, 상기 법선벡터의 내면 또는 외면의 방향을 변경하여 상기 중심벡터의 내면 또는 외면의 방향과 일치하도록 상기 선택된 페이스의 버텍스 인덱스의 순서를 변경하는 제4 단계;를 포함하고, 상기 제4 단계는, 상기 법선벡터의 내면 또는 외면의 방향을 변경할 페이스의 버텍스 인덱스를 오른손 법칙에 적용하여 상기 버텍스 인덱스를 순서대로 오른손으로 감아쥐었을 때 그 엄지손가락이 향하는 방향이 외면 방향을 향하는 순서로 변경하는 것을 특징으로 하고, 상기 법선벡터가 향하는 내면 또는 외면의 방향에 따라, 그 법선벡터가 외면을 향하면 해당 페이스도 외면인 것으로 판단하고, 그 법선벡터가 내면을 향하면 해당 페이스도 내면인 것으로 판단하는 제5 단계;를 더 포함하는 것을 특징으로 한다.
본 발명의 일 측면에 따른 서피스 생성시 메쉬의 내면과 외면 판단 및 변경 방법은, 메쉬 모델링된 객체의 서피스를 구성하는 다수의 페이스 중 임의의 제1 페이스를 선택하고 그 제1 페이스에 수직인 제1 법선벡터를 생성하는 제6 단계; 상기 객체에서 내면 또는 외면 판단을 원하는 제2 페이스를 선택하고 그 제2 페이스에 수직인 제2 법선벡터를 생성하는 제7 단계; 상기 제1 법선벡터 및 제2 법선벡터의 내적을 구하는 제8 단계; 및 상기 두 벡터를 내적한 값이 0보다 작으면 그 두 벡터의 내면 또는 외면의 방향이 서로 다른(또는 90도보다 큰) 것으로 판단하고, 상기 제2 페이스의 버텍스 인덱스의 순서를 변경하여 상기 제2 법선벡터를 상기 제1 법선벡터의 방향과 일치하도록 변경시키는 제9 단계;를 포함하고, 상기 제9 단계는, 상기 제2 페이스의 버텍스 인덱스의 순서를 오른손 법칙에 적용하여 상기 버텍스 인덱스를 순서대로 오른손으로 감아쥐었을 때 그 엄지손가락이 향하는 내면 또는 외면의 방향이 상기 제1 법선벡터의 내면 또는 외면의 방향과 일치되는 방향으로 향하게 하는 순서로 변경하는 것을 특징으로 하며, 상기 제1 법선벡터의 방향이 잘못 설정되었을 경우, 상기 제1 법선벡터 및 그 제1 법선벡터의 방향과 동일하도록 설정된 제2 법선벡터를 포함한 다른 모든 법선벡터들의 내면 또는 외면의 방향을 일괄적으로 반대 방향을 향하도록 변경하는 제10 단계;를 더 포함하는 것을 특징으로 한다.
본 발명은 메쉬자동생성기능을 이용해 생성된 메쉬 모델에서 각 삼각형 메쉬의 버텍스 인덱스 순서를 분석하여 내면과 외면을 판단하며, 또한 상기 각 삼각형 메쉬의 법선 방향을 분석하여 내면과 외면을 판단하고, 또한 상기 메쉬 모델의 무게중심에서 각 버텍스로 향한 벡터와 그 버텍스를 포함한 메쉬 면의 법선 사이의 각도를 분석하여 내면과 외면을 판단하여 상기 판단된 내면과 외면에 따라 각 삼각형 메쉬의 버텍스 인덱스 순서를 변경함으로써 내면과 외면을 나타내는 명암 표현을 정확하게 변경 표시할 수 있도록 하는 효과가 있으며, 또한 상기 내면과 외면을 변경하는 시간을 단축시킴으로써 사용자의 편의성을 향상시키는 효과가 있다.
도 1은 종래의 메쉬자동생성기능을 이용하여 토끼를 모델링한 결과를 보인 예시도.
도 2 내지 도 3은 상기 도 1에 있어서, 메쉬 모델링된 각 삼각형 메쉬의 내면과 외면을 판단하여 단계적으로 변경하는 과정을 설명하기 위한 예시도.
도 4는 본 발명의 일 실시예에 따른 각 삼각형 메쉬의 기본적 특성을 설명하기 위한 간단한 메쉬 모델링을 보인 예시도.
도 5는 본 발명의 일 실시예에 따라 메쉬 모델링된 객체의 서피스를 구성하는 각 페이스의 내면과 외면을 판단하고 변경하는 방법을 설명하기 위한 예시도.
도 6은 본 발명의 일 실시예에 따라 메쉬 모델링된 객체의 서피스를 구성하는 각 페이스의 내면과 외면을 판단하고 변경하는 장치의 구성을 보인 예시도.
도 7은 상기 도 6에 있어서, 제1 실시예에 따른 방법으로 페이스의 내면과 외면을 판단하고 변경하는 방법을 설명하기 위한 흐름도.
도 8은 상기 도 6에 있어서, 제2 실시예에 따른 방법으로 페이스의 내면과 외면을 판단하고 변경하는 방법을 설명하기 위한 흐름도.
도 2 내지 도 3은 상기 도 1에 있어서, 메쉬 모델링된 각 삼각형 메쉬의 내면과 외면을 판단하여 단계적으로 변경하는 과정을 설명하기 위한 예시도.
도 4는 본 발명의 일 실시예에 따른 각 삼각형 메쉬의 기본적 특성을 설명하기 위한 간단한 메쉬 모델링을 보인 예시도.
도 5는 본 발명의 일 실시예에 따라 메쉬 모델링된 객체의 서피스를 구성하는 각 페이스의 내면과 외면을 판단하고 변경하는 방법을 설명하기 위한 예시도.
도 6은 본 발명의 일 실시예에 따라 메쉬 모델링된 객체의 서피스를 구성하는 각 페이스의 내면과 외면을 판단하고 변경하는 장치의 구성을 보인 예시도.
도 7은 상기 도 6에 있어서, 제1 실시예에 따른 방법으로 페이스의 내면과 외면을 판단하고 변경하는 방법을 설명하기 위한 흐름도.
도 8은 상기 도 6에 있어서, 제2 실시예에 따른 방법으로 페이스의 내면과 외면을 판단하고 변경하는 방법을 설명하기 위한 흐름도.
이하, 첨부된 도면을 참조하여 본 발명에 따른 서피스 생성시 메쉬의 내면과 외면 판단 및 변경 장치와 방법의 일 실시예를 설명한다.
도 4는 본 발명의 일 실시예에 따른 각 삼각형 메쉬의 기본적 특성을 설명하기 위한 간단한 메쉬 모델링을 보인 예시도로서, 이에 도시된 바와 같이 다수의 삼각형 메쉬(또는 페이스)가 결합되어 임의의 객체(예 : 공)가 모델링되어 있으며, 그 객체의 내부 임의의 위치(또는 공간좌표)에 전체 버텍스들의 무게중심이 있다고 가정한다.
여기서 상기 각 삼각형 메쉬(또는 페이스)는 인접한 다른 삼각형 메쉬(또는 페이스)와 버텍스(Vertex)를 공유하게 된다. 예컨대 2개의 삼각형 메쉬를 형성한다고 가정할 경우 총 6개의 버텍스가 필요하지만, 그 2개의 삼각형 메쉬(또는 페이스)가 인접해 있을 경우, 2개의 버텍스를 공유할 수 있으므로 실질적으로 4개의 버텍스만 필요하게 된다.
다시 말해, 도 4에 도시된 바와 같이, 버텍스 (1, 2, 3)으로 구성된 제1 삼각형 메쉬(또는 페이스1)와 그와 인접하여 다른 버텍스 (2, 3, 4)로 구성된 제2 삼각형 메쉬(또는 페이스2)가 형성된다고 가정할 경우, 총 4개의 버텍스 (1, 2, 3, 4) 중 2개의 버텍스 (2, 3)를 공유하여 2개의 삼각형 메쉬(또는 페이스)를 형성될 수 있는 것이다.
이때 상기 버텍스를 이용하여 각 삼각형 메쉬(또는 페이스)(예 : f1, f2)를 형성하기 위해서는 각 버텍스의 순서, 즉 버텍스 인덱스(vertex index)를 설정해줘야 할 필요가 있다. 예컨대 페이스1(f1)의 버텍스 인덱스는 (1, 2, 3)의 순서로 설정하고, 페이스2(f2)의 버텍스 인덱스는 (2, 3, 4)의 순서로 설정할 수 있다. 이때 상기 버텍스 인덱스의 순서는 설명의 편의를 위하여 일 예로서 기재한 것이므로 그 인덱스의 순서는 얼마든지 변경될 수 있다.
실질적으로 종래의 메쉬자동생성기능을 이용하여 메쉬 모델링을 수행할 경우, 들로네 삼각화(Delaunay Triangulation) 알고리즘으로 삼각형 메쉬를 생성하므로 각 삼각형 메쉬(즉 페이스)의 버텍스 인덱스의 순서, 즉 버텍스 인덱스의 순서(예 : 시계방향 또는 반시계방향)가 랜덤하게 생성되는 문제점이 있는 것이다. 상기 버텍스 인덱스의 순서는 페이스의 내면과 외면의 생성에 밀접한 관계가 있는데 상기 버텍스 인덱스의 순서가 랜덤하게 생성되므로 결국 페이스의 내면과 외면이 랜덤하게 결정되는 것이다.
이하, 상기 각 버텍스를 페이스와 구분하여 (v1, v2, v3, v4)로 기재한다.
한편 상기 메쉬 모델링에서 무게중심은 상기 메쉬 모델링된 임의의 객체 내부에 있는 것이므로 그 무게중심에서 임의의 버텍스를 향하여 생성되는 벡터는 밖으로, 즉 외면으로 향하게 된다는 점에 유의한다.
또한 상기 각 삼각형 메쉬(또는 페이스)의 표면에는 수직으로 법선 벡터를 생성할 수 있으며, 상기 법선 벡터는 페이스의 외면으로 향하는 벡터(V1)이거나 페이스의 내면으로 향하는 벡터(V2) 중 하나가 될 수 있다. 이때 상기 법선의 방향(예 : 페이스의 내면 또는 외면)은 상기 버텍스 인덱스의 순서에 따라 오른손 법칙을 적용하여 판단할 수 있다.
예컨대 페이스1(f1)에 수직인 법선 벡터를 생성할 때 버텍스 인덱스의 순서가 (v1, v2, v3)라고 가정할 경우 그 버텍스 인덱스를 오른손 법칙에 적용하면 법선 벡터는 내면을 향하도록 생성된다. 즉, 오른손 법칙에 따라 버텍스 (v1, v2, v3)을 순서대로 감싸면 엄지손가락이 향하는 방향으로 법선이 생성되며, 이때 본 발명에서는 페이스1(f1)을 내측으로 향하는 면, 즉 내면으로 법선 벡터가 생성되는 것으로 판단한다.
반대로 동일한 페이스1(f1)에서 법선 섹터를 생성할 때 버텍스 인덱스의 순서가 (v2, v1, v3)라고 가정할 경우 그 버텍스 인덱스를 오른손 법칙에 적용하면 법선 벡터는 외면을 향하도록 생성된다. 즉, 오른손 법칙에 따라 버텍스 (v2, v1, v3)을 순서대로 감싸면 엄지손가락이 향하는 방향으로 법선이 생성되며, 이때 본 발명에서는 페이스1(f1)을 외측으로 향하는 면, 즉 외면으로 법선 벡터가 생성되는 것으로 판단한다.
여기서 상기 오른손 법칙을 적용하기 위한 버텍스 인덱스의 첫 번째 버텍스는 얼마든지 다른 버텍스로 변경될 수 있으며, 그 다음 버텍스들의 순서에 의해서 법선 벡터의 방향을 판단할 수 있다. 예컨대 버텍스 인덱스가 (v2, v1, v3), (v1, v3, v2) 및 (v3, v2, v1)인 경우에 법선 벡터는 모두 동일하게 외면을 향하여 생성되는 것이다.
이하 상기와 같은 기본적인 특성들을 이용하여 메쉬 모델링된 객체의 각 페이스에 대한 내면과 외면을 판단하는 방법에 대해서 설명한다.
도 5는 본 발명의 일 실시예에 따라 메쉬 모델링된 객체의 서피스를 구성하는 각 페이스의 내면과 외면을 판단하고 변경하는 방법을 설명하기 위한 예시도로서, 이에 도시된 바와 같이 상기 모델링된 객체의 내부 임의의 위치(또는 공간좌표)에 있는 전체 버텍스들의 무게중심으로부터 내면과 외면을 판단하고 싶은 임의의 페이스(예 : f1)에 포함되는 어느 하나의 버텍스(예 : v1)로 향하는 벡터(NC1)를 생성한다고 가정한다. 그리고 상기 무게중심에서 내면과 외면의 판단을 위한 임의의 페이스2(예 : f2)에 포함되는 어느 하나의 버텍스(예 : v4)로 향하는 벡터(NC2)를 생성한다고 가정한다.
이하 본 실시예에서는 상기 무게중심에서 임의의 버텍스로 향하는 벡터(예 : NC1, NC2)를 간단히 중심벡터라고 정의한다.
이때 상기 페이스1(f1)과 페이스2(f2)는 인접하고 있다. 즉, 상기 페이스1(f1)과 페이스2(f2)는 2개의 버텍스를 서로 공유하고 있다. 그러나 상기 페이스1(f1)과 페이스2(f2)가 반드시 인접하고 있어야 하는 것은 아니다.
여기서 만약 상기 무게중심에서 임의의 한 버텍스(예 : v1, v4)로 향하는 벡터(예 : NC1, NC2)와 그 버텍스(예 : v1, v4)를 포함하는 페이스(예 : f1 또는 f2)의 표면에 수직으로 생성된 법선(예 : N1, N2) 사이의 각도가 90도 보다 작으면 그 페이스(예 : f1 또는 f2)의 법선(예 : N1 또는 N2)도 외면으로 향하는 것이므로 페이스(예 : f1 또는 f2)는 외면으로 판단할 수 있다.
본 발명에서 상기 각 페이스(f1 또는 f2)에 수직인 법선 벡터(N1 또는 N2)는 그 페이스(f1 또는 f2)를 구성하는 각기 두 개의 벡터(예 : f1에 포함된 (v2-v1)벡터와 (v3-v1)벡터, f2에 포함된 (v2-v4)벡터와 (v3-v4)벡터)를 외적하여 구할 수 있다. 즉, 페이스1(f1)에 수직인 법선 벡터(N1)는 (v2-v1)벡터와 (v3-v1)벡터를 외적하여 구하고, 페이스2(f2)에 수직인 법선 벡터(N2)는 (v2-v4)벡터와 (v3-v4)벡터를 외적하여 구할 수 있다.
그리고 상기 외적을 통해 구한 각 페이스(예 : f1 또는 f2)의 법선 벡터(예 : N1 또는 N2)와 상기 무게중심에서 상기 각 페이스(예 : f1 또는 f2)에 포함된 어느 하나의 버텍스(v1 또는 v4)로 향하는 중심벡터(예 : NC1 또는 NC2)를 내적하여 두 벡터간의 각을 산출하고, 그 두 벡터의 내적(즉, 중심벡터와 법선벡터의 내적)이 0보다 큰지 혹은 작은지를 판단한다. 즉, 상기 두 벡터(즉, 중심벡터와 법선벡터) 간에 이루는 각을 산출하기 위하여 내적을 사용한다.
예컨대 상기 각 페이스(예 : f1 또는 f2)의 법선 벡터(예 : N1 또는 N2)와 상기 무게중심에서 상기 각 페이스(예 : f1 또는 f2)에 포함된 어느 하나의 버텍스(v1 또는 v4)로 향하는 중심벡터(예 : NC1 또는 NC2)의 내적이 0보다 크면(예 : N1*NC1 > 0, N2*NC2 > 0) 상기 법선 벡터(예 : N1 또는 N2)는 외면으로 향한 것임을 알 수 있으며, 반대로 상기 내적이 0보다 작으면(예 : N1*NC1 < 0, N2*NC2 < 0) 상기 법선 벡터(예 : N1 또는 N2)는 내면으로 향한 것임을 알 수 있다.
다음 상기와 같이 각 페이스에 생성된 각 법선 벡터(예 : N1 또는 N2)의 내적을 통해서 그 법선 벡터(예 : N1 또는 N2)의 방향을 검출할 경우, 그 법선 벡터의 방향(예 : 내면방향 혹은 외면방향)을 이용하여 해당 페이스(예 : f1 또는 f2)의 버텍스 인덱스의 순서를 알 수 있으며, 만약 그 법선 벡터의 방향이 올바르지 않을 경우, 즉 법선 벡터의 방향이 외면을 향해야 하는데 내면을 향하고 있을 경우, 상기 버텍스 인덱스의 순서를 변경하여 법선 벡터의 방향을 내면을 향하도록 변경할 수 있다.
예컨대 상기 페이스1(f1)의 법선 벡터(N1)가 내면을 향하고 있을 경우, 그 법선 벡터(N1)를 내면으로 향하게 하는 버텍스 인덱스의 순서(예 : v1, v2, v3)를 외면으로 향하게 하는 버텍스 인덱스의 순서(예 : v1, v3, v2)로 변경하는 것이다. 이에 따라 상기 페이스1(f1)에서 내면을 향하고 있던 법선 벡터(N1)를 외면으로 향하게 하도록 변경할 수 있게 된다. 즉, 내면으로 설정된 페이스1(f1)을 외면으로 설정 변경하는 것이다.
이하 상기 페이스(예 : f1 또는 f2)의 내면과 외면을 판단하는 다른 방법의 실시예에 대해서 설명한다.
먼저 임의의 페이스(예 : f1)를 기준으로 설정한다.
그리고 상기 기준으로 설정된 페이스1(f1)과 그에 인접한 페이스2(f2)의 법선 벡터(예 : N1, N2)를 각각 생성한 후, 그 두 법선 벡터(예 : N1, N2)를 내적한다. 즉, 상기 두 법선 벡터가 이루는 각을 산출한다.
만약 상기 두 법선 벡터(예 : N1, N2)를 내적한 결과가 0보다 큰 경우(예 : N1* N2 > 0), 페이스1(f1)의 법선 벡터(N1)와 페이스2(f2)의 법선 벡터(N2)가 내면 또는 외면이 같은 방향(또는 같은 면 또는 90도 보다 작은 방향)으로 향하고 있는 것으로 판단할 수 있다. 즉, 두 법선 벡터(예 : N1, N2)가 향하는 내면 또는 외면의 방향이 같으므로 기준으로 설정된 페이스1(f1)의 법선 벡터(N1)가 외면을 향하고 있을 경우에는 페이스2(f2)의 법선 벡터(N2)도 외면을 향하고 있음을 알 수 있다.
이 경우에는 페이스2(f2)의 법선 벡터(N2)의 방향을 변경하지 않는다. 즉, 페이스2(f2)의 버텍스 인덱스의 순서를 변경하지 않고 그대로 유지한다.
그러나 상기 두 법선 벡터(예 : N1, N2)를 내적한 결과가 0보다 작은 경우(예 : N1* N2 < 0), 페이스1(f1)의 법선 벡터(N1)와 페이스2(f2)의 법선 벡터(N2)가 다른 방향으로 향하고 있는 것으로 판단할 수 있다. 즉, 두 법선 벡터(예 : N1, N2)가 향하는 내면 또는 외면의 방향이 다르므로(또는 면이 다르므로 또는 각도가 90도 보다 크므로) 기준으로 설정된 페이스1(f1)의 법선 벡터(N1)가 외면을 향하고 있을 경우에 페이스2(f2)의 법선 벡터(N2)는 반대로 내면을 향하고 있음을 알 수 있다.
이 경우에는 페이스2(f2)의 법선 벡터(N2)의 방향을 상기 기준으로 설정된 페이스1(f1)의 법선 벡터(N1)의 내면 또는 외면의 방향과 동일한 방향이(또는 동일한 면 또는 각도가 90도 보다 작게) 되도록 변경한다. 즉, 상기 페이스1(f1)의 법선 벡터(N1)의 방향이 외면 방향이라고 가정할 경우, 상기 페이스2(f2)의 법선 벡터(N2)의 방향도 내면 방향에서 외면 방향이 되도록 상기 페이스2(f2)의 버텍스 인덱스의 순서를 변경한다.
예컨대 상기 페이스2(f2)의 법선 벡터(N2)가 내면을 향하고 있다고 가정할 경우, 그 법선 벡터(N2)를 내면으로 향하게 하는 버텍스 인덱스의 순서(예 : v3, v2, v4)를 외면으로 향하게 하는 버텍스 인덱스의 순서(예 : v4, v2, v3)로 변경하는 것이다. 이에 따라 상기 페이스2(f2)에서 내면 방향으로 향하고 있던 법선 벡터(N2)를 외면 방향을 향하도록 변경할 수 있게 된다. 즉, 내면으로 설정된 페이스2(f2)를 외면으로 설정 변경하는 것이다.
그리고 사용자가 화면에서 확인 결과, 만약 상기 기준으로 설정된 페이스1(예 : f1)의 법선 벡터(N1)의 방향이 올바르지 않을 경우(예 : 외면 방향이어야 하는데 내면 방향인 경우)에는 그 페이스1(예 : f1)의 법선 벡터(N1) 및 그와 동일한 방향으로 설정된 다른 모든 페이스들의 각 법선 벡터의 방향을 일괄적으로 반대 방향으로 설정 변경한다. 즉, 상기 페이스1(예 : f1)의 버텍스 인덱스 순서 및 그와 동일한 순서(예 : 내면방향 또는 외면방향)로 설정된 다른 모든 페이스들의 법선 벡터가 반대 방향이 되도록 버텍스 인덱스의 순서를 변경함으로써 각 페이스의 내면과 외면을 일괄적으로 간편하게 변경할 수 있도록 한다.
이하 상술한 방법들로 페이스의 내면과 외면을 판단하고 변경하는 장치에 대해서 설명한다.
도 6은 본 발명의 일 실시예에 따라 메쉬 모델링된 객체의 서피스를 구성하는 각 페이스의 내면과 외면을 판단하고 변경하는 장치의 구성을 보인 예시도로서, 이에 도시된 바와 같이 페이스의 내면과 외면의 판단 및 변경 장치는 중심벡터 생성부(110), 페이스 선택부(120), 법선벡터 생성부(130), 법선벡터의 내면 또는 외면 방향 판단부(140), 법선벡터의 내면 또는 외면 방향 변경부(150)를 포함한다.
상기 중심벡터 생성부(110)는 상기 메쉬 모델링된 객체의 무게중심으로부터 상기 메쉬 모델링된 객체의 서피스를 구성하는 다수의 페이스 중 내외면의 판단을 원하는 임의의 페이스에 포함된 다수의 버텍스 중 어느 하나의 버텍스를 향하는 벡터(이하, 중심벡터라고 함)를 생성한다.
이때 상기 모델링된 객체의 서피스를 구성하는 각 페이스들의 모든 버텍스의 좌표(예 : x, y, z 축의 3차원 좌표) 정보는 이미 알고 있는 값이므로 그 버텍스들을 구성하는 각 좌표들을 모두 더한 값들의 평균값을 구하여 무게중심의 좌표정보를 산출할 수 있다.
한편 상기 무게중심을 구하는 다른 방법으로서, 상기 모델링된 객체가 다면체라고 가정할 경우, 상기 무게중심은 3차원 좌표계에서 상기 다면체 내에 임의의 점을 잡고 각 면을 밑면으로 한 후 임의의 한 점을 꼭지점으로 하는 각 뿔들로 분해하면 그 각뿔들의 부피와 무게중심의 좌표를 구할 수 있게 된다. 그 다음 각 뿔들의 무게중심 좌표들에 대해 각 뿔들의 부피를 가중치로 하는 가중평균값을 구하면 그것이 전체 다면체의 무게중심 좌표가 된다. 또한 상기 무게중심을 구하는 또 다른 방법으로서, 상기 다면체의 각 면들을 3차원 좌표계에서 함수의 형태로 표시한 후 적분한 값을 무게중심의 식과 등치시켜 구하는 방법이 있다. 물론 입체의 각 면을 함수로 나타내는 것과 적분구간을 잡는 것이 복잡하지만, 이 방법은 임의의 모양을 가진 입체가 나타내는 중력을 한 점에서의 중력으로 환산시킬 때 많이 이용하는 방법이다.
상기 기재된 무게중심을 산출하는 방법들은 이해를 돕기 위해서 기재된 것으로 반드시 상술한 방법을 이용해야만 하는 것은 아니며 전용 툴을 이용하거나 공지된 다른 방법들을 이용해서 산출할 수 있을 것이다.
상기 페이스 선택부(120)는 상기 메쉬 모델링된 객체의 서피스를 구성하는 다수의 페이스 중 내외면의 판단을 원하는 어느 하나의 페이스를 선택하는 것으로, 상기 페이스는 적어도 하나 이상(예 : 제1 페이스 ~ 제n 페이스)을 선택하여 동시에 선택하거나, 혹은 연속해서 선택하는 것도 가능하며, 이전에 선택된 페이스와 인접한 페이스(즉, 버텍스를 공유하는 페이스)를 선택하는 것과 같이 특정한 조건을 지정하여 그 조건에 해당하는 페이스를 선택하는 것도 가능하다.
상기 법선벡터 생성부(130)는 상기 페이스 선택부(120)에서 선택된 페이스에 수직인 법선벡터를 생성하는 것으로, 상기 선택된 페이스를 구성하는 두 개의 벡터(즉, 각 삼각형 메쉬를 구성하는 두 개의 모서리(edge)로 생성되는 벡터)로 이루어진 평면에 수직인 법선벡터를 생성한다. 상기 각 페이스에서 산출된 법선벡터의 방향은 내면 또는 외면을 향한다.
상기 법선벡터의 내면 또는 외면 방향 판단부(140)는 상기 페이스 선택부(120)에서 선택한 페이스에서 생성된 법선벡터의 방향을 판단하는 것으로, 상기 법선벡터가 향하는 방향에 따라 그 페이스가 내면이거나 외면인 것으로 판단한다.
여기서 상기 법선벡터의 방향은 내면이나 외면인지만을 판단하며 그 실질적인 각도가 얼마인지는 판단하지 않는다.
이때 상기 페이스가 내면인지 혹은 외면인지를 판단하기 위해서, 즉 상기 법선벡터의 방향을 판단하기 위해서는 기준이 있어야 하며, 본 발명에서 두 가지 기준을 제시함으로써 상기 법선벡터의 방향을 판단한다. 첫 번째 방법은 상기 중심벡터의 방향을 기준으로 상기 선택된 페이스의 법선벡터의 방향을 판단하는 방법이며, 두 번째 방법은 먼저 선택된 페이스의 법선벡터의 방향을 기준으로 다음에 선택되는 페이스의 법선벡터의 방향을 판단하는 방법이다.
이때 상기 첫 번째 방법에서 기준으로 사용하는 중심벡터의 방향은 항상 외면 방향이므로 각 페이스의 법선벡터의 방향 판단에 오류가 발생하지 않는다. 하지만 두 번째 방법에서 기준으로 사용하는 페이스의 법선벡터는 내면 방향이거나 외면 방향일 수 있으므로 이를 기준으로 판단한 다른 페이스들의 법선벡터의 방향도 오류가 발생할 수 있다. 그러나 본 발명에서는 상기 오류가 발생할 경우에 상기 기준이 되는 법선벡터의 방향과 동일하게 설정된 다른 페이스들의 법선벡터의 방향을 일괄적으로 간편하게 변경할 수 있으므로 사용자의 편의성을 향상시킬 수 있다.
상기 페이스가 내면인지 혹은 외면인지를 판단하기 위한, 즉 상기 법선벡터의 방향을 판단하기 위한 두 가지 방법은 도 7 내지 도 8의 흐름도를 참조하여 좀 더 구체적으로 설명한다.
상기 법선벡터의 내면 또는 외면 방향 변경부(150)는 상기 법선벡터의 내면 또는 외면 방향 판단부(140)에서 판단한 각 페이스의 법선벡터의 방향을 상기 기준이 되는 벡터(예 : 중심벡터 또는 법선벡터)의 방향과 일치되게 변경하는 것이다.
예컨대 두 벡터(즉, 기준이 되는 벡터와 각 페이스의 법선벡터)를 비교하여 이미 상기 기준이 되는 벡터의 방향과 일치하는 방향으로 향하는 법선벡터는 그대로 유지하고, 상기 기준이 되는 벡터의 방향과 일치하지 않는 방향으로 향하는 법선벡터는 방향이 반대로 향하도록 해당 페이스(즉, 그 법선벡터가 있는 페이스)의 버텍스 인덱스의 순서를 변경한다. 이때 상기 버텍스 인덱스의 순서는 오른손 법칙을 적용하여 상기 버텍스 인덱스를 순서대로 감아쥐었을 때, 그 엄지손가락이 내면 혹은 외면 방향을 향하는 순서로 변경한다.
이하 상기 페이스가 내면인지 혹은 외면인지를 판단하기 위한 두 가지 실시예의 방법에 대해서 설명한다.
도 7은 상기 도 6에 있어서, 제1 실시예에 따른 방법으로 페이스의 내면과 외면을 판단하고 변경하는 방법을 설명하기 위한 흐름도이고, 도 8은 상기 도 6에 있어서, 제2 실시예에 따른 방법으로 페이스의 내면과 외면을 판단하고 변경하는 방법을 설명하기 위한 흐름도이다.
도 7을 참조하면, 메쉬 모델링된 객체의 내부에 있는 전체 버텍스들의 무게중심으로부터 상기 객체의 서피스를 구성하는 다수의 페이스 중 내외면 판단을 원하는 임의의 페이스를 선택하고 그 페이스에 포함된 다수의 버텍스 중 어느 하나의 버텍스로 향하는 벡터(이하, 중심벡터로 기재)를 생성한다(S101).
그리고 상기 선택된 임의의 페이스에 수직인 법선벡터를 생성한다(S102).
다음 상기 두 벡터(예 : 중심벡터와 법선벡터)의 내적을 구한다(S103).
상기 내적을 통해 두 벡터(예 : 중심벡터와 법선벡터)가 이루는 각도를 산출할 수 있다. 예컨대 상기 두 벡터의 내적이 0보다 크면(즉, 두 벡터 간의 각도가 90도 보다 작으면), 상기 두 벡터는 동일한 내면 또는 외면의 방향(예 : 외면 방향)을 향하는 벡터로 판단할 수 있으며, 상기 두 벡터의 내적이 0보다 작으면(즉, 두 벡터 간의 각도가 90보다 크면), 상기 두 벡터가 다른 내면 또는 외면의 방향을 향하는 벡터로 판단할 수 있다. 즉, 중심벡터는 항상 외면 방향을 향하므로, 상기 법선 벡터는 내면 방향을 향하고 있는 벡터로 판단할 수 있다.
따라서 상기 두 벡터(예 : 중심벡터와 법선벡터)의 내적이 0보다 작은 경우(즉, 두 벡터 간의 각도가 90보다 큰 경우)에 상기 법선벡터의 방향을 반대로 향하도록(즉, 상기 내면 방향으로 향하고 있는 법선벡터를 외면 방향으로 향하도록) 버텍스 인덱스의 순서를 변경한다(S104). 즉, 상기 버텍스 인덱스의 순서를 오른손 법칙에 적용하여 상기 버텍스 인덱스를 순서대로 감아쥐었을 때 그 엄지손가락이 외면 방향을 향하는 순서가 되도록 변경한다.
다음 도 8을 참조하면, 메쉬 모델링된 객체의 서피스를 구성하는 다수의 페이스 중 임의의 제1 페이스를 선택하고 그 제1 페이스에 수직인 제1 법선벡터를 생성한다(S201). 그리고 내면 또는 외면 판단을 원하는 제2 페이스를 선택하고 그 제2 페이스에 수직인 제2 법선벡터를 생성한다(S202).
본 실시예에서는 상기 제1 페이스에 생성된 제1 법선벡터를 제2 페이스의 내면 또는 외면 판단을 위한, 즉 상기 제2 페이스에 수직으로 생성된 제2 법선벡터가 향하는 방향(예 : 내면 방향 또는 외면 방향)을 판단하기 위한 기준 벡터로 사용한다.
다음 상기 두 벡터(예 : 제1, 제2 법선벡터)의 내적을 구한다(S203).
상기 내적을 통해 두 벡터(예 : 제1, 제2 법선벡터)가 이루는 각도를 산출할 수 있다. 예컨대 상기 두 벡터의 내적이 0보다 크면(즉, 두 벡터 간의 각도가 90도 보다 작으면)(S204의 예), 상기 두 벡터는 동일한 내면 또는 외면의 방향을 향하는 벡터로 판단할 수 있으며, 따라서 제2 법선벡터의 방향을 변경하지 않아도 되므로 제2 페이스의 버텍스 인덱스의 순서를 그대로 유지한다(S206).
그러나 상기 두 벡터의 내적이 0보다 작으면(즉, 두 벡터 간의 각도가 90보다 크면)(S204의 아니오), 상기 두 벡터가 서로 다른 내면 또는 외면의 방향(즉, 다른 면)을 향하는 벡터로 판단할 수 있다. 즉, 제1 법선벡터가 외면을 향하고 있다고 가정할 경우 제2 법선벡터는 내면을 향하고 있는 벡터로 판단할 수 있으며, 따라서 상기 제2 법선벡터의 방향을 반대로 향하도록(즉, 상기 제2 법선벡터의 방향을 상기 제1 법선벡터의 방향과 동일한 방향으로 향하도록) 버텍스 인덱스의 순서를 변경한다(S205).
즉, 상기 버텍스 인덱스의 순서를 오른손 법칙에 적용하여 상기 버텍스 인덱스를 순서대로 감아쥐었을 때 그 엄지손가락이 제1 법선벡터와 동일한 방향을 향하는 순서가 되도록 변경한다.
그런데 만약 상기 기준이 되는 제1 법선벡터의 방향이 오류인 경우(즉, 외면을 향해야 하는데 내면으로 향했을 경우), 그와 동일한 방향으로 설정된 제2 법선벡터의 방향도 잘못 변경한 것이 된다.
따라서 최종적으로 사용자의 시각에 의해 상기 제1 법선벡터의 방향이 올바른 것인가 판단하고(S207), 상기 제1 법선벡터의 방향이 올바른 경우(즉, 외면으로 향하고 있을 경우)(S207의 예), 이전에 설정된 제2 법선벡터의 방향(즉, 제2 페이스의 버텍스 인덱스의 순서)을 그대로 유지하고, 상기 제1 법선벡터의 방향이 올바르지 않을 경우(즉, 내면으로 향하고 있을 경우)(S207의 아니오), 그 제1 페이스 및 상기 제1 법선벡터의 방향과 동일하게 설정된 제2 페이스를 포함한 다른 모든 페이스들의 버텍스 인덱스의 순서를 일괄적으로 변경한다(S208).
즉, 상기 버텍스 인덱스의 순서를 오른손 법칙에 적용하여 상기 버텍스 인덱스를 순서대로 감아쥐었을 때 그 엄지손가락이 모두 외면 방향을 향하는 순서가 되도록 해당 페이스들의 버텍스 인덱스의 순서를 일괄적으로 변경한다.
이상으로 본 발명은 도면에 도시된 실시예를 참고로 하여 설명되었으나, 이는 예시적인 것에 불과하며, 당해 기술이 속하는 분야에서 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서 본 발명의 기술적 보호범위는 아래의 특허청구범위에 의해서 정하여져야 할 것이다.
110 : 중심벡터 생성부 120 : 페이스 선택부
130 : 법선벡터 생성부 140 : 법선벡터의 내면 또는 외면 방향 판단부
150 : 법선벡터의 내면 또는 외면 방향 변경부
130 : 법선벡터 생성부 140 : 법선벡터의 내면 또는 외면 방향 판단부
150 : 법선벡터의 내면 또는 외면 방향 변경부
Claims (16)
- 메쉬 모델링된 객체의 서피스를 구성하는 다수의 페이스 중 내외면의 판단을 원하는 적어도 어느 하나의 페이스를 선택하는 페이스 선택부;
상기 선택된 페이스에 수직인 법선벡터를 생성하는 법선벡터 생성부;
상기 생성된 법선벡터의 내면 또는 외면의 방향을 임의의 기준 벡터의 내면 또는 외면의 방향과 비교하여 동일한 내면 또는 외면의 방향인지 혹은 동일하지 않은 내면 또는 외면 방향인지 판단하는 법선벡터의 내면 또는 외면 방향 판단부; 및
상기 법선벡터의 내면 또는 외면의 방향이 상기 기준 벡터의 내면 또는 외면의 방향과 다를 경우, 그 법선벡터의 내면 또는 외면의 방향을 상기 기준 벡터의 내면 또는 외면의 방향과 일치되게 변경하는 법선벡터의 내면 또는 외면 방향 변경부;를 포함하는 것을 특징으로 하는 서피스 생성시 메쉬의 내면과 외면 판단 및 변경 장치.
- 청구항 1에 있어서,
상기 메쉬 모델링된 객체의 무게중심으로부터 상기 선택된 페이스에 포함된 다수의 버텍스 중 어느 하나의 버텍스를 향하는 중심벡터를 생성하는 중심벡터 생성부;를 더 포함하는 것을 특징으로 하는 서피스 생성시 메쉬의 내면과 외면 판단 및 변경 장치.
- 청구항 1에 있어서, 상기 법선벡터 생성부는,
상기 선택된 페이스를 구성하는 임의의 두 개의 모서리(edge)로 생성되는 두 개의 벡터를 외적하여 그 페이스에 수직인 법선벡터를 생성하는 것을 특징으로 하는 서피스 생성시 메쉬의 내면과 외면 판단 및 변경 장치.
- 청구항 1에 있어서, 상기 법선벡터의 내면 또는 외면 방향 판단부는,
상기 기준 벡터와 상기 법선 벡터를 내적하여 그 값이 0보다 작은 경우에 상기 두 벡터의 내면 또는 외면의 방향이 동일하지 않은 것으로 판단하고, 그 값이 0보다 크거나 같은 경우에 상기 두 벡터의 내면 또는 외면의 방향이 동일한 것으로 판단하는 것을 특징으로 하는 서피스 생성시 메쉬의 내면과 외면 판단 및 변경 장치.
- 청구항 1에 있어서, 상기 법선벡터의 내면 또는 외면 방향 변경부는,
상기 법선벡터의 방향을 변경할 페이스의 버텍스 인덱스를 오른손 법칙에 적용하여 상기 버텍스 인덱스를 순서대로 오른손으로 감아쥐었을 때 그 엄지손가락이 향하는 방향이 내면 혹은 외면 방향을 향하는 순서로 변경하는 것을 특징으로 하는 서피스 생성시 메쉬의 내면과 외면 판단 및 변경 장치.
- 청구항 1에 있어서, 상기 페이스 선택부는,
적어도 하나 이상의 페이스를 동시에 선택, 연속해서 선택, 혹은 이전에 선택된 페이스와 인접한 페이스를 선택하는 조건을 포함하는 특정한 조건을 이용한 선택 중 적어도 어느 한가지로 선택하는 것을 특징으로 하는 서피스 생성시 메쉬의 내면과 외면 판단 및 변경 장치.
- 청구항 1에 있어서, 상기 법선벡터의 내면 또는 외면 방향 판단부는,
상기 법선벡터가 향하는 방향에 따라, 그 법선벡터가 외면을 향하면 해당 페이스도 외면인 것으로 판단하고, 그 법선벡터가 내면을 향하면 해당 페이스도 내면인 것으로 판단하는 것을 특징으로 하는 서피스 생성시 메쉬의 내면과 외면 판단 및 변경 장치.
- 청구항 1에 있어서, 상기 기준 벡터는,
상기 메쉬 모델링된 객체의 무게중심으로부터 상기 선택된 페이스의 버텍스로 향하는 중심벡터이거나, 먼저 선택한 임의의 페이스에서 생성된 법선벡터인 것을 특징으로 하는 서피스 생성시 메쉬의 내면과 외면 판단 및 변경 장치.
- 청구항 8에 있어서,
상기 중심벡터는 항상 외면을 향하는 벡터이고,
상기 법선벡터는 내면을 향하거나 외면을 향하는 벡터 중 하나인 것을 특징으로 하는 서피스 생성시 메쉬의 내면과 외면 판단 및 변경 장치.
- 청구항 1에 있어서, 상기 법선벡터의 내면 또는 외면 방향 변경부는,
상기 기준 내면 또는 외면의 벡터의 방향이 잘못 설정되었을 경우, 상기 기준 벡터 및 그 기준 벡터의 방향 즉, 외면 방향과 동일하도록 설정된 모든 법선벡터들의 내면 또는 외면의 방향을 일괄적으로 반대 방향을 향하도록 변경하는 것을 특징으로 하는 서피스 생성시 메쉬의 내면과 외면 판단 및 변경 장치.
- 메쉬 모델링된 객체의 내부 무게중심으로부터 상기 객체의 서피스를 구성하는 임의의 페이스를 선택하고 그 페이스에 포함된 어느 하나의 버텍스로 향하는 중심벡터를 생성하는 제1 단계;
상기 선택된 임의의 페이스에 수직인 법선벡터를 생성하는 제2 단계;
상기 중심벡터와 법선벡터의 내적을 산출하는 제3 단계; 및
상기 두 벡터를 내적한 값이 0보다 작으면 그 두 벡터의 내면 또는 외면의 방향이 서로 다른 것으로 판단하고, 상기 법선벡터의 방향을 변경하여 상기 중심벡터의 내면 또는 외면의 방향과 일치하도록 상기 선택된 페이스의 버텍스 인덱스의 순서를 변경하는 제4 단계;를 포함하는 것을 특징으로 하는 서피스 생성시 메쉬의 내면과 외면 판단 및 변경 방법.
- 청구항 11에 있어서, 상기 제4 단계는,
상기 법선벡터의 방향을 변경할 페이스의 버텍스 인덱스를 오른손 법칙에 적용하여 상기 버텍스 인덱스를 순서대로 오른손으로 감아쥐었을 때 그 엄지손가락이 향하는 방향이 외면 방향을 향하는 순서로 변경하는 것을 특징으로 하는 서피스 생성시 메쉬의 내면과 외면 판단 및 변경 방법.
- 청구항 11에 있어서,
상기 법선벡터가 향하는 방향에 따라, 그 법선벡터가 외면을 향하면 해당 페이스도 외면인 것으로 판단하고, 그 법선벡터가 내면을 향하면 해당 페이스도 내면인 것으로 판단하는 제5 단계;를 더 포함하는 것을 특징으로 하는 서피스 생성시 메쉬의 내면과 외면 판단 및 변경 방법.
- 메쉬 모델링된 객체의 서피스를 구성하는 다수의 페이스 중 임의의 제1 페이스를 선택하고 그 제1 페이스에 수직인 제1 법선벡터를 생성하는 제6 단계;
상기 객체에서 내면 또는 외면 판단을 원하는 제2 페이스를 선택하고 그 제2 페이스에 수직인 제2 법선벡터를 생성하는 제7 단계;
상기 제1 법선벡터 및 제2 법선벡터의 내적을 구하는 제8 단계; 및
상기 두 벡터를 내적한 값이 0보다 작으면 그 두 벡터의 내면 또는 외면의 방향이 서로 다른 것으로 판단하고, 상기 제2 페이스의 버텍스 인덱스의 순서를 변경하여 상기 제2 법선벡터를 상기 제1 법선벡터의 방향과 일치하도록 변경시키는 제9 단계;를 포함하는 것을 특징으로 하는 서피스 생성시 메쉬의 내면과 외면 판단 및 변경 방법.
- 청구항 14에 있어서, 상기 제9 단계는,
상기 제2 페이스의 버텍스 인덱스의 순서를 오른손 법칙에 적용하여 상기 버텍스 인덱스를 순서대로 오른손으로 감아쥐었을 때 그 엄지손가락이 향하는 내면 또는 외면의 방향이 상기 제1 법선벡터의 내면 또는 외면의 방향과 일치되는 방향으로 향하게 하는 순서로 변경하는 것을 특징으로 하는 서피스 생성시 메쉬의 내면과 외면 판단 및 변경 방법.
- 청구항 14에 있어서,
상기 제1 법선벡터의 내면 또는 외면의 방향이 잘못 설정되었을 경우, 상기 제1 법선벡터 및 그 제1 법선벡터의 내면 또는 외면의 방향과 동일하도록 설정된 제2 법선벡터를 포함한 다른 모든 법선벡터들의 방향을 일괄적으로 반대 방향을 향하도록 변경하는 제10 단계;를 더 포함하는 것을 특징으로 하는 서피스 생성시 메쉬의 내면과 외면 판단 및 변경 방법.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020130011442A KR20140098592A (ko) | 2013-01-31 | 2013-01-31 | 서피스 생성시 메쉬의 내면과 외면 판단 및 변경 장치와 그 방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020130011442A KR20140098592A (ko) | 2013-01-31 | 2013-01-31 | 서피스 생성시 메쉬의 내면과 외면 판단 및 변경 장치와 그 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20140098592A true KR20140098592A (ko) | 2014-08-08 |
Family
ID=51745354
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020130011442A KR20140098592A (ko) | 2013-01-31 | 2013-01-31 | 서피스 생성시 메쉬의 내면과 외면 판단 및 변경 장치와 그 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20140098592A (ko) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101711042B1 (ko) * | 2016-11-15 | 2017-02-28 | 주식회사 대건테크 | Stl 파일 접합 방법 |
KR20190026561A (ko) * | 2017-09-05 | 2019-03-13 | 한국전자통신연구원 | 메쉬의 오류 검출 및 보정 방법 및 이를 수행하는 장치 |
KR102083558B1 (ko) * | 2018-10-23 | 2020-03-02 | 김지원 | 복셀리곤을 이용한 3차원 객체 모델링 방법 및 프로그램 |
CN111784796A (zh) * | 2020-06-22 | 2020-10-16 | 上海米哈游天命科技有限公司 | 一种地形网格生成方法、装置、设备和介质 |
US10812113B2 (en) | 2017-09-05 | 2020-10-20 | Electronics And Telecommunications Research Institute | Method of detecting and correcting error in mesh and apparatus for same |
-
2013
- 2013-01-31 KR KR1020130011442A patent/KR20140098592A/ko active IP Right Grant
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101711042B1 (ko) * | 2016-11-15 | 2017-02-28 | 주식회사 대건테크 | Stl 파일 접합 방법 |
KR20190026561A (ko) * | 2017-09-05 | 2019-03-13 | 한국전자통신연구원 | 메쉬의 오류 검출 및 보정 방법 및 이를 수행하는 장치 |
US10812113B2 (en) | 2017-09-05 | 2020-10-20 | Electronics And Telecommunications Research Institute | Method of detecting and correcting error in mesh and apparatus for same |
KR102083558B1 (ko) * | 2018-10-23 | 2020-03-02 | 김지원 | 복셀리곤을 이용한 3차원 객체 모델링 방법 및 프로그램 |
CN111784796A (zh) * | 2020-06-22 | 2020-10-16 | 上海米哈游天命科技有限公司 | 一种地形网格生成方法、装置、设备和介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9916684B2 (en) | Generating portable three-dimensional print-preview renderings of three-dimensional models | |
AU2005241463C1 (en) | System and method for approximating an editable surface | |
US8368714B2 (en) | Curved surface rendering system and method | |
KR101028698B1 (ko) | 격자구조를 이용한 3차원 모델링 장치 및 방법 | |
US11636643B2 (en) | Normal offset smoothing | |
KR20140081729A (ko) | 가상 오브젝트들의 로케이션 보정 | |
KR20140098592A (ko) | 서피스 생성시 메쉬의 내면과 외면 판단 및 변경 장치와 그 방법 | |
US9881417B2 (en) | Multi-view drawing apparatus of three-dimensional objects, and method | |
CN104661010A (zh) | 三维立体模型的建立方法和装置 | |
CN106952331B (zh) | 一种基于三维模型的纹理映射方法和装置 | |
EP2930691A1 (en) | Fitting sample points with an isovalue surface | |
CA2817497A1 (en) | Method and system for efficient modeling of specular reflection | |
US20160138914A1 (en) | System and method for analyzing data | |
US9171393B2 (en) | Three-dimensional texture reprojection | |
EP2930692A1 (en) | Fitting sample points of 3D curves sketched by a user with an isovalue surface | |
JP4803581B2 (ja) | 景観解析方法とこの方法を実行するコンピュータプログラムおよびこのプログラムを格納した媒体 | |
JP2013205175A (ja) | 3次元対象面認識装置および方法、ならびにプログラム | |
Xu et al. | Inverse toon shading: interactive normal field modeling with isophotes | |
US20180286111A1 (en) | Cross determining program, cross determining method, and cross determining apparatus | |
WO2024212849A1 (zh) | 全视角深度信息的构建方法、装置、设备及存储介质 | |
JP5834317B2 (ja) | 誤差画像生成方法 | |
US9454554B1 (en) | View dependent query of multi-resolution clustered 3D dataset | |
US8994724B2 (en) | Methods and systems for generating continuous surfaces from polygonal data | |
CN107464278A (zh) | 全视向的球体光场渲染方法 | |
Santos et al. | Integration of CAD Models into Game Engines. |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right |