그래픽스/수학 물리

    좌표계 (Coordinate system)와 수학적 공간 (Mathematical space)

    일반적인 공간인 '유클리드 공간(Euclidean space)'에서 보통 어떤 수학/물리적 문제를 다룬다. 사실 어떤 물리적 사건을 표현할 때에 '어떤 공간을 사용하는가'는 '어떤 좌표계를 사용하는가'만큼이나 중요하다. 심지어 좌표계와 공간(space)을 헷갈려하는 학생들 또한 매우 많다.우선 공간부터 살펴보자. 아주 옛날인 기원전 300년 쯤 고대 그리스의 유클리드는 기하학을 연구하였고, 그가 정리한 5가지 원칙을 만족하는 아주 기본적인 공간을 유클리드 공간이라 부른다. 아래 그림은 우리에게 매우 익숙한 3차원 유클리드 공간이다.   직선(line)은 1차원 유클리드 공간의 예이다. 이러한 직선은 어떠한 '단위간격(unit interval)'로 측정/표현할 수 있다. 아무렇게나 '단위간격'을 정한 후,..

    동차 좌표계란?

    투영변환이란실세계의 한 점 Q = (x, y, z)는 3차원의 점이다.이 점이 투영 스크린상의 한 점 (x, y)의 2차원으로 변환되는 것이 투영 변환이다.투영 변환을 위해서는 동차 좌표계를 사용하는 것이 편리하다.동차 좌표계란?3D에서는 기본적으로 3차원 좌표계이지만 어떤 목적으로 4차원으로 확장이 가능하다.어떤 목적을 위해 한 차원의 좌표(n) 을 추가한 좌표 (n+1)로 표현을 하는 것을 동차 좌표계라고 한다.ex) 4차원 좌표 =(x,y,z,w) => x/w , y/w , z/w 투영행렬에서 동차좌표를 이용하는 이유시점으로 보이는 점들의 위치가 중요한 것이 아니라 시점으로 부터의 방향이 중요하기 때문에 동차좌표를 사용한다. 투영 행렬을 위 그림으로 나타내면 3차원의 점들이 2차원 평면의 빨간 네모..

    투영 행렬 유도와 ndc

    우리가 살고있는 세계에는 원근감이라는게 있다. 가까운 물체는 크고 먼 물체는 작게 보이는 것이다.언리얼로 원근감이 있는 카메라와 없는 카메라를 비교해보자 왼쪽은 원근감이 없는 흔히말하는 오쏘그래픽인 카메라이고오른쪽은 시야각이 90도인 투영행렬이 들어간 카메라다.누가봐도 오른쪽이 원근감도 있고 우리가 사는 세계와 비슷하다. 왼쪽 같은 카메라를 사용하는 게임들도 있지만 원근감이 있는 게임을 만들려면 투영행렬이 필요한것이다. 원근감을 표현하는 카메라는 카메라로부터 시작하는 사각뿔의 앞부분이 잘린 시야영역을 사용한다. 그럼 상하 좌우 전후로 이루어진 절두체(FRUSTUM)이 나오게 된다.그 절두체를 X축 방향에서 보면 이와 같은 그림이 나온다. 그중 근 평면이 우리의 모니터 화면이고 카메라로 부터 근 평면까지의..

    지수의 밑변환 공식, 로그의 밑변환 공식 - 개념, 유도, 적용

    1. 개요지수함수와 로그함수로부터 파생되는 지수 방정식, 로그 방정식, 지수 부등식, 로그 부등식을 풀기 위해서는 밑을 같게 만들어줘야다. 서로 다른 지수나 로그의 밑을 같게 만들어주는 작업을 밑변환이라고 하는데 밑변환을 하는 이유는 서로 다른 차원(dimension)에 있는 항들을 같은 선상에서 비교하기 위해서다. 예를들어 우리나라 돈 1000원과 일본 돈 100앤의 가치를 비교하기 위해선 환율을 적용하여 기축통화인 미국 달러로 바꿔서 비교해야 한다. 또한 평균이 60점, 표준편차 10점인 정규분포를 따르는 집단에서 75점을 받은 학생과 평균이 40점, 표준편차 20점인 정규분포를 따르는 집단에서 70점을 받은 학생중 누가 더 우수한 학생인가를 비교하기 위해선 표준화(Z=(X-m)/σ)라는 작업을..

    로그(log) 계산 공식 (상용로그, 자연로그) 총정리

    계산 공식1. 진수와 밑이 동일한 숫자일 때, 지수의 값은 1이다.​ex ) log 4 4 = 1log 8 8 = 1 2. 진수가 어떠한 숫자의 제곱일 때, 제곱은 앞으로 뺄 수 있다.ex)log 2 4 = log 2 22 = 2 log 2 2 = 2log 3 27 = log 3 3 3 = 3 log 3 3 = 3 3. 밑이 동일한 로그끼리의 덧셈은 진수끼리의 곱하기로 합칠 수 있다.ex) log 2 4 + log 2 8 = log 2 32 = 5 log 3 9 + log 3 9 = log 3 81 = 4 4. 밑이 동일한 로그끼리의 뺄셈은 진수끼리의 나누기로 합칠 수 있다.ex)log 2 8..

    2D AABB OBB 충돌

    충돌 * Bounding Box * 충돌을 검사하기 위해 단순한 박스 모양으로 충돌을 검사하는 것. - 메쉬의 폴리곤 하나하나 검사하기엔 연산이 너무 많아 단순한 박스 모양이나 구, 캡슐 형태를 주로 사용한다. AABB와 OBB의 차이 * AABB (Axis Aligned Bounding Box) : 정렬된 축의 박스끼리의 충돌이다. * OBB (Oriented Bounding Box) : 박스와 함께 축 같이 회전한다. AABB (Axis Aligned Bounding Box) * 2D AABB 충돌은 두 가지를 체크하여 두 가지 모두 true여야 충돌이다. 1. 가로 체크 : 두 사각형의 중점 가로 사이의 거리 < 두 사각형의 밑변 절반의 크기 합 2. 세로 체크 : 두 사각형의 중점 세로 사이의 거..

    두 점 사이의 거리 구하기

    플레이어 사이의 거리 혹은 충돌하려는 두 물체 사이의 거리, 더 나아가서는 사정 거리 안에 들어왔는지 아닌지를 알고 싶을 때가 생기면 어떻게 해야 할까? 가장 간단한 방법은 피타고라스의 정리를 이용하는 것이다. A와 B를 잇는 선분을 하나 그린 후 이를 빗변으로 하는 직각 삼각형을 하나 그린다. A(x1, y1), B(x2, y2)라 할 때 나머지 하나의 꼭짓점의 좌표는 C(x2, y1)이 된다. 여기서 피타고라스의 정리를 사용하면 A와 B를 잇는 빗변의 거리를 구할 수 있다. 제곱근은 직접 연산을 통해 계산해도 되지만 헤더를 추가해 sqrt 와 pow를 이용해도 된다. sqrt(값) 제곱근을 구하는 함수로 제곱근을 반환 pow(값, 지수) 제곱을 구하는 함수. 3차원으로 확장 위의 거리의 공식은 xy축..

    선형 보간법 (linear, bilinear, trilinear interpolation)

    1D 선형보간법(linear interpolation)을 2D로 확장한 bilinear interpolation과 3D로 확장한 trilinear interpolation이 어떤 식으로 이루어지는지와 이러한 interpolation 기법이 히스토그램(histogram)에 적용된다. 1. Interpolation과 Extrapolation Interpolation(인터폴레이션, 보간)이란 알려진 지점의 값 사이(중간)에 위치한 값을 알려진 값으로부터 추정하는 것을 말한다. Extrapolation은 알려진 값들 사이의 값이 아닌 범위를 벗어난 외부의 위치에서의 값을 추정하는 것을 말한다. 예를 들어, 어떤 사람이 20살일때 키와 40살에서의 키를 보고 30살에서의 키를 추측하는 것은 interpolatio..

    아핀 변환 Affine Transformation

    어떤 모델이든 아핀 공간에 있는 모델들은 점들의 집합이라고 했다. 그 점들이 어떤 식으로 있느냐가 모델을 만든다고 했다. Vertex가 모여 모델을 이룬다. 점들의 개수에 따라 모델의 질이 달라진다. 그 점 중에서도 모델을 위치시키기 위해서 다른 점이 하나 더 필요하다. 바로 중심점이라는 것이다. 중심점을 기준으로 나머지 점의 위치를 상대적으로 표현한다. 원점에서 각 점으로 향하는 8개의 벡터가 있다고 하자. 만약 크기를 어떤 축으로 늘리고 싶으면 8개의 벡터에 해당 축에 해당하는 크기 변환 행렬을 적용한다. 그렇게 되면 8개 벡터에 대한 새로운 벡터가 나오고 다시 벡터의 끝 점이 원점의 기준에 의해 바뀔 것이다. 모델의 중심점이 원점에 있을 때 모델의 크기 변환은 모델을 이루는 점들을 벡터처럼 생각하고..