기술(Tech, IT)/컴퓨터 그래픽스 (Computer Graphics)

[CG] window vs surface

Daniel803 2023. 9. 21. 06:45

 컴퓨터 그래픽스에 관련된 문서를 읽다보면 window와 surface라는 용어가 자주 등장한다. 용어가 익숙하지 않고 개념이 정립되기 전에 매우 헷갈리는데 상황에 따라 이해해보자.

 

  Window Surface
GUI context GUI에서 window는 일반적으로 애플리케이션 또는 애플리케이의 일부를 표시하는 화면의 영역을 의미. 창은 이동, 크기 조정, 최소화 또는 닫는 것이 가능. 소프트웨어 애플리케이션의 기본 창, 대화 상자, 팝업 메뉴 등이 예. 일부 GUI 시스템, 특히 하드웨어 가속 (hardware acceleration) 을 사용하는 시스템에서 'surface'는 그리기 가능한 영역 (drawable area) 또는 buffer를 의미할 수 있으며, 버튼이나 패널과 같은 개별 GUI 요소에는 자체 surface가 있을 수 있음.
Rendering context 렌더링 또는 그래픽 프로그래밍에서 window는 렌더링 작업이 잘려진 (clipped) Rendering surface 또는 framebuffer를 의미. 최종 렌더링 결과가 표시되는 Rendering surface의 영역. 그래픽 프로그래밍에서, 특히 그래픽 하드웨어나 OpenGL 또는 DirectX와 같은 API를 다룰 때 surface는 일반적으로 이미지 데이터를 저장할 수 있는 memory block을 의미. 이는 장면 (scene) 의 최종 렌더링 된 이미지가 저장되는 framebuffer 일 수도 있고, 3D 오브젝트에 적용되는 texture map 일 수도.
Viewport 일부 그래픽 컨텍스트에서 "viewport"는 렌더링 된 장면이 표시되는 window의 하위 영역을 의미. 렌더링 된 3D 장면 (scene) 이 어떻게 2D window에 매핑되는지 방식을 정의.  
Texture Surfaces   그래픽 프로그래밍에서 texture는 기본적으로 3D 모델에 적용되는 이미지. 이러한 texture는 surface에 존재. texture surface에는 color maps, normal maps, bumb maps 등 다양한 유형이 있을 수 있음.
Render Targets   일부 그래픽 시스템에서는 기본 framebuffer 대신 texture에 직접 렌더링이 가능. 이 texture는 일반적으로 render target이라 하며, surface의 한 유형.

 요약하자면, "window"와 "surface" 모두 그래픽 컨텐츠가 표시되는 영역을 지칭할 수 있지만, window는 화면의 GUI 표시 영역과 더 자주 연관되는 반면, surface는 그래픽 데이터를 저장하는 기본 메모리 저장소 또는 구조를 지칠하는 겨우가 많다. 그러나 용어의 의미는 문맥과 참조하는 소프트웨어 또는 시스템에 따라 달라질 수 있다.

 

참고

- ChatGPT