JJM

[OpenGL ES를 이용한 3차원 컴퓨터 그래픽스 입문] 5. 정점 처리

개요 --- GPU는 폴리곤 메시를 입력으로 받아서, 각각의 3차원 폴리곤을 스크린에 그려질 2차원 형태로 바꾸고, 이 2차원 폴리곤 내부를 차지하는 픽셀 (pixel)들의 색상을 결정한다. 이 픽셀들은 컬러 버퍼 (color buffer)에 기록되는데, 이는 스크린에 나타날 픽셀 전체를 저장하는 메모리 공간을 말한다. 컬러 버퍼는 주기적으로 스크린으...

[OpenGL ES를 이용한 3차원 컴퓨터 그래픽스 입문] 4. 좌표계와 변환

개요 --- 게임과 같은 3차원 가상 공간은 많은 물체들로 구성되어 있는데, 각 물체의 위치는 이동 (translation)에 의해, 방향은 회전 (rotation)에 의해 결정된다. 또한 각 물체는 축소확대 (scaling)될 수도 있다. 이러한 이동, 회전, 축소확대를 총칭하여 변환 (transform)이라고 한다. 이 장에서는 우선 2차원 공간에...

[OpenGL ES를 이용한 3차원 컴퓨터 그래픽스 입문] 3. 모델링

개요 --- 3차원 물체를 표현하는 다양한 기법이 존재하지만, 실시간 그래픽스 영역에서는 폴리곤 메시를 압도적으로 많이 사용한다. 이 장은 폴리곤 메시가 어떻게 생성되는지, 어떤 형식으로 저장되는지, 게임과 같은 런타임 응용 프로그램으로 어떻게 전달되는지 등에 대해 설명할 것이다. 3.1 폴리곤 메시 --- 그림 3.1. 구를 표현하는 두 가지 기법....

[OpenGL ES를 이용한 3차원 컴퓨터 그래픽스 입문] 2. 수학 기초

개요 --- 이 장은 컴퓨터 그래픽스 알고리즘의 이해에 필요한 최소한의 수학적인 내용을 직관적으로 기술할 것인데, 행렬과 벡터부터 시작하도록 하자. 2.1 행렬과 벡터 --- 행렬은 이름 그대로 행(row)과 열(column)로 구성되는데, m개의 행과 n개의 열을 가진 행렬은 다음과 같이 표현된다. $$ \begin{pmatrix} a {11} & ...

[OpenGL ES를 이용한 3차원 컴퓨터 그래픽스 입문] 1. 서론

개요 --- 컴퓨터를 이용하여 영상을 생성하는 작업을 컴퓨터 그래픽스라 하는데, 이 작업의 입력이 3차원 데이터로 주어지는 경우 3차원 그래픽스라 부른다. 지난 30년간 우리는 영화 특수효과와 게임 등에서 3차원 그래픽스의 엄청난 발전을 보아왔다. 컴퓨터를 생성하는 영상을 프레임 이라고도 하는데, 움직이는 장면을 묘사하기 위해서는 조금씩 변화하는 연속...

[Effective C++] 9. 그 밖의 이야기들 [1/2]

개요 --- '그 밖의 이야기들' 장의 항목 개수는 3개뿐이지만, 정말 중요하다. 이 장은 최소한 소프트웨어가 제대로 동작하기를 원한다면 컴파일러 경고를 가볍게 넘기지 말 것을 강조하는 항목으로 시작한다. 그 다음에는 표준 C++ 라이브러리의 구성요소를 전반적으로 조명하는 항목이 나오는데, 새로이 도입된 TR1의 주요 기능들도 여기서 다루어진다....

[Effective C++] 8. new와 delete를 내 맘대로 [1/2]

개요 --- 가비지 컬렉션 기능을 아예 하단에 놓고 기본적으로 지원하는 프로그래밍 환경들이 저마다의 매력을 뿜어내는 요즘, 여전히 수동만을 고수하는 C++의 메모리 관리 기법은 어떻게 보면 적잖이 구닥다리로 보일 수 있다. 그럼에도 불구하고 아주 중요한 시스템 응용프로그램을 제작하는 전 세계의 수 많은 개발자들은 메모리를 수동으로 관리할 수 있다는 점...

디자인 패턴: 전략 패턴(Strategy Pattern)

개요 --- 개발을 하다 보면 하나의 목적을 가진 알고리즘이나 로직이 상황에 따라 다르게 동작해야 할 때가 있다. 예를 들어 게임의 캐릭터가 무기에 따라 공격 방식을 바꾸거나, 상황에 따라 캐릭터의 입력 방식이 달라지는 경우가 있을 수 있다. 이때 가장 쉽게 선택하는 방식이 if-else 문이나 switch-case 문이다. 하지만 분기문이 늘어날수록...