KR101947184B1 - 덱셀들에 의해 표현되는 모델링된 볼륨의 설계 - Google Patents
덱셀들에 의해 표현되는 모델링된 볼륨의 설계 Download PDFInfo
- Publication number
- KR101947184B1 KR101947184B1 KR1020120123823A KR20120123823A KR101947184B1 KR 101947184 B1 KR101947184 B1 KR 101947184B1 KR 1020120123823 A KR1020120123823 A KR 1020120123823A KR 20120123823 A KR20120123823 A KR 20120123823A KR 101947184 B1 KR101947184 B1 KR 101947184B1
- Authority
- KR
- South Korea
- Prior art keywords
- deckle
- decks
- group
- updating
- modeled
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
- G06T19/20—Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2219/00—Indexing scheme for manipulating 3D models or images for computer graphics
- G06T2219/20—Indexing scheme for editing of 3D models
- G06T2219/2021—Shape modification
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Graphics (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Geometry (AREA)
- Architecture (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Processing Or Creating Images (AREA)
- Image Generation (AREA)
- Moulds For Moulding Plastics Or The Like (AREA)
Abstract
모델링된 볼륨을 설계하기 위한 컴퓨터-구현되는 방법이 제공된다. 본 방법은 모델링된 볼륨을 표현하는 덱셀들의 세트를 제공하는 단계 (S10) 로서, 그 각각의 덱셀이 라인과 모델링된 볼륨 사이의 교차를 표현하는 적어도 하나의 세그먼트의 세트를 포함하고, 그 덱셀들의 세트가 이웃 덱셀들의 그룹들로 파티셔닝되고, 메모리 공간이 그룹의 덱셀들의 각각에 포함되는 세그먼트들의 최대 개수에 따라서 각각의 그룹에 할당되는, 상기 덱셀들의 세트를 제공하는 단계; 모델링된 볼륨에 대해 스컬프팅 동작을 제공하는 단계 (S20); 및 그 스컬프팅 동작에 응답하여, 덱셀들의 세트를 업데이트하는 단계 (S30) 를 포함한다.
이런 방법은 덱셀들의 세트에 의해 표현되는 모델링된 볼륨의 설계를 향상시킨다.
이런 방법은 덱셀들의 세트에 의해 표현되는 모델링된 볼륨의 설계를 향상시킨다.
Description
본 발명은 컴퓨터 프로그램들 및 시스템들의 분야에 관한 것으로, 좀더 구체적으로는, 덱셀 (dexel) 들의 세트에 의해 표현되는 모델링된 볼륨 (volume) 을 설계하는 방법, 시스템 및 프로그램에 관한 것이다.
다수의 시스템들 및 프로그램들이 오브젝트들의 설계, 엔지니어링 및 제조를 위한 시장에 공급되고 있다. CAD 는 예컨대, 오브젝트를 설계하는 소프트웨어 솔루션들에 관련된 컴퓨터-지원 설계 (Compuer-Aided Design) 에 대한 약어이다. CAE 는 예컨대, 미래 제품의 물리적인 거동을 시뮬레이션하는 소프트웨어 솔루션들에 관련된 컴퓨터-지원 엔지니어링 (Compuer-Aided Engineering) 에 대한 약어이다. CAM 은 예컨대, 제조 프로세스들 및 동작들을 정의하는 소프트웨어 솔루션들에 관련된 컴퓨터-지원 제조 (Compuer-Aided Manufacturing) 에 대한 약어이다. 이런 시스템들에서, 그래픽 사용자 인터페이스 (GUI) 는 기법의 효율과 관련하여 중요한 역할을 한다. 이들 기법들이 제품 수명주기 관리 (PLM) 시스템들 내에 내장될 수도 있다. PLM 은 회사들이 제품 데이터를 공유하고, 공통 프로세스들을 적용하고, 및 확장 기업의 개념을 통해 구상으로부터 그들 수명의 끝까지 제품들의 개발을 위한 공동의 지식을 강화하는 것을 돕는 비즈니스 전략을 말한다.
Dassault Systemes 에 의해 (상표들 CATIA, ENOVIA 및 DELMIA 로) 제공되는 PLM 솔루션들은 제품 엔지니어링 지식을 구성하는 엔지니어링 허브, 제조 엔지니어링 지식을 관리하는 제조 허브, 및 엔지니어링 및 제조 허브들 양자로의 기업 통합들 및 연결들을 가능하게 하는 기업 허브를 제공한다. 동시에, 이 시스템은 최적화된 제품 정의, 제조 준비, 생산 및 서비스를 유도하는 동적인 지식-기반 제품 창조 및 결정 지원을 가능하게 하기 위해 개방 오브젝트 모델 연계 제품들, 프로세스들, 리소스들을 전달한다.
이들 시스템들의 일부는 덱셀들의 세트에 의해 모델링된 볼륨의 표현을 가능하게 한다. 여러 논문들 또는 특허 문서들이 특히, 가공 (machining) 시뮬레이션 또는 상호작용 스컬프팅 (interactive sculpting) 에 대한 덱셀 표현을 이용하는 것을 제안하고 있다.
이런 문서들의 예들은 다음과 같다:
- Xiaobo Peng 및 Weihan Zhang 의, "A Virtual Sculpting System Based on Triple Dexel Models with Haptics" 란 제목의 논문, Computer-Aided Design and Applications, 2009년;
- Yunching Huang 및 James H. Oliver, "NC Milling Error Assessment and Tool Path Correction" 란 제목의 논문, 컴퓨터 그래픽 및 상호작용 기법에 관한 21 회 연례 회의 의사록 (proceedings), 1994년;
- Heinrich Muller, Tobias Surmann, Marc Stautner, Frank Albersmann, Klaus Weinert 의, "Online Sculpting and Visualization of Multi-Dexel Volumes", 입체 모델링 및 애플리케이션에 관한 8 회 ACM 심포지엄의 SM '03 의사록;
- Yongfu Ren, Susana K. Lai-Yuen 및 Yuan-Shin Lee 의, "Virtual prototyping and manufacturing planning by using tri-dexel models and haptic force feedback" 란 제목의 논문, Virtual and Physical Prototyping, 2006년;
- Sabine Stifter 의, "Simulation of NC machining based on the dexel model: A critical analysis" 란 제목의 논문, The International Journal of Advanced Manufacturing Technology, 1995년;
- Konig, A.H. 및 Groller, E. 의, "Real time simulation and visualization of NC milling processes for inhomogeneous materials on low-end graphics hardware" 란 논제의 논문, Computer Graphics International, 1998년 의사록;
- 미국 특허 제 5,710,709 호;
- 미국 특허 제 7,747,418 호.
GPGPU (General-Purpose computing on Graphics Processing Units) 는 중앙 처리 유닛 (CPU) 에 의해 통상적으로 처리되는 애플리케이션들에서 계산 (computation) 을 수행하기 위해서, 오직 컴퓨터 그래픽들에 대한 계산만을 일반적으로 처리하는 그래픽 프로세싱 유닛 (GPU) 을 이용하는 기법이다. 일부 논문들은 덱셀 표현에 대한 최신 그래픽 프로세싱 유닛들 (GPU) 의 계산 능력을 이용하는 것을 고려한다. 이들 논문들은 특정의 메모리 모델에 연관되는 LDNI (Layered Depth-Normal Images) 알고리즘을 이용한다.
이런 논문들의 예들은 다음과 같다:
- B. Tukora 및 T. Szalay 의, "GPGPU-based Material Removal Simulation and Cutting Force Estimation" 란 제목의 논문, CCP: 94: 엔지니어링 계산 기술에 관한 7 회 국제 회의의 의사록;
- Charlie C. L. Wang 및 Yong Chen 의 "Layered Depth-Normal Images: a Sparse Implicit Representation of Solid Models" 란 제목의 논문, ASME 국제 설계 엔지니어링 기술 회의의 의사록, Brooklyn (NY).
그러나, 상기 리스트된 솔루션들은, 특히 메모리 성능 관점에서 그리고 사용자 이용 관점에서 효율이 부족하다. 이러한 상황 내에서, 덱셀들의 세트에 의해 표현되는 모델링된 볼륨을 설계하는 향상된 솔루션에 대해 여전히 요구되고 있다.
따라서, 일 양태에 따르면, 모델링된 볼륨을 설계하기 위한 컴퓨터-구현되는 방법이 제공된다. 본 방법은 모델링된 볼륨을 표현하는 덱셀들의 세트를 제공하는 단계를 포함한다. 각각의 덱셀은 라인과 모델링된 볼륨 사이의 교차를 표현하는 적어도 하나의 세그먼트의 세트를 포함한다. 덱셀들의 세트는 이웃 덱셀들의 그룹들로 파티셔닝된다. 그리고, 메모리 공간이 그 그룹의 덱셀들의 각각에 포함되는 세그먼트들의 최대 개수에 따라서 각각의 그룹에 할당된다. 또한, 본 방법은 모델링된 볼륨에 대해 스컬프팅 동작을 제공하는 단계 및 그 스컬프팅 동작에 응답하여 덱셀들의 세트를 업데이트하는 단계를 포함한다.
본 방법은 다음 중 하나 이상을 포함할 수도 있다:
- 덱셀들의 세트를 업데이트하는 단계는, 스컬프팅 동작에 의해 영향 받는 이웃 덱셀들의 그룹들을 결정하는 단계 및 그 결정된 그룹들의 각각을 업데이트하는 단계를 포함하고;
- 그 결정된 그룹들의 각각을 업데이트하는 단계는, 각각의 그룹에 대해서, 병렬 프로세싱에 의해 각각의 그룹의 덱셀들을 업데이트하는 단계를 포함하고;
- 각각의 그룹의 덱셀들을 업데이트하는 단계는, 각각의 그룹의 각각의 덱셀에 대해서, 각각의 덱셀에 대한 스컬프팅 동작의 영향을 평가하는 단계 및 그에 따라, 각각의 덱셀을 수정하는 단계를 포함하며;
- 각각의 덱셀에 대한 스컬프팅 동작의 영향을 평가하는 단계는 각각의 덱셀의 세그먼트들에 대한 스컬프팅 동작의 영향을 평가하는 단계를 포함하며;
- 각각의 그룹의 덱셀들을 업데이트하는 단계는, SIMD (Single Instruction Multiple Data; 단일 명령 다중 데이터) 병렬 프로세싱에 의해 수행되고;
- 본 방법은, 업데이트된 그룹의 덱셀들의 각각에 포함되는 세그먼트들의 최대 개수가 수정되는 경우 업데이트된 그룹에 할당되는 메모리 공간을 적응시키는 단계를 더 포함하며;
- 덱셀들의 세트는 본 방법의 실행에 수반되는 하드웨어 및/또는 스컬프팅 컨텍스트에 적응하여, 이웃 덱셀들의 그룹들로 파티셔닝된다.
또한, 모델링된 볼륨을 설계하기 위한 시스템이 제안되며, 이 시스템은 상기 방법을 수행하기 위한 명령들을 기록한 메모리 및 그 명령들을 실행하기 위해 메모리에 연결된 적어도 하나의 프로세서를 포함한다.
프로세서는 대량 병렬 프로세싱 유닛일 수도 있다. 시스템은 명령들의 실행을 론칭 (launching) 하는데 적합한 적어도 하나의 GUI 를 포함할 수도 있다. GUI 는 GPU 를 포함할 수도 있으며, 프로세서는 GPU 일 수도 있다.
또한, 상기 방법을 수행하기 위한 명령들을 포함하는 컴퓨터 프로그램이 제안된다.
또한, 상기 컴퓨터 프로그램을 기록한 컴퓨터 판독가능 저장 매체가 제안된다.
이하, 비한정적인 예로서, 첨부 도면들을 참조하여, 본 발명의 실시형태들이 설명된다.
도 1 은 본 방법의 일 예의 플로우차트를 나타낸다.
도 2 는 그래픽 사용자 인터페이스의 일 예를 나타낸다.
도 3 은 클라이언트 컴퓨터 시스템의 일 예를 나타낸다.
도 4 내지 도 8 및 도 14 는 본 방법의 예들을 나타낸다.
도 9 내지 도 13 은 종래기술을 도시한다.
도 1 은 본 방법의 일 예의 플로우차트를 나타낸다.
도 2 는 그래픽 사용자 인터페이스의 일 예를 나타낸다.
도 3 은 클라이언트 컴퓨터 시스템의 일 예를 나타낸다.
도 4 내지 도 8 및 도 14 는 본 방법의 예들을 나타낸다.
도 9 내지 도 13 은 종래기술을 도시한다.
도 1 은 모델링된 볼륨을 설계하는 컴퓨터-구현되는 방법 (이하, "본 방법"이라함) 의 일 예의 플로우차트를 나타낸다. 본 방법은 덱셀들의 세트를 제공하는 단계 (S10) 를 포함한다. 덱셀들의 세트는 모델링된 볼륨을 표현한다. (덱셀들의 세트의) 각각의 덱셀은 적어도 하나의 세그먼트의 세트를 포함한다. 이런 세그먼트들은 라인과 모델링된 볼륨 사이의 교차 (intersection) 를 표현한다. 덱셀들의 세트는 이웃 덱셀들의 그룹들로 파티셔닝 (partitioning) 된다. 메모리 공간이 그 그룹의 덱셀들의 각각에 포함되는 세그먼트들의 최대 개수에 따라서 각각의 그룹에 할당된다. 또한, 본 방법은 모델링된 볼륨 상에 스컬프팅 동작을 제공하는 단계 (S20) 를 포함한다. 또한, 본 방법은 그 스컬프팅 동작에 응답하여 덱셀들의 세트를 업데이트하는 단계 (S30) 를 포함한다. 이런 방법은 덱셀들의 세트에 의해 표현되는 모델링된 볼륨의 설계를 향상시킨다.
또한, 덱셀들의 세트에 의해 표현되는 모델링된 볼륨이 제공되며, (덱셀들의 세트의) 각각의 덱셀은 적어도 하나의 세그먼트의 세트를 포함한다. 이런 세그먼트들은 라인과 모델링된 볼륨 사이의 교차를 표현한다. 덱셀들의 세트는 이웃 덱셀들의 그룹들로 파티셔닝된다. 메모리 공간이 그 그룹의 덱셀들의 각각에 포함되는 세그먼트들의 최대 개수에 따라서 각각의 그룹에 할당된다. 또한, 이하에 설명되는 본 방법의 특징들 및 예들이 이런 모델링된 볼륨에 적용된다.
또한, 모델링된 볼륨을 덱셀들의 세트에 의해 표현하기 위한 인코딩 방식이 제공된다. 이 인코딩 방식은 볼륨의 정의를 제공하는 단계를 포함한다. 그후, 이 인코딩 방식은 라인들의 세트를 정의하고, 그 볼륨과의 라인들의 세트의 교차들을 계산하고, 대응하는 덱셀들을 결정한다. 또한, 이 인코딩 방식은 덱셀들의 세트를 이웃 덱셀들의 그룹들로 파티셔닝하고, 그 그룹의 덱셀들의 각각에 포함되는 세그먼트들의 최대 개수에 따라서, 각각의 그룹 메모리 공간을 할당한다. 덱셀들의 세트를 제공하는 단계 (S10) 는 인코딩 방식을 구현할 수도 있다. 또한, 아래에서 설명되는 본 방법의 특징들 및 예들은 이런 인코딩 방식에 적용된다.
본 방법은 CAD 모델링된 오브젝트를 설계하는 프로세스에 포함될 수도 있다. "CAD 모델링된 오브젝트를 설계하는 것" 은 모델링된 오브젝트를 정교하게 하는 프로세스의 적어도 일부분인 임의의 액션 또는 일련의 액션들을 지정한다. 따라서, 본 방법은 스크래치 (scratch) 로부터 CAD 모델링된 오브젝트를 생성하는 단계를 포함한다. 이의 대안으로, 본 방법은 이전에 생성된 CAD 모델링된 오브젝트를 제공하고, 그후 CAD 모델링된 오브젝트를 수정하는 단계를 포함할 수도 있다. 어느 경우에는, 본 방법에 의해 설계되는 모델링된 볼륨은 CAD 모델링된 오브젝트 또는 그의 적어도 일부분, 예컨대, CAD 모델링된 오브젝트에 의해 점유되는 3D 공간을 표현할 수도 있다. 또한, 본 방법이 덱셀들의 세트에 의해 표현되는 모델링된 볼륨의 설계를 향상시키기 때문에, 본 방법은 CAD 모델링된 오브젝트의 설계를 향상시킨다.
모델링된 오브젝트는 컴퓨터 시스템의 메모리에 저장된 데이터에 의해 정의되는 임의의 오브젝트이다. 더 나아가, "모델링된 오브젝트" 라는 표현은 데이터 자체를 지정한다. CAD 모델링된 오브젝트는 CAD 시스템의 메모리에 저장되는 데이터에 의해 정의되는 임의의 오브젝트이다. 시스템의 유형에 따라, 모델링된 오브젝트들은 상이한 종류들의 데이터에 의해 정의될 수도 있다. CAD 시스템은, CATIA 와 같이, 모델링된 오브젝트의 그래픽 표현에 기초하여 모델링된 오브젝트를 설계하는데 적어도 적합한 임의의 시스템이다. 따라서, CAD 모델링된 오브젝트를 정의하는 데이터는 모델링된 오브젝트의 표현 (예컨대, 예를 들어 그 공간에서 상대적인 포지션들을 포함하는 기하학적 데이터) 을 가능하게 하는 데이터를 포함한다.
본 방법은 제조 프로세스에 포함될 수도 있으며, 그 제조 프로세스는 본 방법을 수행한 후, 모델링된 볼륨에 대응하는 물리적인 제품을 제조하는 단계를 포함할 수도 있다. 어느 경우에는, 본 방법에 의해 설계되는 모델링된 볼륨은 제조 오브젝트를 표현할 수도 있다. 따라서, 모델링된 볼륨은 모델링된 입체 (즉, 입체 (solid) 를 표현하는 모델링된 오브젝트) 일 수도 있다. 제조 오브젝트는 부품, 또는 부품들의 어셈블리와 같은 제품일 수도 있다. 또한, 본 방법이 모델링된 볼륨의 설계를 향상시키기 때문에, 본 방법은 제품의 제조를 향상시켜, 제조 프로세스의 생산성을 증가시킨다. 본 방법은 DELMIA 와 같은 CAM 시스템을 이용하여 구현될 수 있다. CAM 시스템은 제조 프로세스들 및 동작들을 정의하고, 시뮬레이션하고, 제어하는데 적어도 적합한 임의의 시스템이다.
본 방법은 컴퓨터-구현된다. 이것은 본 방법이 적어도 하나의 컴퓨터, 또는 임의의 유사한 시스템 상에서 실행되는 것을 의미한다. 달리 언급하지 않는 한, 본 방법의 모든 단계들은 컴퓨터에 의해, 즉 사용자의 개입 없이 수행된다. 예를 들어, 업데이트하는 단계 (S30) 는 하나의 컴퓨터에 의해 수행되는 반면, 덱셀들의 세트를 제공하는 단계 (S10) 및 스컬프팅 동작을 제공하는 단계 (S20) 는 하나의 컴퓨터에 의해 또는 사용자-상호작용을 통해서, 수행될 수도 있다. 사실은, 덱셀들의 세트를 제공하는 단계 (S10) 는 사용자에 의해 론칭될 수도 있다. 그에 따라, 본 방법은 아마도 사용자에 의해 제공되는 스컬프팅 동작의 기능으로, 모델링된 볼륨을 표현하는 덱셀들의 세트의 자동 업데이팅 (S30) 을 가능하게 한다. 또한, 본 방법의 단계들이 사용자의 개입을 가능할 수도 있다는 점을 언급할 만한 가치가 있다. 예를 들어, 사용자는 예컨대, 컴퓨터에 의해 실행되는 알고리즘의 결과를 수정하기 위해, 예를 들어 업데이트된 덱셀들의 세트를 수정하기 위해 (S30) 개입할 수도 있다. 이것은 업데이트될 때에 덱셀들의 세트를 수정하는 단계에 해당하며, 수정하는 단계는 업데이트하는 단계 (S30) 이후에 실행된다.
본 방법의 컴퓨터-구현의 전형적인 예는 본 방법을 이 목적에 적합한 시스템에 의해 수행하는 것이다. 이 시스템은 본 방법을 수행하는 명령들을 기록한 메모리를 포함할 수도 있다. 즉, 소프트웨어가 즉각적인 사용을 위해 메모리 상에 준비되어 있다. 따라서, 이 시스템은 임의의 다른 소프트웨어를 설치함이 없이 본 방법을 수행하는데 적합하다. 또한, 이런 시스템은 명령들을 실행하기 위해 메모리에 연결된 적어도 하나의 프로세서를 포함할 수도 있다. 즉, 이 시스템은 프로세서에 연결된 메모리 상에 코딩된 명령들을 포함하며, 이 명령들은 본 방법을 수행하는 수단을 제공한다. 이런 시스템은 모델링된 볼륨을 설계하는 효율적인 툴이다.
이런 시스템은 CAD 시스템일 수도 있다. 또한, 이 시스템은 CAE 및/또는 CAM 시스템일 수도 있으며, CAD 모델링된 오브젝트는 CAE 모델링된 오브젝트 및/또는 CAM 모델링된 오브젝트일 수도 있다. 사실, CAD, CAE 및 CAM 시스템들은, 모델링된 오브젝트가 이들 시스템들의 임의의 조합에 대응하는 데이터에 의해 정의될 수도 있기 때문에, 다른 것의 전용인 것이 아니다.
이 시스템은 예를 들어, 사용자에 의해 명령들의 실행을 론칭하는 적어도 하나의 GUI 일 수도 있다. 특히, GUI 는 스크래치로부터 이런 덱셀들의 세트 (S10) 를 설계해서든 또는 시스템의 메모리로부터 또는 예컨대 네트워크 서비스에 의해 시스템의 외부에 있지만 그 시스템에 연결된 메모리로부터 취출해서든지, 사용자로 하여금, 덱셀들의 세트를 제공하는 단계 (S10) 를 론칭할 수 있게 할 수도 있다. 또한, GUI 는 사용자로 하여금 스컬프팅 동작을 제공하게 할 수도 있다 (S20). GUI 는 GPU 를 포함할 수도 있다. 이런 경우, 프로세서는 GPU 일 수도 있다. 즉, 적어도 본 방법의 단계들, 특히, 업데이트하는 단계 (S30) 을 실행하는 프로세서는 GPU 일 수도 있다. 이런 시스템은 사용자에 의해 모델링된 볼륨을 설계하는 효율적인 툴이다. 덱셀 기반 알고리즘들이 대량 병렬 하드웨어에 매우 적합하기 때문에, 최신 그래픽 프로세싱 유닛 (GPU) 의 계산 능력을 이용하는 것을 고려하는 것이 당연하다.
모델링된 볼륨은 3D (즉 3차원) 일 수도 있다. 이것은 모델링된 볼륨이 그의 3D 표현을 가능하게 하는 데이터에 의해 정의된다는 것을 의미한다. 3D 표현은 모든 각도들로부터 그 표현된 볼륨의 보기 (viewing) 를 허용한다. 예를 들어, 모델링된 볼륨은, 3D 로 표현될 때, 그의 축들 중 임의의 축 둘레로, 또는 그 표현이 디스플레이되는 스크린에서 임의의 축 둘레로 처리 및 회전될 수도 있다. 이것은 특히 3D 모델링되지 않은 2D 아이콘들을 제외한다. 3D 표현의 디스플레이는 설계를 용이하게 한다 (즉, 설계자들이 그들의 작업을 통계적으로 달성하는 속도를 증가시킨다). 이것은 제품들의 설계가 제조 프로세스의 부분이기 때문에, 그 산업에서 제조 프로세스를 고속화한다.
도 2 는 대표적인 CAD 시스템의 GUI의 일 예를 나타낸다.
GUI (2100) 는 표준 메뉴 바들 (2110, 2120), 뿐만 아니라, 바닥 및 측면 툴바들 (2140, 2150) 을 갖는, 대표적인 CAD-형 인터페이스일 수도 있다. 이런 메뉴- 및 툴바들은 사용자-선택가능 아이콘들의 세트를 포함하며, 각각의 아이콘은 당업계에 알려져 있는 바와 같이, 하나 이상의 동작들 또는 기능들과 연관된다. 이들 아이콘들의 일부는 GUI (2100) 에 디스플레이되는 3D 모델링된 오브젝트 (2000) 를 편집하거나 및/또는 작업하기 위해 적응된 소프트웨어 툴들과 연관된다. 소프트웨어 툴들은 워크벤치 (workbench) 들로 그룹화될 수도 있다. 각각의 워크벤치는 소프트웨어 툴들의 서브세트를 포함한다. 특히, 워크벤치들의 하나는 모델링된 제품 (2000) 의 기하학적인 피쳐들을 편집하는데 적합한 편집 워크벤치이다. 동작시, 설계자는 예를 들어, 오브젝트 (2000) 의 부분을 사전-선택한 후, 적당한 아이콘을 선택함으로써, 동작 (예컨대, 스컬프팅 동작, 또는 치수, 칼라 등을 변화시키는 임의의 다른 동작) 을 개시하거나 또는 기하학적인 제약들을 편집할 수도 있다. 예를 들어, 대표적인 CAD 동작들은 스크린 상에 디스플레이되는 3D 모델링된 오브젝트의 펀칭 또는 접기 (folding) 의 모델링이다.
GUI 는 예를 들어, 디스플레이된 제품 (2000) 에 관련되는 데이터 (2500) 를 디스플레이할 수도 있다. 도 2 의 예에서, "피쳐 트리" 로서 디스플레이되는 데이터 (2500), 및 그들의 3D 표현 (2000) 은 브레이크 캘리퍼 및 디스크를 포함하는 브레이크 어셈블리에 관계된다. GUI 는 예를 들어, 오브젝트의 3D 방향정위 (orientation) 를 용이하게 하기 위한, 그리고, 편집된 제품의 동작의 시뮬레이션을 트리거링하거나 또는 디스플레이된 제품 (2000) 의 여러 속성들을 렌더링하기 위한 여러 유형들의 그래픽 툴들 (2130, 2070, 2080) 를 추가로 나타낼 수도 있다. 커서 (2060) 는 사용자가 그래픽 툴들과 상호작용할 수 있도록 햅틱 디바이스에 의해 제어될 수도 있다.
도 3 은 클라이언트 컴퓨터 시스템, 예컨대 사용자의 워크스테이션으로서 시스템의 아키텍처의 일 예를 나타낸다.
클라이언트 컴퓨터는 내부 통신 버스 (1000) 에 접속된 중앙 처리 유닛 (CPU) (1010), 그 버스에 또한 접속된 랜덤 액세스 메모리 (RAM) (1070) 를 포함한다. 또한, 클라이언트 컴퓨터에는 그 버스에 접속된 비디오 랜덤 액세스 메모리 (1100) 와 연관되는 그래픽 프로세싱 유닛 (GPU) (1110) 이 제공된다. 또한, 비디오 RAM (1100) 은 프레임 버퍼로서 당업계에 알려져 있다. 대용량 저장 디바이스 제어기 (1020) 는 하드 드라이브 (1030) 와 같은 대용량 메모리 디바이스에의 액세스들을 관리한다. 컴퓨터 프로그램 명령들 및 데이터를 유형으로 구현하는데 적합한 대용량 메모리 디바이스들은 일 예로서, EPROM, EEPROM, 및 플래시 메모리 디바이스들과 같은 반도체 메모리 디바이스들; 내부 하드 디스크들 및 착탈식 디스크들과 같은 자기 디스크들; 광자기 디스크들; 및 CD-ROM 디스크들 (1040) 을 포함한, 모든 형태의 비휘발성 메모리를 포함한다. 전술한 것들 중 임의의 것이 특별히 설계된 ASIC 들 (애플리케이션-특정의 집적 회로들) 에 의해 보충되거나, 또는 ASIC 들 (애플리케이션-특정의 집적 회로들) 에 통합될 수도 있다. 네트워크 어댑터 (1050) 는 네트워크 (1060) 에의 액세스들을 관리한다. 또한, 클라이언트 컴퓨터는 커서 제어 디바이스, 키보드 또는 기타 등등과 같은 햅틱 디바이스 (1090) 를 포함할 수도 있다. 커서 제어 디바이스는 사용자로 하여금, 도 2 를 참조하여 언급한 바와 같이, 커서를 스크린 (1080) 상의 임의의 원하는 위치에, 선택적으로 위치시킬 수 있도록 하기 위해, 클라이언트 컴퓨터에 사용된다. 이것은, 컴퓨터 모니터와 같은, 스크린에 의해, 그 위에서 디스플레이하는 임의의 지원이 수행된다는 것을 의미한다. 게다가, 커서 제어 디바이스는 사용자가 여러 지령들을 선택하고, 제어 신호들을 입력가능하도록 한다. 커서 제어 디바이스는 시스템으로의 제어 신호들을 위한 다수의 신호 발생 디바이스들을 포함한다. 일반적으로, 커서 제어 디바이스는 마우스일 수도 있으며, 마우스의 버튼이 신호들을 발생하는데 사용된다.
시스템으로 하여금 본 방법을 수행하도록 하기 위해, 컴퓨터에 의한 실행을 위한 명령들을 포함하는 컴퓨터 프로그램이 제공되며, 명령들은 이 목적을 위한 수단을 포함한다. 프로그램은 예를 들어, 디지털 전자 회로로, 또는 컴퓨터 하드웨어, 펌웨어, 소프트웨어로, 또는 이들의 조합들로 구현될 수도 있다. 본 발명의 장치는 프로그래밍가능 프로세서에 의한 실행을 위해 기계-판독가능 저장 디바이스에 유형으로 포함되는 컴퓨터 프로그램 제품으로 구현될 수도 있으며; 및 본 발명의 방법 단계들은 입력 데이터에 대해 동작하여 출력을 발생함으로써, 본 발명의 기능들을 수행하는 명령들의 프로그램을 실행하는 프로그래밍가능 프로세서에 의해 수행될 수도 있다. 명령들은 바람직하게는, 데이터 저장 시스템, 적어도 하나의 입력 디바이스, 및 적어도 하나의 출력 디바이스로부터 데이터 및 명령들을 수신하고, 데이터 저장 시스템, 적어도 하나의 입력 디바이스, 및 적어도 하나의 출력 디바이스에 데이터 및 명령들에 송신하도록 연결된 적어도 하나의 프로그래밍가능 프로세서를 포함한 프로그래밍가능한 시스템 상에서 실행가능한 하나 이상의 컴퓨터 프로그램들로 구현될 수도 있다. 애플리케이션 프로그램은 원할 경우, 고급 절차적 또는 객체-지향 프로그래밍 언어로, 또는 어셈블리 또는 기계어로 구현될 수도 있으며; 어는 경우에는, 언어는 컴파일 또는 해석 언어일 수도 있다. 프로그램은 완전한 설치 프로그램, 또는 업데이트 프로그램일 수도 있다. 후자의 경우에, 프로그램은 기존 CAD 시스템을 시스템이 본 방법을 수행하는데 적합한 상태로 업데이트한다.
본 방법은 모델링된 볼륨을 표현하는 덱셀들의 세트를 제공하는 단계 (S10) 를 포함한다. 이것은 모델링된 볼륨의 가벼운 표현을 가능하게 한다 (즉, 모델링된 볼륨은 적은 메모리 공간을 이용하여 표현될 수도 있다). 또한, 이것은 ?게 처리될 수도 있는 모델링된 볼륨의 표현을 가능하게 한다. 특히, 모델링된 볼륨에 대한 설계 동작들은, 덱셀들의 세트의 데이터 구조로 인해, 모델링된 볼륨이 덱셀들의 세트에 의해 표현될 때, 특히 효율적으로 수행될 수도 있다. 사실, 설계 동작들은 높은 응답성 및 높은 강건성 (robustness) 으로 수행될 수 있다.
용어 "덱셀" 은 (용어 "픽셀" 이 "화상 엘리먼트 (piture element)" 에 대한 단축어인 것처럼) "깊이 엘리먼트 (depth element)" 에 대한 단축어인 것으로 알려져 있다. 이 덱셀의 개념은 다수의 연구 논문들에 언급되어 있다. 본 방법의 상황에서, 덱셀은 적어도 하나의 세그먼트의 세트, 즉 3D 지점들의 쌍을 포함한다. 일 예에서, 모델링된 볼륨은 적어도 2개의 세그먼트들의 세트를 포함하는 적어도 하나의 덱셀을 포함한다. 덱셀의 세그먼트들은, 여러 개이면, 순서정렬되거나 (이런 경우, 덱셀은 리스트이다), 또는 순서정렬되지 않을 수도 있다. 덱셀의 세그먼트들은 라인과 모델링된 볼륨 사이의 교차를 표현한다. 즉, 모델링된 볼륨과 교차하는 가상 라인들을 고려하면, 덱셀은 소정의 라인으로부터 발생하며 교차의 계산에 기인하는 세그먼트들의 세트이다. 따라서, 덱셀들의 세트를 제공하는 단계 (S10) 는 예컨대, 가상 라인들을 추적하고 B-Rep 또는 임의의 다른 볼륨 표현에 의해 초기에 표현될 수도 있는 그 모델링된 볼륨과의 그들의 교차들을 계산함으로써, 이런 교차들을 계산하는 단계를 포함할 수도 있다. 따라서, 덱셀들의 세트는 모델링된 볼륨을 표현한다.
덱셀들의 세트가 컴퓨터-구현되는 데이터로서 제공된다 (S10) 는 점을 유의하는 것이 중요하다. 따라서, 모델링된 볼륨의 임의의 표현과 관련하여 위에서 그리고 아래에서 제공되는 정의들은 데이터 구조 관점에서 밀접한 관계들을 갖고 있다. 예를 들어, 세그먼트는 3D 포지션들의 쌍 (예컨대, 서로에 연계 (link) 된 2개의 3D 포지션들) 로서 제공될 수도 있다. 3D 포지션 자체는 참조 3D 프레임에 연관된 3개의 좌표들의 리스트 (예컨대, 부동 (floating) 지점들) 로서 제공될 수도 있다. 덱셀은 세그먼트들의 세트이며, 이것은 세그먼트들이 세트 구조에서 함께 연계되어 있다는 것을 암시한다. 덱셀들의 세트의 덱셀들도 함께 연계될 수도 있다. 적어도 하나의 세그먼트의 세트를 그 자체가 포함하는 덱셀들의 세트에 의해 모델링된 볼륨을 표현하는 것은, 모델링된 볼륨의 고속 업데이팅 (S30) 을 가능하게 한다.
이하, 덱셀들의 컨셉이 덱셀들의 세트를 덱셀 구조 (67) 로서 제공하는 단계 (S10) 의 일 예를 제공하는 도 4 내지 도 6 을 참조하여 예시된다.
모델링된 볼륨을 고려하고 무한대 라인을 고려해 볼 때, 덱셀은 무한대 라인과 모델링된 볼륨 사이의 교차를 표현하는 세그먼트들 (또는 간격들) 의 세트이다. 이 세그먼트들의 세트는 메모리에서, 각각의 세그먼트의 경계 지점들의 세트로서 캡쳐된다. 덱셀 구조는 예를 들어, 직사각형 그리드 상에 순서정렬됨으로써 구성되는 덱셀들의 세트 (각각이 세그먼트들의 세트를 포함함) 이다. 도 4 및 도 5 는 모델링된 볼륨 (40) 을 라인들 (50) 의 10 X 10 그리드와 함께 도시한다. 본 예의 방법은 도 4 상에 도시된 바와 같이, 예컨대, B-Rep 로서, 모델링된 볼륨 (40) 을 제공하는 단계를 포함한다. 따라서, 본 예의 방법은 도 5 상에 도시된 바와 같이, 모델링된 볼륨 (40) 을 (적어도 부분적으로) 교차하는 라인들 (50) 의 10 X 10 그리드를 정의하는 단계를 포함한다. 따라서, 본 예의 방법은 도 6 상에 표현되는 바와 같이, 세그먼트들 (60 및/또는 62) 의 세트들을 포함하는 컴퓨팅 덱셀들 (65) 을 포함한다. 하나의 덱셀 (65) 이 도면 상에서 원으로 둘러싸여진다. 덱셀 (65) 은 라인 (50) 이 모델링된 볼륨 (40) 을 하나의 지점에서 또는 수개의 별개의 지점들에서 교차하는지 여부에 따라서, 수개의 세그먼트들 (60), 또는 하나의 세그먼트 (62) 를 포함할 수도 있다. 물론, 본 방법은 대안적으로는, 메모리로부터 덱셀들 (65) 을 취출할 수도 있다. 어느 경우에는, 덱셀 구조 (67) 가 이렇게 제공된다.
도 6 은 최종 덱셀 구조 (67) 를 도시한다. 모든 라인들 (50) 이 모델링된 볼륨 (40) 을 교차하지는 않으며 (본 예에서는 단지 52개의 라인들이 모델링된 볼륨 (40) 을 교차한다), 같은 수의 덱셀들 (65) 을 산출한다 (모델링된 볼륨 (40) 을 교차하지 않는 라인들은 사실 폐기되어 어떤 덱셀도 산출하지 않을 수도 있다) 는 점에 유의해야 한다. 더욱이, 일부 라인들 (50) 은 하나의 세그먼트 (62) (예를 들어, 덱셀 (2,3) 또는 덱셀 (9,6)) 를 통해서 모델링된 볼륨 (40) 과 교차하고, 수개의 세그먼트들 (60), 예를 들어, 2개의 세그먼트들 (예를 들어, 덱셀 (7,7) 또는 덱셀 (4,7)), 또는 3개의 세그먼트들 (덱셀 (2,8) 또는 덱셀 (5,8)), 또는 4개의 세그먼트들 (덱셀 (2,9) 또는 덱셀 (4,9)) 를 통해서 다른 세그먼트들과 교차한다. 최종 덱셀 구조 (67) 는 하나의 세그먼트 (62) 를 가진 36개의 덱셀들 (65), 2개의 세그먼트들 (60) 을 가진 6개의 덱셀들 (65), 3개의 세그먼트들 (60) 을 가진 5개의 덱셀들 (65) 및 4개의 세그먼트들 (60) 을 가진 5개의 덱셀들을 포함하는 52개의 덱셀들 (65) 을 포함한다.
(S10) 에서 제공되는 덱셀들의 세트는 트리덱셀 (tridexel) 구조일 수도 있다. 트리덱셀 구조는 3개의 덱셀 구조들, 일반적으로는, X-축에 평행한 덱셀 구조, Y-축에 평행한 덱셀 구조 및 Z-축에 평행한 덱셀 구조를 포함함으로써 정의된다. 본 방법은 모델링된 볼륨의 그래픽 표현을 언제라도, 예를 들어, 제공하는 단계 (S20) 및 업데이트하는 단계 (S30) 동안, 디스플레이하는 단계를 포함할 수도 있다. 디스플레이하는 것은 덱셀들의 세트에 기초할 수도 있다. 트리덱셀 구조는 "보기 방향" 에 거의 의존하지 않기 때문에, 양호한 디스플레이를 제공한다. 트리덱셀 구조는 특히 사용자가 관찰 지점을 변경할 때 좀더 정확한 디스플레이를 제공한다.
도 6 내지 도 8 은 각각 동일한 모델링된 볼륨을 표현하는 덱셀 구조를 나타낸다. 즉, 모델링된 볼륨은 도 6 내지 도 8 의 3개의 덱셀 구조들을 포함하는 트리덱셀 데이터에 의해 정의될 수도 있다. 도 6 은 Y-축을 따른, 덱셀 구조 (67) 을 나타낸다. 도 7 은 X-축을 따른, 덱셀 구조 (68) 을 나타낸다. 도 8 은 Z-축을 따른, 덱셀 구조 (69) 를 나타낸다. 각각의 도면 상에, 덱셀들의 라인들은 각각의 축에 평행하다.
또한, 세그먼트들의 끝 지점들에서 모델링된 볼륨의 경계에 대한 외측 법선 벡터는 데이터 중에서 제공될 수도 있다. 이것은 모델링된 볼륨의 더 미세한 렌더링을 가능하게 한다.
또한, 본 방법은 모델링된 볼륨에 스컬프팅 동작을 제공하는 단계 (S20) 를 포함한다. 스컬프팅 동작은 모델링된 볼륨을 스컬프팅하기 위한 시스템에 의해 제공되는 임의의 동작이다. 모델링된 볼륨을 스컬프팅함으로써, 이것은 불린 (Boolean) 연산들을 통해서 모델링된 볼륨에 볼륨을 추가하거나 및/또는 모델링된 볼륨으로부터 제거하는 것을 의미한다. 따라서, 스컬프팅 동작은 모델링된 볼륨에 대한 적어도 하나의 볼륨 불린 연산의 임의의 조합이다. 예를 들어, 국부적인 볼륨 제거 및 국부적인 볼륨 추가는 스컬프팅 동작들인 반면, 표면으로부터의 돌출 (extrusion) 은 어느 불린 연산에도 기초하지 않기 때문에, 스컬프팅 동작이 아니다. 스컬프팅 프로세스는 적어도 하나의 스컬프팅 동작의 임의의 연속이다. 일 예에서, 스컬프팅 동작은 시간 지속기간 동안 모델링된 볼륨에 추가되는 (또는, 제외되는) 연속적인 볼륨 (즉, 따로따로 떨어지지 않음) 을 수반하는 일련의 연속적인 불린 연산들이다. 예를 들어, 스컬프팅 동작은 가공 동작을 표현한다.
따라서, 덱셀들의 세트는 임의의 입체를 표현할 수도 있으며, 본 방법은 입체의 실제 스컬프팅을 시뮬레이션할 수도 있다. 본 방법은 특히 컴퓨터 지원 설계 시스템 또는 컴퓨터 지원 제조 시스템을 이용하여 실시간 가공 시뮬레이션에 포함될 수도 있다. 즉, 입체는 스톡 (stock) 일 수도 있으며, 본 방법은 절삭 툴에 의해 실질적으로 가공되고 있는 스톡의 형태를 디스플레이할 수도 있다. 이런 경우, 모델링된 볼륨은 스톡을 표현하며, 동작은 절삭 동작이다. 이 예는 가상 점토에 대한 복합적인 제조 및 형상 스컬프팅과 같은, 재료가 그 부분에 추가되는, 다른 제조 프로세스들에 일반화될 수 있다. 기계적인 설계, 형태 설계, 빌딩 아키텍처 등을 포함한, 모든 전통적인 입체 모델링 애플리케이션들에도 일반화될 수 있다. 마지막으로, 그 성능 능력 덕분에, 본 방법은 상호작용 (interactive) 3D 스컬프팅과 같은 더욱 진보된 애플리케이션들을 처리할 수 있다. 가장 일반적으로는, 스컬프팅 동작은 가공 동작을 표현할 수도 있다. 이런 경우, 모델링된 볼륨은 가공 동작 중인 제조중 가공품을 표현할 수도 있으며, 따라서, 본 방법은 제조중 가공품의 가공의 시뮬레이션을 향상시킨다. 따라서, 본 방법은 기계가공 프로세스들을 실질적으로 테스트하기 위한 우수한 기준으로서 기능할 수도 있다.
사실, 본 방법은 스컬프팅 동작에 응답하여 (즉, 따라서) 덱셀들의 세트를 업데이트하는 (즉, 수정하는) 단계 (S30) 를 더 포함한다. 즉, 본 방법은 스컬프팅 동작을, 초기에 제공된 덱셀들의 세트 (S10) 에 적용한다. 덱셀들의 업데이트된 세트는 스컬프팅 (예컨대, 가공) 이후의 오브젝트를 표현한다.
각각의 덱셀은 세그먼트들의 세트를 포함한다. 모델링된 볼륨을 교차하는 라인의 모든 세그먼트들은 하나의 덱셀로 그룹화된다. 이것은 라인-바이-라인 (line-by-line) 을 가능하게 하며, 따라서, 예를 들어, 병렬 프로세싱을 가능하게 하기 때문에, 모델링된 볼륨의 좀더 효율적인 프로세싱을 가능하게 한다. 더욱이, 덱셀들의 세트가 이웃 덱셀들의 그룹들로 파티셔닝된다. 덱셀들은 그들 사이의 거리가 미리 결정된 임계치보다 낮을 때, 이웃하고 있다고 말한다. 따라서, 덱셀들의 세트가 이웃 덱셀들 (즉, 한 그룹의 2개의 덱셀들이 반드시 이웃들이다) 로 파티셔닝될 수도 있다 (즉, 덱셀들의 따로 떨어진 서브-세트들로 분리되며, 그 서브-세트들의 재결합이 덱셀들의 전체 세트를 이룬다). 제 1 덱셀과 제 2 덱셀 사이의 거리는 제 1 덱셀의 라인과 제 2 덱셀의 라인 사이의 거리이다. 제 1 라인과 제 2 라인 사이의 거리는 제 1 라인이 제 2 라인으로부터 얼마나 멀리 있는지를 측정한 어느 거리일 수도 있다. 예를 들어, 라인들이 평행하면, 그 거리는 제 1 라인의 지점과 제 2 라인의 지점 사이의 최소 유클리드 (Euclidian) 거리일 수도 있다. 라인들이 평행하지 않으면, 그 거리는 제 1 라인의 지점과 제 2 라인의 지점 사이의 최소 유클리드 거리일 수도 있으며, 이 2개의 지점들은 덱셀들의 세트의 볼록 껍질 (convex hull) 에 속한다.
메모리 공간이 그 그룹의 덱셀들의 각각에 포함되는 세그먼트들의 최대 개수에 따라서 각각의 그룹에 할당된다. 즉, 한 그룹에 할당되는 메모리 공간은 그 그룹의 각각의 덱셀 내에 포함되는 세그먼트들의 최대 개수의 함수이며, 이 함수는 증가 함수, 아마도 선형 함수이다. 이것은 덱셀들의 세트에 할당되는 메모리 공간의 최적화된 사용을 가능하게 한다. 사실, 스컬프팅 동작들, 특히 가공 동작을 표현하는 동작들은, 대개 모델링된 볼륨에 국부적인 영향을 미친다. 덱셀들을 이웃들의 그룹들로 그룹화하는 것은 업데이트할 때 (S30) 에 덱셀들의 세트의 그룹-바이-그룹 (group-by-group) 프로세싱을 가능하게 한다. 그에 따라서, 예들을 참조하여 설명되는 바와 같이, 메모리를 그룹-바이-그룹 기준으로 할당하여, 글로벌 할당되는 메모리를 최적화하는 것이 가능하다.
덱셀들의 세트는 본 방법의 실행에 수반되는 하드웨어 및/또는 스컬프팅 컨텍스트에 적응하여, 이웃 덱셀들의 그룹들로 파티셔닝될 수도 있다. 즉, 파티셔닝은 (프로세서 및/또는 메모리와 같은) 본 방법의 실행을 위해 사용되는 하드웨어 및/또는 스컬프팅 컨텍스트 (즉, 본 방법의 상황에 관한 정보) 에 적응될 수도 (즉, 의존할 수도) 있다. 예를 들어, 한 그룹 내 이웃 덱셀들의 최대 개수는 프로세서가 수행할 수도 있는 병렬 스레드 (parallel thread) 들의 개수의 증가 함수일 수도 있다. 스컬프팅 컨텍스트는 모델링된 볼륨 및/또는 스컬프팅 동작에 관한 정보를 포함할 수도 있다. 예를 들어, 스컬프팅 컨텍스트는 모델링된 볼륨의 복잡도 (예컨대, 불규칙성 정도의 측정) 및/또는 스컬프팅 동작의 복잡도 (예컨대, 스컬프팅 동작을 수행하기 위해 실질적으로 사용되는 툴의 기하학적 구조) 을 측정할 수도 있다. 또한, 스컬프팅 컨텍스트는 이런 툴의 사이즈에 관한 정보를 포함할 수도 있다. 예를 들어, 한 그룹 내 이웃 덱셀들의 최대 개수는 모델링된 볼륨의 복잡도의 감소 함수, 스컬프팅 동작의 복잡도, 및/또는 스컬프팅 툴의 사이즈의 증가 함수일 수도 있다.
이하, 종래기술이 본 방법의 이점들을 강조하기 위해 설명된다.
종래기술에서 알려져 있는 LDNI 구현들의 결정적인 약점은 주어진 정확도 레벨에 도달하는데 요구되는 메모리의 사이즈이다. 공지된 LDNI 구현들은 "프레임 버퍼들" 및 "층들" 이용하고, 모델링된 볼륨을 표현하는 덱셀들의 세트를 GPU 에 의해 OpenGL 및 Shaders 프로그래밍을 이용하여 프로세싱한다. "프레임 버퍼" 는 이미지를 픽셀들의 2차원 어레이로서 저장하기 위해 초기에 담당되었던 GPU 에 위치된 메모리 영역이다. GPGPU 기술은 이 프레임 버퍼를 이용하여, 깊이 간격들 (즉 덱셀들의 세그먼트들) 의 2차원 어레이를 저장한다. 프레임 버퍼의 각각의 엘리먼트가 오직 하나의 세그먼트만을 포함하는 것으로 이해되어야 한다. "층" 은 다음과 같이 정의된다. 각각의 덱셀 내에, 세그먼트들이 깊이 순서에 따라서 분류된다. "층" 은 동일한 깊이 순서를 갖는 모든 세그먼트들의 세트이다.
OpenGL 및 Shaders 프로그래밍을 이용하는, 종래기술의 계산은 각각의 층을 저장하는데 완전한 프레임 버퍼를 필요로 한다. 따라서, 덱셀 구조를 고려하고 Nmax 개의 덱셀의 간격들의 최대 개수를 알아내면, Nmax 개의 층들이 계산되어, 같은 수의 프레임 버퍼들에 저장된다. 대부분의 계산된 프레임 버퍼들이 많이 부족하더라도, 성능 목적을 위해, 전체 모델을 GPU 보드 상에 계속 상주시키려고 하는 한, 이 상황에서 메모리 관리의 엄밀성이 요구된다. 따라서, 덱셀들의 세트가 Nx * Ny 덱셀들을 포함하면, 온 보드 메모리는 사이즈 Nx * Ny * Nmax 의 버퍼를 예비해야 한다. 이것은 도 9 내지 도 13 을 참조하여 예시된다.
도 6 의 덱셀 구조 (67) 에 있어, 프레임 버퍼 사이즈는, 라인들의 10 * 10 그리드에 따라, Nx * Ny =10 * 10 이다. 도 9 에 도시된 바와 같이, 적어도 하나의 덱셀 (예를 들어, 도 6 의 원형의 덱셀 (65)) 이 4개의 세그먼트들 (60) 을 포함하기 때문에, 4개의 층들 (72, 74, 76 및 78) 은 덱셀들로 정의된다. 또한, 이제 프레임 버퍼들을 사이즈 10 * 10 의 그리드로서 표현하는 도 10 내지 도 13 이 참조되며, 프레임 버퍼가 박스에 대응하는 그리드 및 프레임 버퍼에 대응하는 층의 포지션에 대해 덱셀 세그먼트를 저장하는 경우 박스들 내에 크로스 (cross) 가 존재한다. 제 1 프레임 버퍼 (82) 는 세그먼트들의 제 1 층 (72) 를 저장하고; 제 2 프레임 버퍼 (84) 는 세그먼트들의 제 2 층 (74) 을 저장하고; 제 3 프레임 버퍼 (86) 는 세그먼트들의 제 3 층 (76) 을 저장하고; 그리고, 제 4 프레임 버퍼 (88) 는 세그먼트들의 제 4 층 (78) 을 저장한다. 도 10 내지 도 13 의 표 (table) 들은 프레임 버퍼들 (82-88) 의 사용된 및 미사용된 메모리 슬롯들을 도시한다. X-표시된 박스 (87) 는 하나의 세그먼트를 저장하며, 빈 박스 (89) 는 미사용된 메모리이다. 모든 4개의 프레임 버퍼들 (82, 84, 86, 88) 이 메모리에 할당되며, 이것은 막대한 양의 미사용된 메모리를 도시하는 것으로 이해되어야 한다.
종래기술의 이 예에 있어, 할당된 메모리 대 사용된 메모리의 균형은 다음과 같다. 모든 4개의 프레임 버퍼들에 요구되는 메모리 사이즈는 Nx * Ny * Nmax = 10 * 10 * 4 = 400 인 반면, 사용된 메모리는 덱셀들의 간격들의 수: 83 이다. 더욱이, LDNI 프레임 버퍼들의 부족한 데이터 표현은 덱셀/스레드 레벨에서 층들의 연계된 리스트들 또는 간접 표 (indirection table) 들과 같은 통상의 희소 매트릭스 표현들로부터 직접 유도되지 않을 것이다. 사실, 이런 기법들은 대량 병렬 하드웨어 아키텍처 및 대응하는 프로그래밍 앱스트랙션 (programming abstraction) 에 적응되지 않으며, 따라서, 이것은 비효율적인 실행 속도 및 데이터 흐름으로 이끌 것이다.
종래기술과는 반대로, 본 방법은 상대적으로 작은 메모리 공간을 사용하면서도, 고속의 강건한 업데이팅 (S30) 을 가능하게 한다. 사실, 적어도 하나의 세그먼트의 세트를 각각 포함하는 덱셀들의 세트로서 구성되는 데이터의 구조는 병렬 프로세싱을 가능하게 한다. 그룹의 덱셀들의 각각에 포함되는 세그먼트들의 최대 개수에 따른, 이웃 덱셀들의 그룹들로의 파티셔닝 및 메모리 공간의 할당은 그룹-바이-그룹 기준으로 병렬 프로세싱을 수행할 수도 있도록 한다. 스컬프팅 동작이 국부적인 효과를 대개 가지므로, 이것은 종래기술에서 점유되는 메모리 사이즈의 관점에서 불편함을 회피하면서, 병렬 프로세싱의 이점들에 도달할 수 있도록 한다.
덱셀들의 세트를 업데이트하는 단계 (S30) 는 스컬프팅 동작에 의해 영향을 받는 이웃 덱셀들의 그룹들을 결정하는 단계, 및 그 결정된 그룹들의 각각을 업데이트하는 단계를 포함할 수도 있다. 즉, 업데이트하는 단계 (S30) 는 효율에서 이득을 취하기 위해, 업데이트 시에 실제로 수정되어질 그룹들을 수정한다. 사실, 예를 들어, 계산을 고속화하기 위해, 이웃 덱셀들의 그룹이 스컬프팅 동작에 의해 영향을 받는지를 예측하는 것이 유용할 수도 있다.
그 결정된 그룹들의 각각을 업데이트하는 것은 각각의 그룹에 대해, 병렬 프로세싱에 의해 각각의 그룹의 덱셀들을 업데이트하는 것을 포함할 수도 있다. 이것은 더 빠른 업데이트 (S30) 를 가능하게 하며, 따라서, 덱셀들의 세트가 디스플레이되는 경우, 스컬프팅 동작을 제공하는 사용자-액션에 대한 더 빠른 응답을 가능하게 한다.
병렬 프로세싱은 시스템에 의해 동시에 다수의 작업들을 수행하는 것을 포함한다. 본 방법의 경우에, 각각의 그룹의 덱셀들을 업데이트하는 단계는 각각의 그룹의 덱셀들의 각각에 대해 단일 명령들 스레드를 실행하는 단계를 포함할 수도 있다. 따라서, 각각의 그룹의 덱셀들을 업데이트하는 것은 SIMD (단일 명령 다중 데이터) 병렬 프로세싱에 의해 수행될 수도 있다. 특히, 예를 들어, 시스템이 10 또는 100 개 이상의 프로세서들로 네트워크되면, 본 방법을 실행하는 시스템의 프로세서는 대량 병렬 프로세싱 유닛일 수도 있다.
각각의 덱셀에 있어, 불린 연산들, 오프셋들 또는 충돌 검출과 같은 통상의 모델링 연산자 (operator) 들 은 그들의 1차원 상대-부분 (counter-part), 즉, 세그먼트들에 대한 간단한 동작들로 압축된다. 하나의 덱셀의 계산 및 업데이트가 다른 덱셀들에 대한 대응하는 동작에 의존하지 않기 때문에, 그 모델이 대량 병렬 프로세싱에 잘 적응된다.
이하, 작업 그룹 및 단일 명령 다중 데이터 실행이 설명되고 예시된다. 본 방법은 작업 그룹들 및 단일 명령 다중 데이터를 통해서 실행될 수도 있다. 이웃 덱셀들의 그룹들은 작업 그룹들을 구성할 수도 있으며, 업데이트하는 단계 (S30) 는 스컬프팅 동작에 의해 영향을 받는 것으로 결정되는 (이런 결정하는 것은 아마도 SIMD 실행의 제 1 단계임) 각각의 그룹에 대한 SIMD 실행을 포함할 수도 있다.
작업 그룹들 및 SIMD (단일 명령 다중 데이터) 실행은 OpenCL 컨셉들이다. 즉, 동일한 작업 그룹에 속하는 모든 스레드들은 "단일 명령 다중 데이터" 방식에 따라서 행동한다. 일 예로서, 이하 2개의 입력 숫자들의 최대 개수를 출력하는 매우 간단한 프로그램이 고려되며, 즉 max (a,b) 이며, 여기서, a 및 b 는 2개의 입력 숫자들이다.
프로그램은 다음의 명령들을 포함할 수도 있다:
01 if (a > b) then
02 c := a
03 else
04 c := b
05 end if
06 return c
이 프로그램은 6개의 명령들을 포함한다. 이하, "max" 프로그램을 3회 호출함으로써, 숫자들의 3개의 쌍들의 최대 개수를 계산하는 다음 "Test" 프로그램을 고려한다.
프로그램 Test
x := max (5,4)
y := max (2,6)
z := max (3,3)
end.
"Test" 프로그램의 단계적 실행은 컴퓨터에 있어, 제 1 호출의 명령들 1,2,5,6, 그후 제 2 호출의 명령들 1,3,4,5,6 및 제 3 호출의 명령들 1,3,4,5,6 를 연속적으로 실행하는 것이다. 이것은 14개의 실행 명령들을 초래한다.
이하, 동일한 작업 그룹에 속하는 3개의 스레드들은 "Test" 프로그램을 실행할 수도 있다. 각각의 스레드는 SIMD 전략에 따라서 "max" 프로그램에의 하나의 호출을 실행한다. 이것은 프로그램 "max" 에 대해 모든 3개의 호출들의 명령들이 상이한 데이터세트들을 처리함에도 불구하고, "동시에" 실행된다는 것을 의미한다. 좀더 정확하게는, 표 1 은 단계별 프로세스를 예시한다.
제 1 호출의 데이터세트 |
제 2 호출의 데이터세트 |
제 3 호출의 데이터세트 |
|||
a=5, b=4 | a=2, b=6 | a=3, b=3 | |||
명령 | 계산 단계 | ||||
01 | if (a > b) then | 실행 | 실행 | 실행 | 단계 1 |
02 | c := a | 실행 | 대기 | 대기 | 단계 2 |
03 | else | 대기 | 실행 | 실행 | 단계 3 |
04 | c := b | 대기 | 실행 | 실행 | 단계 4 |
05 | end if | 실행 | 실행 | 실행 | 단계 5 |
06 | return c | 실행 | 실행 | 실행 | 단계 6 |
표 1. 3개의 (a, b) 쌍들에 의해 "max(a,b) 프로그램" 을 실행하는 프로세스의 예시.
이 계산의 단계 1 에서, 작업 그룹은 "max" 프로그램의 제 1 명령 "if (a > b) then" 을 모든 3개의 데이터 세트들로 실행한다. 단계 2 에서, 분기 효과 (branching effect) 는 제 2 및 제 3 스레드들이 이 시간 기간 동안 대기하는 동안, 제 1 스레드가 "max" 프로그램의 명령 2 을 실행한다는 점이다. 이것은 제 1 스레드가 a>b 상황을 관리하는 동안 제 2 및 제 3 스레드들이 a ≤ b 상황을 관리하기 때문이다. 단계 3 에서, 제 1 스레드가 대기하는 동안 제 2 및 제 3 스레드들은 "max" 프로그램의 명령 3 을 실행한다. 이것은 표에 예시된 바와 같이 계속된다. 바닥 라인은, 3개의 스레드들 작업 그룹이 14개의 명령들을 실행하는 단계적 전략과는 반대로, 6개의 명령들의 동등한 계산 시간을 실행함으로써, "max" 프로그램의 3개의 호출들을 실행하는 것이다.
분명히, 이 예는 동기 스레드들의 작업 그룹이 프로그램이 독립적인 데이터 세트들로 실행될 때, 그리고, 분기 로직들이 하나의 실행으로부터 다른 실행으로 별로 분기하지 않을 때 효율적임을 예시한다.
이와 유사하게, 본 방법은 각각의 그룹의 덱셀들에 대해 SIMD 를 실행함으로써 그룹들의 각각을 업데이트할 수도 있다. 각각의 그룹의 덱셀들이 이웃들이므로, SIMD 는 작업 그룹 (이웃 덱셀들의 상기 그룹) 의 모든 스레드들 (즉, 이웃 덱셀들의 그룹의 덱셀들) 에 대해 적시의 유사한 방법으로 실행될 가능성이 있다. 사실, 동일한 그룹의 덱셀들은 통계적으로 유사하며 스컬프팅 동작에 의해 유사한 방식으로 영향을 받는다. 따라서, 동일한 그룹의 덱셀들의 업데이팅은 대개 (거의) 동일한 동작들을 포함한다. 이러한 이유로, 병렬 프로세싱의 이점들이 달성되며, 메모리 공간이 절약된다.
본 방법은 그 업데이트된 그룹의 덱셀들의 각각에 포함되는 세그먼트들의 최대 개수가 수정될 때에 그 업데이트된 그룹에 할당되는 메모리 공간을 적응시키는 것을 더 포함할 수도 있다. 즉, 본 방법은 그 스컬프팅 동작에 응답하여 덱셀들의 세트를 업데이트한 (S30) 후, 메모리의 할당을 수정하는 단계를 더 포함할 수도 있다. 이것은 메모리 블록들을 할당해제하거나 추가로 할당하는 단계를 포함할 수도 있다. 이 블록 할당/할당해제 메커니즘은 메모리 모델의 효율을 대폭 향상시킨다. 실제는, 온 보드 메모리의 사이즈가 제한되므로, 주어진 메모리 사이즈에 대해 더 우수한 정확도가 가능해진다. 또한, 성능의 이득을 유도한다.
이에 따라, 본 방법은 (예를 들어, CUDA 또는 OpenCL 프로그래밍 앱스트랙션으로서) 대량 병렬 하드웨어의 컨텍스트에 적응되는 메모리 블록 할당/할당해제의 메커니즘을 제공할 수도 있다. 블록들은 작업 그룹 레벨 (Open CL 컨셉) 에서 할당/할당해제될 수도 있으며, 간접 표들은 각각의 작업 그룹 및 덱셀들의 대응하는 그룹에 대해 이들 블록들을 어드레스할 수도 있다.
CUDA 및 OpenCL 언어들은 일 예를 참조하여 아래에서 설명하는 특징들과 함께, 대량 병렬 하드웨어에 프로그래밍 앱스트랙션을 제공한다.
본 예에서, 스레드들은 작업 그룹들 (OpenCL 전문용어) 로 그룹화된다. 즉, 동일한 작업 그룹에 속하는 스레드들은 SIMD 방법 (단일 명령 다중 데이터) 로 실행되는 것이 바람직하며, 따라서, 분기 확산 (branching divergence) 들이 작을 때 더욱 효율적이다.
메모리는 2가지 주 카테고리들로 나눠진다. 첫째, 단일 스레드에 대해 사설이거나 또는 작업 그룹에 의해 공유되는, 빠른 액세스를 갖는 작은 사이즈의 사설/로컬 (OpenCL 전문용어) 메모리. 둘째, 모든 스레드들로부터 볼 수 있고 바람직하게는 인접한 블록들에 의해 액세스되는, 느린 액세스를 가진 큰 글로벌 메모리 영역.
업데이팅 (S30) 의 일부 단계에서, 개개의 스레드는 개개의 덱셀을 업데이트하는 것을 담당하며, 동기 스레드들의 "작업 그룹" 은 우리가 덱셀 그룹을 호출하는 인접한 덱셀들의 그룹을 관리한다. 본 예의 데이터 구조는 모든 덱셀 그룹들이 k 로 표기되는 동일한 개수의 덱셀들을 갖도록 설계된다. 동일한 덱셀 그룹 (일반적으로, 그리드 내의 작은 서브-그리드) 의 덱셀들의 기하학적 근접은 유사한 구성의 가능성 및 요구되는 층들의 개수를 증가시킨다.
도 6 의 예를 다시 참조하면, 덱셀 구조 (67) 는 본 예의 방법에 따라서, 5 * 5 = 25 덱셀 그룹들의 그리드로 파티셔닝될 수도 있으며, 각각의 그룹은 k = 4 개의 덱셀들을 포함한다. 동일한 그룹 내의 모든 덱셀들은 상기 그룹의 모든 덱셀들의 세그먼트들의 최대 개수에 점점 더 의존하여, 동일한 메모리 사이즈로 할당될 수도 있다. 도 14 는 덱셀 그룹들을 세그먼트들의 그들 각각의 최대 개수들 140 과 함께 도시한다.
이 덱셀 그룹 구조에 있어 할당되는 메모리 사이즈는 1-세그먼트 덱셀들의 10개의 그룹들, 3-세그먼트들 덱셀들의 3개의 그룹들, 2-세그먼트들 덱셀들의 하나의 그룹 및 4-세그먼트들 덱셀들의 3개의 그룹들, 즉, (10 * 1 + 3 * 3 + 1 * 2 + 4 * 3 ) * 4 = 132 메모리 유닛들을 저장한다. 종래기술에 의해 요구되는 400 개의 메모리 유닛들에 비해, 이것은 메모리 공간의 현저하게 높은 이득이 있다.
프로세싱 동안, 동일한 덱셀 그룹의 덱셀들의 세그먼트들의 최대 개수가 1 만큼 증가할 때, 글로벌 메모리의 블록이 할당될 수도 있다. 물론, 이 메모리 블록은 세그먼트들을 저장하는 사이즈로 이루어진다. 반대로, 동일한 작업 그룹 내 모든 덱셀들의 간격들의 최대 개수가 감소할 때, 메모리 블록 표 내 대응하는 블록이 할당해제될 수도 있다. 이러한 방법으로, 다음 재할당은 자유로운 블록을 재사용할 수 있다. 따라서, 이것은 SIMD (동기) 스레드들의 그룹에 의해 최적으로 수행될 수 있다.
여기서는, 업데이트하는 단계 (S30) 가 각각의 그룹에 대해 병렬 프로세싱에 의해 실행되도록 이런 업데이트가 SIMD 를 통해서 일어날 수도 있다는 사실을 제외하고는, 한 그룹의 덱셀들의 각각을 업데이트하는 방법에 관해서는 거의 언급되지 않았다. 본 방법은 덱셀들의 각각을 업데이트하는 임의의 방식을 포함할 수도 있다. 예를 들어, 각각의 그룹의 덱셀들을 업데이트하는 단계는 각각의 그룹의 각각의 덱셀에 대해서, 각각의 덱셀에 대한 스컬프팅 동작의 영향을 평가하는 단계, 및 그에 따라, 각각의 덱셀을 수정하는 단계를 포함한다. 예를 들어, 스컬프팅 동작이 절삭 동작이면, 절삭 볼륨은 이런 동작에 의해 영향을 받은 덱셀로부터 제거될 수도 있다.
각각의 덱셀에 대한 스컬프팅 동작의 영향을 평가하는 단계는 각각의 덱셀의 세그먼트들에 대한 스컬프팅 동작의 영향을 평가하는 단계를 포함할 수도 있다. 즉, 업데이트가 세그먼트 레벨 상에서 일어난다. 사실, 스컬프팅 동작은 덱셀의 세그먼트 구조를 수정할 수도 있다. 예를 들어, 일부 세그먼트들이 삭제될 수도 있거나, 일부 세그먼트들이 추가될 수도 있거나, 및/또는 일부 세그먼트들이 수정될 수도 있다.
Claims (14)
- 모델링된 볼륨 (volume) 을 설계하기 위한 컴퓨터-구현되는 방법으로서,
상기 모델링된 볼륨을 표현하는 덱셀 (dexel) 들의 세트를 제공하는 단계 (S10) 로서, 각각의 덱셀은 라인과 상기 모델링된 볼륨 사이의 교차 (intersection) 를 표현하는 적어도 하나의 세그먼트의 세트를 포함하고, 상기 덱셀들의 세트는 이웃 덱셀들의 그룹들로 파티셔닝 (partitioning) 되며, 메모리 공간은 상기 그룹의 덱셀들의 각각에 포함되는 세그먼트들의 최대 개수에 따라서 각각의 그룹에 할당되는, 상기 덱셀들의 세트를 제공하는 단계;
상기 모델링된 볼륨에 대해 스컬프팅 (sculpting) 동작을 제공하는 단계 (S20); 및
상기 스컬프팅 동작에 응답하여, 상기 덱셀들의 세트를 업데이트하는 단계 (S30) 를 포함하는, 모델링된 볼륨을 설계하기 위한 컴퓨터-구현되는 방법. - 제 1 항에 있어서,
상기 덱셀들의 세트를 업데이트하는 단계는, 상기 스컬프팅 동작에 의해 영향 받는 이웃 덱셀들의 그룹들을 결정하는 단계, 및 상기 결정된 그룹들의 각각을 업데이트하는 단계를 포함하는, 모델링된 볼륨을 설계하기 위한 컴퓨터-구현되는 방법. - 제 2 항에 있어서,
상기 결정된 그룹들의 각각을 업데이트하는 단계는, 각각의 그룹에 대해, 병렬 프로세싱에 의해 상기 각각의 그룹의 덱셀들을 업데이트하는 단계를 포함하는, 모델링된 볼륨을 설계하기 위한 컴퓨터-구현되는 방법. - 제 2 항에 있어서,
상기 각각의 그룹의 덱셀들을 업데이트하는 단계는, 상기 각각의 그룹의 각각의 덱셀에 대해, 상기 각각의 덱셀에 대한 상기 스컬프팅 동작의 영향을 평가하는 단계, 및 그에 따라, 상기 각각의 덱셀을 수정하는 단계를 포함하는, 모델링된 볼륨을 설계하기 위한 컴퓨터-구현되는 방법. - 제 4 항에 있어서,
상기 각각의 덱셀에 대한 상기 스컬프팅 동작의 영향을 평가하는 단계는, 상기 각각의 덱셀의 세그먼트들에 대한 상기 스컬프팅 동작의 영향을 평가하는 단계를 포함하는, 모델링된 볼륨을 설계하기 위한 컴퓨터-구현되는 방법. - 제 5 항에 있어서,
상기 각각의 그룹의 덱셀들을 업데이트하는 단계는, SIMD (Single Instruction Multiple Data) 병렬 프로세싱에 의해 수행되는, 모델링된 볼륨을 설계하기 위한 컴퓨터-구현되는 방법. - 제 2 항에 있어서,
상기 방법은, 상기 업데이트된 그룹의 덱셀들의 각각에 포함되는 세그먼트들의 최대 개수가 수정되는 경우 상기 업데이트된 그룹에 할당되는 메모리 공간을 적응시키는 단계를 더 포함하는, 모델링된 볼륨을 설계하기 위한 컴퓨터-구현되는 방법. - 제 1 항에 있어서,
상기 덱셀들의 세트는 상기 방법의 실행에 수반되는 하드웨어 및/또는 스컬프팅 컨텍스트 (sculpting context) 에 적응하여, 상기 이웃 덱셀들의 그룹들로 파티셔닝되는, 모델링된 볼륨을 설계하기 위한 컴퓨터-구현되는 방법. - 모델링된 볼륨을 설계하기 위한 시스템으로서,
상기 시스템은 제 1 항 내지 제 8 항 중 어느 한 항에 기재된 방법을 수행하기 위한 명령들을 기록한 메모리 및 상기 명령들을 실행하기 위해 상기 메모리와 연결된 적어도 하나의 프로세서를 포함하는, 모델링된 볼륨을 설계하기 위한 시스템. - 제 9 항에 있어서,
상기 프로세서는 대량 병렬 프로세싱 유닛인, 모델링된 볼륨을 설계하기 위한 시스템. - 제 9 항에 있어서,
상기 시스템은 상기 명령들의 실행을 론칭 (launching) 하는데 적합한 적어도 하나의 GUI 를 포함하는, 모델링된 볼륨을 설계하기 위한 시스템. - 제 11 항에 있어서,
상기 GUI 는 GPU 를 포함하고, 상기 프로세서는 상기 GPU 인, 모델링된 볼륨을 설계하기 위한 시스템. - 제 1 항 내지 제 8 항 중 어느 한 항에 기재된 방법을 수행하기 위한 명령들을 포함하는 컴퓨터 프로그램을 기록한 컴퓨터 판독가능 저장 매체.
- 삭제
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP11306424.0 | 2011-11-03 | ||
EP11306424.0A EP2590144B1 (en) | 2011-11-03 | 2011-11-03 | Designing a modeled volume represented by dexels |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20130049753A KR20130049753A (ko) | 2013-05-14 |
KR101947184B1 true KR101947184B1 (ko) | 2019-02-12 |
Family
ID=45218590
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020120123823A KR101947184B1 (ko) | 2011-11-03 | 2012-11-02 | 덱셀들에 의해 표현되는 모델링된 볼륨의 설계 |
Country Status (6)
Country | Link |
---|---|
US (1) | US10217291B2 (ko) |
EP (1) | EP2590144B1 (ko) |
JP (1) | JP6046449B2 (ko) |
KR (1) | KR101947184B1 (ko) |
CN (1) | CN103631981B (ko) |
CA (1) | CA2794074C (ko) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2590142B1 (en) | 2011-11-03 | 2018-03-14 | Dassault Systèmes | Designing a modeled volume represented by dexels |
EP2590143B1 (en) | 2011-11-03 | 2018-10-24 | Dassault Systèmes | Simulation of the machining of a workpiece |
CN103400417B (zh) * | 2013-08-02 | 2016-07-06 | 拓维信息系统股份有限公司 | 一种基于计算机仿生的模拟铜版雕刻效果的图像处理方法 |
US9703696B1 (en) * | 2013-09-11 | 2017-07-11 | Altera Corporation | Guided memory buffer allocation |
EP3040797B1 (en) | 2014-12-31 | 2020-10-28 | Dassault Systèmes | Simulating the machining of a workpiece |
US10621524B2 (en) * | 2015-11-09 | 2020-04-14 | Dassault Systemes Americas Corp. | Exporting hierarchical data from a source code management (SCM) system to a product lifecycle management (PLM) system |
US10621526B2 (en) * | 2015-11-09 | 2020-04-14 | Dassault Systemes Americas Corp. | Exporting hierarchical data from a product lifecycle management (PLM) system to a source code management (SCM) system |
CN107526895B (zh) * | 2017-09-06 | 2021-02-05 | 合肥工业大学 | 一种古民居群快速建模系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000235407A (ja) | 1999-02-15 | 2000-08-29 | Japan Science & Technology Corp | 表示方法及び表示プログラムを記録したコンピュータ読み取り可能な記録媒体及び表示装置 |
US20110081071A1 (en) | 2009-10-06 | 2011-04-07 | Thomas Matthew Benson | Method and apparatus for reduction of metal artifacts in ct images |
WO2011042764A1 (en) | 2009-10-06 | 2011-04-14 | Pécsi Tudományegyetem | Method, computer system and computer program product for machining simulation and for visually presenting such simulation |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4833617A (en) | 1987-08-14 | 1989-05-23 | General Electric Company | Solid modeling based adaptive feedrate control for NC machining |
US5710709A (en) | 1993-08-19 | 1998-01-20 | Iowa State University Research Foundation, Inc. | NC milling simulation and dimensional verification via dexel representation |
US6311100B1 (en) | 1998-09-14 | 2001-10-30 | Mass. Institute Of Technology | Tool path generator for computer aided manufacturing |
DE19846426A1 (de) | 1998-10-08 | 2000-04-13 | Open Mind Software Technologie | Verfahren zum Steuern der Arbeitsbewegung eines Werkzeugs zur materialabtragenden Bearbeitung eines Materialblocks |
JP2001109906A (ja) * | 1999-10-01 | 2001-04-20 | Mitsubishi Electric Inf Technol Center America Inc | ボリューム・データ・セットのレンダリング装置およびその方法 |
US20020133264A1 (en) | 2001-01-26 | 2002-09-19 | New Jersey Institute Of Technology | Virtual reality system for creation of design models and generation of numerically controlled machining trajectories |
DE10144932B4 (de) | 2001-09-12 | 2014-07-31 | Siemens Aktiengesellschaft | Visualisierung von Werkstücken bei der Simulation von Fräsprozessen |
WO2004110309A2 (en) | 2003-06-11 | 2004-12-23 | Case Western Reserve University | Computer-aided-design of skeletal implants |
DE10330831A1 (de) | 2003-07-08 | 2005-02-10 | Mtu Aero Engines Gmbh | Fräsverfahren zur Fertigung von Bauteilen |
KR100517880B1 (ko) | 2003-11-20 | 2005-09-28 | 학교법인 포항공과대학교 | Cnc 가공에서 생산시간 단축과 가공 정밀도 향상을위한 이송속도 스케줄링 방법 |
US7747418B2 (en) | 2005-12-09 | 2010-06-29 | Leu Ming C | Computer aided dental bar design |
DE102007059568A1 (de) | 2007-12-11 | 2009-06-18 | Mtu Aero Engines Gmbh | Tauchfräsverfahren |
US9530246B2 (en) | 2009-01-15 | 2016-12-27 | Mitsubishi Electric Corporation | Collision determination device and collision determination program |
US8538574B2 (en) | 2009-04-02 | 2013-09-17 | Dmg Electronics Gmbh | Method and apparatus for generating control data for controlling a tool on a machine tool |
US8265909B2 (en) | 2009-05-19 | 2012-09-11 | Mitsubishi Electric Research Laboratories, Inc. | Method for reconstructing a distance field of a swept volume at a sample point |
CN102472617B (zh) | 2009-11-10 | 2014-07-02 | 三菱重工业株式会社 | 工件测量装置、防止碰撞装置和机床 |
US20130030781A1 (en) | 2010-04-07 | 2013-01-31 | Mitsubishi Electric Corporation | Processing stimulation method, device for the same, and program for causing a computer to execute the method |
US8838419B2 (en) | 2011-06-24 | 2014-09-16 | Mitsubishi Electric Research Laboratories, Inc. | System and method for simulating machining objects |
EP2590142B1 (en) | 2011-11-03 | 2018-03-14 | Dassault Systèmes | Designing a modeled volume represented by dexels |
EP2590143B1 (en) | 2011-11-03 | 2018-10-24 | Dassault Systèmes | Simulation of the machining of a workpiece |
EP3040797B1 (en) | 2014-12-31 | 2020-10-28 | Dassault Systèmes | Simulating the machining of a workpiece |
-
2011
- 2011-11-03 EP EP11306424.0A patent/EP2590144B1/en active Active
-
2012
- 2012-11-01 CA CA2794074A patent/CA2794074C/en active Active
- 2012-11-01 US US13/666,900 patent/US10217291B2/en active Active
- 2012-11-02 KR KR1020120123823A patent/KR101947184B1/ko active IP Right Grant
- 2012-11-02 CN CN201210585587.8A patent/CN103631981B/zh active Active
- 2012-11-02 JP JP2012242629A patent/JP6046449B2/ja active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000235407A (ja) | 1999-02-15 | 2000-08-29 | Japan Science & Technology Corp | 表示方法及び表示プログラムを記録したコンピュータ読み取り可能な記録媒体及び表示装置 |
US20110081071A1 (en) | 2009-10-06 | 2011-04-07 | Thomas Matthew Benson | Method and apparatus for reduction of metal artifacts in ct images |
WO2011042764A1 (en) | 2009-10-06 | 2011-04-14 | Pécsi Tudományegyetem | Method, computer system and computer program product for machining simulation and for visually presenting such simulation |
Non-Patent Citations (1)
Title |
---|
"ATI Stream Computing OpenCL Programming Guide", Advanced Micro Devices, 2010.06.01. |
Also Published As
Publication number | Publication date |
---|---|
CA2794074A1 (en) | 2013-05-03 |
JP2013097811A (ja) | 2013-05-20 |
CN103631981A (zh) | 2014-03-12 |
EP2590144B1 (en) | 2018-10-24 |
US10217291B2 (en) | 2019-02-26 |
EP2590144A1 (en) | 2013-05-08 |
US20130116984A1 (en) | 2013-05-09 |
CA2794074C (en) | 2020-09-08 |
JP6046449B2 (ja) | 2016-12-14 |
CN103631981B (zh) | 2018-01-23 |
KR20130049753A (ko) | 2013-05-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101947184B1 (ko) | 덱셀들에 의해 표현되는 모델링된 볼륨의 설계 | |
US20240070966A1 (en) | Methods and Graphics Processing Units for Determining Differential Data for Rays of a Ray Bundle | |
KR102028203B1 (ko) | 워크피스의 기계가공의 시뮬레이션 | |
JP7327943B2 (ja) | フライス作業によって製造可能な部品の設計 | |
US10417803B2 (en) | Multiple-pass rendering of a digital three-dimensional model of a structure | |
CN105761303B (zh) | 在3d建模组件上创建包围盒 | |
KR20160082481A (ko) | 워크피스의 가공의 시뮬레이팅 | |
US9117300B2 (en) | Designing a modeled volume represented by dexels | |
JP2016126795A (ja) | オブジェクトのセットの視点の選択 | |
Neuhauser et al. | Interactive focus+ context rendering for hexahedral mesh inspection | |
US11521351B2 (en) | Associating object property data with locations | |
Inui et al. | A comparison of two methods for geometric milling simulation accelerated by GPU | |
JPH06314317A (ja) | Cadデータの立体図描画方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |