벡터
"일반적으로 기압과 속력처럼 하나의 값으로 표기 가능한 숫자들을 스칼라 라고 하며, 가속도나 속도처럼 크기와 방향을 동시에 표현해야만 정확히 표현해야만 정확히 표현할 수 있는 수치를 벡터라고 한다"
2차원 평면상에서 원점 O를 기준으로 점 p(x,y)를 향하는 벡터 OP를 나타낸겁니다
3차원 공간상에서 원점 O를 기준으로 점 q(x, y, z)를 향하는 벡터 OQ를 나타낸겁니다
실제로 벡터는 3차원 그래픽상에서 은면제거나 음영에 주로 사용되며, 물리적인 연산이 필요한 곳의 직선과 평면의 방정식에서도 사용 된다,
정점(Vertex)
2차원이나 3차원 공간에서의 위치를 나타내는 점을 정점 or 꼭지점이라고 한다.
컴터로 보이는 실제적, 물리적인 점을 화소(pixel)라고 한다.
아까 그림에서 2차원 좌표안의 점은 2차원 정점
3차원 좌표안의 점은 3차원 정점이라고 한다.
변환
가장 기본적인 변환에는 이동, 회전, 크기변환이 있으며, 이들 변환은 모두 행렬로 표현된다.
이동과 회전만으로 이루어진 행렬을 아핀변환이라 하며 이 변환은 시스템을 유지하는 특성이 있어, 여러모로 유용하다.
[ 1 0 0 0 ]
이동행렬 [ 0 1 0 0 ]
[ 0 0 1 0 ]
[ dx dy dz 1 ]
행렬
어쨋든 변환을 할 때 행렬은 매우매우 유용하다
3차원 그래픽에선 4x4행렬을 사용해!
특히 3차원 그래픽에서 데이터 량이 많아지면 많아질수록 유용하다
[ 1 0 0 0 ]
x축 회전행렬 [ 0 cos sin 0 ]
[ 0 -sin cos 0 ]
[ 0 0 0 1 ]
폴리곤
세개의 정점이 모이면 하나의 삼각형 면을 만들 수 있는데 이걸 폴리곤이라고한다
몇개의 폴리곤이 모인걸 면이라고 하는 경우도 있지만, 그냥 여기서는 면과 폴리곤을 같은걸로 생각할겁니다.
변(edge)
폴리곤에서 정점과 정점을 연결하는 직선을 변 혹은 모서리(edge)라고 한다.
데이터를 저장하는 방식에 따라 half-edge 모델등의 방식이 존재하기도 한다
Direct3D같은 실시간 3D의 경우, 정점 + 인덱스 방식이 대부분이라, 변은 프로그래밍시에 중요하게 다루지는 않지만, 그림자 볼륨 기법처럼 변을 사용해야만 하는 특별한 기술도 있다.
메시(Mesh)
폴리곤은 최소한 3차원 공간 위에 면을 만들지만 이것만으로는 우리가 생각하는 복잡한 물체를 표현하는데에는 무리가 있어요
이러한 폴리곤들이 모여서 하나의 3차원 물체를 만들게 되는데 이걸 메시라고한다
그러니까 폴리곤이 모여서 만들어진 3차원 공간의 객체를 메시라고 한다
셰이딩(shading)
게임 옵션같은데서 무지하게 자주 보아오는 단어
셰이딩이란 폴리곤에 음영을 넣는 작업을 말한다
폴리곤은 3차원 상의 좌표값을 가진 정점으로 구성되어 있기 때문에 실제 이게 화면에 표시되기 위해서는 셰이딩이라는 과정을 거쳐야만 한다
셰이딩에는 다양한 방법이 존재하는데, 대표적인걸로는 플랫 셰이딩, 고로 셰이딩, 퐁 셰이딩, 라디오시티, 광선추적 등이 있다, 이 중 대부분의 비디오카드에서 지원하는 하드웨어 가속은 플랫 셰이딩과 고로 셰이딩 요 두가지다.
플랫 셰이딩은 하나의 폴리곤을 단색으로 처리하는 방식으로 처리속도가 빠르긴한데 폴리곤이 각져보여서 그래픽이 후져보인다
고로 셰이딩은 폴리곤의 내부를 정점의 색에 따라서 보간하여 칠하는 부드러운 셰이딩 방법이야 요고는 그래도 좀 나아보인다
텍스쳐
3차원 정점만으로 화면에 물체를 나타내려면 제약이 많다
섬세한 물체를 표현하기 위해서는 많은 수의 정점이 필요하고, 이는 PC와 같이 제한된 메모리와 CPU의 시스템에서는 큰 문제가 아닐수가없다
텍스쳐는 3차원 물체에 2차원의 이미지를 입혀서 정점만으로는 나타낼 수 없는 훨씬 다양한 표현을 가능하게 해주는 것,
이렇게 3차원 정점에 2차원 이미지를 입히는 작업을 맵핑한다고 한다
그래서 3차원 물체에 텍스쳐를 입히는것을 텍스쳐 맵핑이라구하고 맵핑되는 2차원 이미지를 텍스쳐, 혹은 텍스쳐 맵이라고한다
요즘에는 3차원 텍스쳐를 쓰기도 한다
'Graphics > DirectX' 카테고리의 다른 글
Direct X - *디바이스 생성 (0) | 2014.06.19 |
---|---|
Direct X - 최초 세팅 작업 (0) | 2014.06.19 |
Direct X - 19. 모델의 이동, 회전, 확대, 축소 (0) | 2014.06.09 |
Direct X - 18. 모델 확대와 축소 (0) | 2014.06.09 |
Direct X - 17. 키보드와 마우스를 이용한 모델 이동 (0) | 2014.06.09 |