본문 바로가기
STEM - 학술세미나/컴퓨터공학

컴퓨터 그래픽스 - 1. 3D물체를 어떻게 표현할까

by STEMentor Editor 2019. 12. 11.

안녕하세요!

컴퓨터 그래픽스에 대한 많은 이야기들에 앞서, 컴퓨터가 어떻게 3D 물체를 표현하는지 알아보는 것으로 시작해볼까 합니다.
첫 번째 시간인 만큼 가볍게 출발해 볼게요!

# 좌표계

3D 그래픽을 만들어내기 위해서는 먼저 가상의 공간을 만들어야 합니다. 멋진 발표 자료를 만들기 위해 먼저 빈 파워포인트 파일을 만들어야 하듯, 그래픽스에서는 비어있는 좌표계를 만들어야 합니다.

수학에서는 3차원을 나타내는 다양한 좌표계가 있지만, 당연하게도 직교좌표계가 가장 널리 사용됩니다.

직교하는 세 방향의 절대적 위치값을 사용하는 만큼 가장 직관적이기에, 사용자가 원하는 대로 조작하기 쉽다는 장점이 있습니다.

# 물체의 표현

좌표계가 준비되었으면 이제 비어있는 공간에 물체를 놓을 차례입니다. 빈 직교좌표 공간에 점과 면을 추가하여 물체를 만들 수 있습니다.

점과 면

3차원 직교좌표계에서 하나의 점은 x, y, z 세 개의 숫자로 나타낼 수 있습니다. 면은 어떨까요?

우리는 한 직선 위에 있지 않은 세 점이 평면을 결정한다는 사실을 알고 있습니다. 세 개의 점을 사용하여 삼각형을 만들 수 있다는 말이죠. 컴퓨터 그래픽에서는 이 삼각형들을 조합해 원하는 물체를 만들어냅니다. 그래픽 작업 과정을 담은 영상들에서 물체가 삼각형으로 이루어져 있는 이유입니다.

위와 같은 사진을 보신 적이 있나요? 실제로 수백 개의 삼각형들을 조합해서 토끼 모양을 만들어 냈습니다.
삼각형으로 이루어진 만큼, 표면이 울퉁불퉁한데요, 표면을 더 부드럽게 만들기 위해 작은 삼각형을 사용한다면 수천, 수만개의 점으로 토끼를 나타낼 수도 있습니다.

막간을 이용한 TMI!

이 토끼 모델은 컴퓨터 그래픽스 연구에서 빠지지 않고 등장합니다.
1994년 스탠퍼트 대학에서 토끼의 세라믹 형체를 3차원 스캔해서 만든 스탠퍼드 토끼 인데요,
스탠퍼드에서 제공하는 데이터 중 가장 높은 해상도의 토끼는 무려 69,451개의 삼각형으로 이루어져 있습니다.

 

앞서 설명한 Mesh는, 한 개의 삼각형을 저장하기 위해 세 개의 점을 사용합니다.
각 점은 x, y, z 세 개의 좌표를 가지기 때문에 삼각형 하나를 만들기 위해 총 9개의 수가 필요합니다.

더 적은 수로 면을 표현할 수는 없을까요?

우리는 공간도형 파트에서 를 배웠습니다.
3차원 공간의 구는 중심점과 반지름만 있으면 표현할 수 있습니다. 다시 말해, 4개의 수만 있으면 원하는 구를 만들 수 있다는 뜻입니다.

물론 작은 삼각형들을 모아서 구를 만들 수도 있습니다. 하지만 점과 반지름을 사용하면 훨씬 효율적이면서 각지지 않고 매끄러운 표면을 가진 구를 만들 수 있습니다.

Mesh와 구는 면을 만드는 가장 대표적인 방법입니다. 이 밖에도 사용하는 분야에 따라 다른 방법들을 사용할 수 있겠지만, 이번 연재에서는 모든 물체가 이번 장에서 설명한 방법으로 이루어졌다고 가정하도록 하겠습니다.

 

오늘은 여기까지!

3D그래픽을 구현하기 위해 직교 좌표계에서 Triangle Mesh와 구를 사용해서 물체를 표현한다는 사실을 배웠습니다.
궁금한 점은 댓글로 남겨주시고, 저는 다음 주제 "장면 구성과 물체의 변환" 으로 돌아오겠습니다.

댓글