클리핑(컴퓨터 그래픽스)

Clipping (computer graphics)

컴퓨터 그래픽의 맥락에서 클리핑은 정의된 관심 영역 내에서 렌더링 작업을 선택적으로 활성화하거나 비활성화하는 방법입니다.수학적으로 클리핑은 구성 기하학 용어를 사용하여 설명할 수 있습니다.렌더링 알고리즘은 클립 영역과 장면 모델 사이의 교차점에 있는 픽셀그립니다.보기 볼륨 외부에 있는 선 및 표면(일명 좌판)이 제거됩니다.[1]

일반적으로 자르기 영역은 렌더링 성능을 향상시키기 위해 지정됩니다.잘 선택한 클립을 사용하면 사용자가 볼 수 없는 픽셀과 관련된 계산을 건너뛰어 시간과 에너지를 절약할 수 있습니다.그릴 픽셀은 클립 영역 내에 있다고 합니다.그릴 수 없는 픽셀은 클립 영역 밖에 있습니다.좀 더 비공식적으로, 그려지지 않는 픽셀은 "잘라내기"라고 불립니다.

2D 그래픽스에서의 클리핑

2차원 그래픽스에서는 픽셀이 창 또는 프레임의 경계 내에서만 그려지도록 클립 영역을 정의할 수 있다.클립 영역을 사용하여 심미적 또는 예술적 목적을 위해 픽셀 렌더링을 선택적으로 제어할 수도 있습니다.많은 구현에서 최종 클립 영역은 하나 이상의 애플리케이션 정의 셰이프 및 시스템 하드웨어 제약의 복합(또는 교차)입니다.

하나의 애플리케이션 예에서는 이미지 편집 프로그램을 고려합니다.사용자 애플리케이션은 이미지를 뷰포트로 렌더링할 수 있습니다.사용자가 영상의 작은 부분을 보기 위해 확대/축소 및 스크롤할 때 애플리케이션은 뷰포트 외부에 있는 픽셀이 렌더링되지 않도록 클립 경계를 설정할 수 있습니다.또한 GUI 위젯, 오버레이 및 기타또는 프레임에 의해 원본 이미지에서 일부 픽셀이 가려질 수 있습니다.이러한 의미에서 클립 영역은 애플리케이션 정의 "사용자 클립"과 시스템의 소프트웨어 및 하드웨어 [2]구현에 의해 실행되는 "디바이스 클립"의 합성입니다.애플리케이션 소프트웨어는 이 클립 정보를 이용하여 계산 시간, 에너지 및 메모리를 절약할 수 있으며, 보이지 않는 픽셀과 관련된 작업을 피할 수 있습니다.

3D 그래픽스에서의 클리핑

근거리 및 원거리 클립 평면이 있는 전망입니다.음영 처리된 볼륨만 렌더링됩니다.

3차원 그래픽스에서는 클리핑이라는 용어를 사용하여 많은 관련 기능을 설명할 수 있습니다.일반적으로 "자르기"는 직사각형 모양으로 작동하는 평면의 작업을 의미하며, "컬링"은 장면 모델 요소를 선택적으로 처리하는 보다 일반적인 방법을 나타냅니다.이 용어는 경직되어 있지 않으며, 정확한 사용법은 많은 소스마다 다릅니다.

장면 모델 요소에는 점 또는 정점, 선 세그먼트 또는 모서리, 폴리곤 또는 면, 원곡선, 스플라인, 표면 및 텍스트와 같은 보다 추상적인 모델 객체가 포함됩니다.복잡한 씬(scene) 모델에서는 뷰포트 내 가시성(먼지 제거), 방향(배면 제거), 다른 씬(scene) 또는 모델 요소(clusion)에 의한 가림(clusion) 등의 이유로 개별 요소를 선택적으로 비활성화(clipping)할 수 있습니다.이러한 클리핑을 효율적으로 검출하고 실행하기 위한 고도의 알고리즘이 존재합니다.최적화된 많은 클리핑 방법은 GPU(그래픽 처리 장치)가 제공하는 특정 하드웨어 액셀러레이션 로직을 사용합니다.

클리핑의 개념은 추상 대수기하학 방법을 사용하여 더 높은 차원으로 확장될 수 있습니다.

근접 클리핑

정점 투영 및 2D 클리핑 외에도 3D 프리미티브를 올바르게 래스터라이징하려면 근접 클리핑이 필요합니다.이는 정점이 눈 뒤에 투영되어 있을 수 있기 때문입니다.근접 클리핑은 사용된 모든 정점에 유효한 2D 좌표가 있음을 보장합니다.또한 원 클리핑과 함께 깊이 버퍼 값의 오버플로를 방지합니다.비디오 게임의 일부 초기 텍스처 매핑 하드웨어(순방향 텍스처 매핑 사용)는 거의 클리핑 및 UV 좌표와 관련된 합병증으로 인해 어려움을 겪었습니다.

폐색 클리핑(Z 또는 깊이 클리핑)

3D 컴퓨터 그래픽스에서 "Z"는 종종 뷰포트 원점을 중심으로 하는 좌표계의 깊이 축을 가리킵니다. "Z"는 "깊이"와 교환할 수 있으며 개념적으로 "가상 화면 내" 거리에 해당합니다.따라서 이 좌표계에서 "X"와 "Y"는 사용자의 화면 또는 뷰포트에 배치된 일반적인 데카르트 좌표계를 참조한다.이 뷰포트는 뷰 좌절의 지오메트리에 의해 정의되며 시야를 매개변수화합니다.

Z 클리핑 또는 깊이 클리핑은 화면을 기준으로 깊이에 따라 특정 장면 개체를 선택적으로 렌더링하는 기술을 말합니다.대부분의 그래픽 도구 키트를 사용하면 프로그래머가 "근접" 및 "원거리" 클립 깊이를 지정할 수 있으며, 이러한 두 평면 사이의 객체 부분만 표시됩니다.크리에이티브 애플리케이션 프로그래머는 이 방법을 사용하여 장면에서 3D 객체 내부의 시각화를 렌더링할 수 있습니다.를 들어 의료 영상 애플리케이션은 이 기술을 사용하여 인체 내부의 장기를 렌더링할 수 있습니다.비디오 게임 프로그래머는 클리핑 정보를 사용하여 게임 [3]로직을 가속할 수 있다.예를 들어, 다른 게임 엔티티를 막는 높은 벽이나 빌딩은 GPU 시간을 절약할 수 있습니다.GPU 시간은 장면 뒤쪽의 아이템을 변환하고 텍스처링하는 데 소비될 수 있습니다.[3]또한 긴밀하게 통합된 소프트웨어 프로그램은 플레이어에게 보이지 않는 오브젝트의 게임 로직을 최적화함으로써 CPU 시간을 절약할 수 있습니다.

알고리즘

「 」를 참조해 주세요.

추가 정보

레퍼런스

  1. ^ Bertoline, Gary; Wiebe, Eric (2002). Fundamentals of Graphics Communication (3rd ed.). McGraw-Hill. p. G-3. ISBN 0-07-232209-8. Retrieved 2015-01-04.
  2. ^ a b "java.awt.Graphics.clipRect". Oracle. 2014.
  3. ^ a b c Sekulic, Dean (2004). "Efficient Occlusion Culling". GPU Gems. Pearson. Archived from the original on 2013-06-05. Retrieved 2015-01-02.
  4. ^ Paul Martz (2001). "Clipping, Culling, and Visibility Testing". OpenGL.org. Retrieved 2015-01-02.