본문 바로가기
수학

[그래픽스 새싹코스] 벡터(Vector) 핵심 정리

by imagineer_jinny 2022. 9. 21.

본 내용은 <그래픽스 새싹코스 - 홍정모> 강의를 토대로 작성하였습니다. honglab에서 강의를 구매하실 수 있습니다.


벡터 Vector

- 레이 트레이싱에 벡터가 왜 필요한지, 왜 벡터를 사용해야 하는지

3차원 공간에 어떤 물체가 있다.
현실 세계: 광원이 물체 표면에 반사가 될 때 일부 색상은 물체에 흡수가 되고 반사가 되는 색깔만 눈으로 볼 수 있음

Ray Tracing: 스크린에 그림을 그린다는 것은 스크린 속에 있는 여러 픽셀들의 색깔 값을 결정하는 것.


우리가 사용하는 역 방향 광 추적 알고리즘은
1) 우리의 눈이 어떤 픽셀을 바라보는 방향을 계산한다. (벡터 사용됨)
2) 1)번의 방향을 픽셀로부터 연장해서 가상의 세계에 광선을 쏴준다. (벡터 사용됨)
그러면 광선이 쭉 진행을 하다 어떤 지점에서 물체에 부딪힘.
즉, 우리 눈이 스크린 속에 있는 픽셀의 색깔 값을 통해서 가상 공간의 물체를 볼 수 있는 것
3) 물체 표면의 색깔 값을 가지고 픽셀 값을 결정하면 눈이 픽셀을 보고 가상 공간에 물체가 있다고 인식
물체 표면의 색을 결정하는 요소들
(1) 물체 자체 표면의 성질(재질,색깔 등)
(2) 조명과의 관계 (조명이 가까이 있는지 멀리 있는지, 강한 조명인지 약한 조명인지)
조명 효과를 계산 (벡터 사용됨)

즉, 물체 자체 표면의 성질과 조명이 상호작용을 이루며 광선과 물체가 충돌한 지점의 색깔을 결정 (벡터 사용됨)

4) 결정된 색을 스크린에 칠해주면
5) 눈으로 물체가 있다는 것을 인식 가능


숫자
Scalar(스칼라) : 숫자가 하나 있는 것 ex) 1,2,3,3.14..
Vector : 숫자를 여러개 묶어 놓은 것 ex) (3.14,9.8), (1.0,1.0,1.0)


벡터가 왜 필요해?
- 아이언맨의 위치를 정확하게 정의하기 위해서는
1) 이 공간에 대한 좌표계(Coordinate system)를 정의해야 함
2) 원점도 정의해줘야 함



Q. 아이언맨에게 캡틴이 어디에 있냐 라고 물으면? 손을 뻗어 가리킬 것
손을 뻗어 가리키는 것엔 두 가지 의미가 있다
1) 방향(direction)
2) 거리(distance) 즉 벡터는 방향과 거리를 같이 표현할 수 있다.

Q. 아이언맨이 봤을 때 캡틴이 어떤 방향으로 얼마나 멀리 떨어져 있나?
캡틴의 위치 - 아이언맨의 위치

컴퓨터 그래픽스에서는 위치 벡터(position vector: 위치를 표현하는 벡터)와 방향과 거리를 의미하는 벡터 두가지를 구분해서 사용하기도 함



Q. 아이언맨에게 캡틴이 얼마나 멀리 있냐고 물어보면(거리가 얼마나 되냐고)
Scalar(숫자 하나)로 대답해야 한다
아이언맨에서 캡틴까지의 거리를 어떻게 구하나? 피타고라스의 정리
단위 벡터(unit vector)
길이가 1인 벡터
어떤 벡터를 단위 벡터로 만들기 위해서는 자기 자신을 자기 자신의 절댓값으로 나눠준다
단위 벡터는 거리에 대한 정보는 없애고 순수하게 방향만 표현


벡터의 곱셈

 


내적(inner product, dot product)


외적(outer product, cross product)


왼손 좌표계, 오른손 좌표계

출처: 홍정모 그래픽스

왼손 좌표계: 왼손의 엄지 손가락이 위로 가리키는 방향이 x x y 의 방향
왼손으로 감아서 엄지 방향이면 왼손 좌표계(DirectX)
오른손 좌표계: 오른손의 엄지 손가락이 위로 가리키는 방향이 x x y의 방향
오른손으로 감아서 엄지 방향이면 오른손 좌표계


강의 내용 출처: honglab

'수학' 카테고리의 다른 글

벡터 연산 기초  (0) 2022.05.26

댓글