맨위로가기

구조적 입체기하학

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

구조적 입체기하학(CSG)은 기하 기본체를 불 대수 연산을 통해 결합하여 복잡한 3차원 객체를 생성하는 모델링 기법이다. 직육면체, 원기둥, 구 등 간단한 형태의 기본체를 합집합, 교집합, 차집합 등의 연산을 통해 조합한다. CSG는 정확한 모델링, 쉬운 수정, 수밀성 보장, 내부/외부 판별 용이성 등의 장점을 가지며, 광선 추적 렌더링에 유용하게 사용된다. CAD, 게임 엔진, 3D 모델링 소프트웨어 등 다양한 분야에서 활용되며, 메쉬를 CSG 트리로 변환하는 역 CSG 기술도 연구되고 있다.

광고

더 읽어볼만한 페이지

  • 유클리드 공간기하학 - 원기둥
    원기둥은 밑면이 원인 3차원 도형으로, 직사각형을 회전시켜 만들 수 있으며, 부피는 밑면의 면적과 높이의 곱으로, 겉넓이는 밑넓이와 측면적의 합으로 계산한다.
  • 유클리드 공간기하학 - 입체각
    입체각은 3차원 공간에서 한 점을 기준으로 물체가 보이는 범위를 나타내는 각도의 일반화된 개념으로, 구의 중심에서 바라본 물체의 겉넓이와 구 반지름의 제곱의 비율로 정의되며 스테라디안 단위를 사용하고, 천문학, 물리학, 컴퓨터 그래픽스 등 다양한 분야에서 활용된다.
  • 컴퓨터 지원 설계 - 빌딩 정보 모델링
    빌딩 정보 모델링(BIM)은 건축물의 전 생애주기 동안 발생하는 정보를 디지털 모델로 통합 관리하는 프로세스이다.
  • 컴퓨터 지원 설계 - 컴퓨터 지원 제조
    컴퓨터 지원 제조(CAM)는 컴퓨터 소프트웨어를 사용하여 제조 공정을 제어하고 자동화하는 기술로, 설계 데이터를 기반으로 공작 기계 작동을 위한 NC 데이터를 생성하며 다양한 가공 방식과 차원을 지원한다.
  • 3차원 컴퓨터 그래픽스 - 픽셀 셰이더
    픽셀 셰이더는 렌더링 과정에서 픽셀의 색상을 계산하여 최종 모습을 결정하며, 텍스처, 빛, 그림자 등의 시각 효과를 구현하고, 다양한 언어로 프로그래밍되며, 그래픽 카드 및 칩셋은 지원하는 버전을 가진다.
  • 3차원 컴퓨터 그래픽스 - 모션 캡처
    모션 캡처는 물체의 움직임을 디지털 데이터로 변환하는 기술로서, CG 영상 제작에 활용되며, 센서 부착 방식에서 마커리스 방식으로 발전하여 다양한 분야에 응용된다.

2. CSG의 원리

CSG는 직육면체, 원기둥, 각기둥, 각뿔, , 원뿔 등 비교적 단순한 형태의 기하 기본체(Primitives)를 기반으로 한다.[1] 이러한 기본체는 소프트웨어 패키지에 따라 다를 수 있으며, 일부는 곡면 객체에 대한 CSG를 지원하기도 한다.

객체는 불 대수 연산집합의 합집합, 교집합, 차집합 및 기하 변환과 같은 ''연산''을 통해 기본체로부터 ''구성''된다.[1]

기본체는 몇 개의 매개변수를 받는 알고리즘으로 설명할 수 있다. 예를 들어, 구는 중심점의 좌표와 반지름 값으로 설명할 수 있다. 이러한 기본 연산을 결합하여 간단한 객체에서 매우 복잡한 객체를 만들 수 있다.

CSG는 단순한 기하학적 객체가 필요하거나, 수학적 정확성이 중요할 때, 언리얼 엔진과 같은 게임 엔진 등에서 사용된다. 절차적 또는 파라메트릭 CSG에서는 좌표 변경이나 부울 연산자 교체를 통해 객체의 형상을 수정할 수 있다.

CSG는 공업 제품 설계에서 객체의 수밀성을 확인하는 데 유용하며, 충돌 감지 등에도 활용된다.

2. 1. 기본 연산

CSG의 핵심은 불 대수 연산을 사용하여 기본체들을 결합하는 것이다. 주요 연산은 다음과 같다.

연산설명
합집합 (Union)두 객체를 하나로 합친다.
교집합 (Intersection)두 객체의 공통된 부분만 남긴다.
차집합 (Difference)한 객체에서 다른 객체를 뺀다.



이러한 기본 연산을 결합하면 간단한 객체에서 시작하여 매우 복잡한 객체를 만들 수 있다.

2. 1. 1. 합집합 (Union)

2개의 오브젝트를 하나로 합친다]]

두 객체를 하나로 합친다. 결과적으로 두 객체의 모든 부분을 포함하는 하나의 객체가 생성된다.[1]

2. 1. 2. 교집합 (Intersection)

오브젝트 두 개에서 공통되는 부분||315x315px]]

두 객체의 공통된 부분만 남긴다. 결과적으로 두 객체가 겹치는 부분만 남은 객체가 생성된다.

2. 1. 3. 차집합 (Difference)

한 객체에서 다른 객체를 빼면, 첫 번째 객체에서 두 번째 객체와 겹치는 부분이 제거된 객체가 생성된다.

'''차이'''(Difference): 한 오브젝트를 다른 오브젝트에서 제외시킨다.

2. 2. 광선 추적 (Ray tracing)

광선 추적을 사용하면 구성적 솔리드 기하학(CSG) 렌더링을 간단하게 처리할 수 있다. 광선 추적기는 광선과 기본 도형의 교점을 계산하고, 1차원 광선을 따라 교차 간격에 연산자를 적용하여 카메라에 가장 가까운 점을 결과로 얻는다.[1]

3. CSG의 장점 및 특징

구성적 솔리드 기하학(CSG)은 간단한 기하학적 객체가 필요하거나 수학적 정확성이 중요할 때 사용된다.[4] 거의 모든 엔지니어링 CAD 패키지, 퀘이크 엔진, 언리얼 엔진, 해머(소스 엔진 레벨 편집기), 토크 게임 엔진/토크 게임 엔진 어드밴스드에서 CSG를 사용한다.[3]

CSG는 비교적 간단한 객체들을 조합하여 매우 복잡한 기하학적 형상을 만들 수 있어 모델러에게 인기가 높다.[3] 절차적 또는 파라메트릭 CSG를 사용하면 객체의 위치를 변경하거나 객체를 결합하는 부울 연산을 변경하여 복잡한 기하학적 형상을 쉽게 수정할 수 있다.

CSG의 주요 장점은 다음과 같다.


  • 정확성: 수학적 연산을 기반으로 하므로 정밀한 모델링이 가능하다.
  • 수정 용이성: 기본 도형과 연산의 조합으로 모델을 생성하므로, 모델을 쉽게 수정하고 변경할 수 있다.
  • 수밀성 보장: 기본 도형이 수밀(watertight)하면, CSG 연산을 통해 생성된 객체도 수밀성을 유지한다.[5] 이는 제조 및 엔지니어링 계산에 중요하다.
  • 내/외부 판별 용이: 특정 점이 CSG 객체의 내부 또는 외부에 있는지 쉽게 판별할 수 있다.[6] 이는 광선 추적과 같은 응용 프로그램에 유용하다.[6]

4. 메쉬에서 CSG로의 변환 (역 CSG)

CSG 모델은 구성에 의해 매개변수화되므로 맞춤형 모델 제작을 목표로 하는 응용 분야에서 일반적인 메시보다 유리한 경우가 많다. 이러한 응용 분야의 경우, 이미 존재하는 메시를 CSG 트리로 변환하는 것이 흥미로울 수 있다. 메시지를 자동으로 CSG 트리로 변환하는 이 문제를 '''역 CSG'''라고 한다.

결과 CSG 트리는 입력 메시와 동일한 3D 공간을 차지하면서 노드 수가 최소여야 한다. 결과 모델을 쉽게 편집할 수 있도록 간단한 솔루션이 선호된다. 이 문제는 탐색해야 하는 검색 공간이 크기 때문에 해결하기 어렵다. 기본 도형의 차원과 크기와 같은 연속적인 매개변수와 최종 CSG 트리를 구성하는 데 사용되는 부울 연산자와 같은 불연속적인 매개변수를 결합한다.

추론적 방법은 형상의 내부를 설명하는 일련의 반공간을 구축하여 이 문제를 해결한다. 이러한 반공간은 최종 모델을 얻기 위해 결합될 수 있는 기본 도형을 설명하는 데 사용된다.[7]

또 다른 접근 방식은 기본 도형의 감지와 최종 모델을 정의하는 CSG 트리의 계산을 분리한다. 이 접근 방식은 현대적인 프로그램 합성 도구가 최소 복잡성을 가진 CSG 트리를 찾는 기능을 활용한다.[8]

또한 원하는 메시의 모양을 향해 초기 모양을 반복적으로 최적화하기 위해 유전 알고리즘을 사용하는 접근 방식도 있다.[9]

5. CSG 지원 응용 프로그램

CSG는 간단한 기하학적 객체가 필요하거나 수학적 정확성이 중요한 경우에 사용된다.[4] 거의 모든 엔지니어링 CAD 패키지와 퀘이크 엔진, 언리얼 엔진, 밸브 해머 에디터(소스 엔진 레벨 편집기), 토크 게임 엔진 등 다양한 게임 엔진에서 CSG를 활용한다.[3]

CSG는 모델러가 비교적 간단한 객체 집합을 사용하여 매우 복잡한 기하학을 만들 수 있게 해주기 때문에 인기가 있다.[3] 또한, 기본 도형이 물이 새지 않으면, 만들어진 객체도 물이 새지 않도록 쉽게 보장할 수 있다는 장점이 있어, 일부 제조 또는 엔지니어링 계산 응용 프로그램에 중요하다.[5]

임의의 점이 CSG로 생성된 모양의 내부 또는 외부에 있는지 쉽게 분류할 수 있다는 점은 광선 추적과 같은 일부 응용 프로그램에 유용하다.[6]

다음은 CSG를 지원하는 응용 프로그램 목록이다.

응용 프로그램
BRL-CAD
FreeCAD
GtkRadiant
ICAD/SX
POV-Ray
솔리드웍스
UnrealEd
Vectorworks


5. 1. 일반 모델링 언어 및 소프트웨어


  • 하이퍼펀
  • PLaSM - 솔리드 모델링을 위한 프로그래밍 언어

5. 2. 광선 추적 및 입자 전이

포토리얼리스틱 렌더맨과 POV-Ray는 광선 추적 및 입자 전이 기술을 활용하는 대표적인 렌더링 소프트웨어이다.

5. 3. 컴퓨터 지원 설계 (CAD)

거의 모든 엔지니어링 CAD 패키지는 CSG를 사용한다.(도구 절단 및 부품이 서로 맞물려야 하는 기능 표현에 유용할 수 있음).[4]

CSG의 장점 중 하나는 모든 기본 모양이 물이 새지 않는 경우 객체가 "솔리드"하거나 물이 새지 않도록 쉽게 보장할 수 있다는 것이다.[5] 이는 일부 제조 또는 엔지니어링 계산 응용 프로그램에 중요할 수 있다. 이에 비해 경계 표현을 기반으로 기하학을 생성할 때는 추가적인 위상 데이터가 필요하거나 주어진 경계 설명이 유효한 솔리드 객체를 지정하는지 확인하기 위해 일관성 검사를 수행해야 한다.[1]

다음은 CSG를 지원하는 주요 CAD 소프트웨어 목록이다.

소프트웨어설명
BRL-CAD
FreeCAD
OpenSCAD
솔리드웍스기계적 CAD 제품군
오토캐드
Rhino
벡터웍스
프로/엔지니어PTC 크레오 파라메트릭으로 변경됨


5. 4. 게임

다음은 구조적 입체기하학을 사용하는 게임 엔진 및 소프트웨어 목록이다.

5. 5. 기타


  • 블렌더는 서피스 메시 편집기이지만 메타 오브젝트를 사용하여 단순한 CSG를 할 수 있다.
  • Clara.io
  • MCNP
  • 스케치업
[11]

참조

[1] 서적 Computer Graphics: Principles and Practice https://books.google[...] Addison-Wesley Professional
[2] 논문 Ray Casting for Modeling Solids 1982
[3] 서적 Introduction to Implicit Surfaces https://books.google[...] Morgan Kaufmann
[4] 간행물 1996
[5] 서적 Game Development Tools https://books.google[...] CRC Press
[6] 서적 An Introduction to Ray Tracing https://books.google[...] Morgan Kaufmann
[7] 논문 Three-dimensional halfspace constructive solid geometry tree construction from implicit boundary representations 2004
[8] 논문 InverseCSG: automatic conversion of 3D models to CSG trees 2018
[9] 논문 An evolutionary approach to the extraction of object construction trees from 3D point clouds http://eprints.bourn[...] 2016
[10] 웹사이트 Godot Engine - Godot gets CSG support https://godotengine.[...]
[11] 웹사이트 Major release https://sourceforge.[...] 2002-02-12
[12] 웹사이트 Magica CSG website https://ephtracy.git[...]
[13] 웹사이트 Womp website https://womp.com/ind[...]
[14] 서적 Computer Graphics: Principles and Practice https://books.google[...] Addison-Wesley Professional
[15] 서적 Introduction to Implicit Surfaces https://books.google[...] Morgan Kaufmann



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com