Computer Graphics 6

[CG] UV Mapping (유브이 매핑)

UV mapping은 3D 오브젝트에 2D texture를 적용하는 컴퓨터 그래픽 기법이다. "U"와 "V"는 2D 공간의 축으로, 3D 공간의 "X"와 "Y"와 유사하다. 3D 기하학 구조의 각 vertex는 2D texture의 해당 지점에 mapping 되며, 일반적으로 (u, v) 좌표로 지정한다. UV mapping 과정은 재단사가 천을 자르고 펴는 것처럼 3D 오브젝트의 표면을 잘라내 2D 평면에 배치할 수 있도록 평평하게 만드는 작업으로 비유할 수 있다. 그런 다음 이러한 mapping을 사용해 2D texture를 3D 오브젝트에 다시 "재봉"하여 렌더링할 때 texture가 오브젝트의 윤곽을 따라갈 수 있도록 한다. UV mapping의 핵심 포인트: UV Coordinates (UV 좌..

[CG] Vertex Shader (버텍스 쉐이더) - 2

vertex shader의 주요 작업을 세분화 해보자. Transforming Vertex Postion (vertex 위치 변환) : 가장 일반적인 작업은 vertex 위치를 오브젝트 공간 (각 오브젝트가 자체 원점을 기준으로 정의되는 곳)에서 클립 공간 (화면에서 표시된 공간) 으로 변환하는 것. vertex 위치에 model, view, projection 등 여러 변환 행렬을 곱하는 작업이 포함. Normalizing Texture Coordinates (texture 좌표 정규화) : texture 좌표는 texture 모델의 경우 (0, 0)에서 (1, 1)까지로, 때로는 이러한 좌표가 vertex sahder에서 변환되거나 스케일링 될 수 있지만, 이 작업은 애플리케이션에 따라 선택적이다. ..

[CG] Vertex Shader (버텍스 쉐이더) - 1

vertex shader는 컴퓨터 그래픽에서 3D 모델의 vertex 데이터를 조작하는 데 사용되는 shader 프로그램의 한 유형이다. vertex shader는 모델의 각 vertex에 대해 실행되며 vertex 위치 변환 (transforming the vertex position), texture 좌표 정규화 (normalizing texture coordinates) 및 기타 vertex별 작업 수행 (carrying out other per-vertex operations) 등을 수행한다. vertex shader의 출력은 일반적으로 특정 pipeline 구성에 따라 geometry shader와 같은 rendering pipeline의 다음 단계로 전달되거나 fragment shaer로 직접..

[CG] Texture (텍스쳐)

컴퓨터 그래픽스에서 texture 란 2D 이미지 (때론 3D나 더 고차원의 볼륨) 으로, 3D 모델에 적용해 더 복잡한 시각 효과를 만들어 낼 수 있다. texture를 3D surface에 입히는 (mapping) 하는 것을 texturing (텍스쳐링) 이라고 부르며, texture는 디테일 추가, 사실감, 특수 효과, 정보 인코딩 등의 목적으로 사용된다. 예를 들어, 어떤 물체에 재질이나 질감을 사실적으로 표현하기 위해 입히는 이미지가 될 수 있고, polygon (다각형) 만으로 표현하기 부족한 세부 형태, 질감, 색상 등에 대한 정보를 갖고 있어, 3D 모델 (오브젝트) 를 감싸는 형태다. Texture 유형 Diffuse Texture (디퓨즈 텍스쳐) : 모델의 기본 색상 정보 제 Norm..

[CG] window vs surface

컴퓨터 그래픽스에 관련된 문서를 읽다보면 window와 surface라는 용어가 자주 등장한다. 용어가 익숙하지 않고 개념이 정립되기 전에 매우 헷갈리는데 상황에 따라 이해해보자. Window Surface GUI context GUI에서 window는 일반적으로 애플리케이션 또는 애플리케이의 일부를 표시하는 화면의 영역을 의미. 창은 이동, 크기 조정, 최소화 또는 닫는 것이 가능. 소프트웨어 애플리케이션의 기본 창, 대화 상자, 팝업 메뉴 등이 예. 일부 GUI 시스템, 특히 하드웨어 가속 (hardware acceleration) 을 사용하는 시스템에서 'surface'는 그리기 가능한 영역 (drawable area) 또는 buffer를 의미할 수 있으며, 버튼이나 패널과 같은 개별 GUI 요소에..

[CG] SDL (Simple DirectMedia Layer) vs OpenGL(Open Graphics Library)

컴퓨터 그래픽스에서 가장 흔하게 사용되는 두 라이브러리에 대해 비교해보자. 두 라이브러리는 컴퓨터 그래픽스를 처음 접하는 사람들에게 다소 낯설고 헷갈리겠지만, 둘은 다라다는 것을 인지하는 것부터 시작해야한다. SDL OpenGL 목적 주로 OpenGL 및 Direct3D를 통해 오디오, 키보드, 마우스, 조이스틱 및 그래픽 하드웨어에 대한 낮은 수준의 액세스를 제공하도록 설계. 또한 윈도우 생성, 오디오 재생 및 기타 멀티미디어 작업 관리 가능. 2D 및 3D 벡터 그래픽을 렌더링하는 데 사용되는 그래픽 API(애플리케이션 프로그래밍 인터페이스). 특정 윈도우 시스템이나 운영 체제에 종속되지 않으며 순전히 그래픽 렌더링에만 집중. 범주 OpenGL보다 큰 범위. 그래픽을 처리하지만(주로 OpenGL과 같..