본문 바로가기

게임수학

(8)
WireFrame Rendering 보호되어 있는 글입니다.
삼각형 보호되어 있는 글입니다.
벡터의 내적 내적의 성질 벡터의 내적은 같은 차원의 두 벡터가 주어졌을 때, 벡터를 구성하는 각 성분을 곱한 후 더하여 스칼라를 더하내는 연산이다. 내적은 곱셈 기호와 동일한 가웃뎃점(.)을 사용한다. 1. 벡터의 내적은 교환법칙이 성립하며, 결합 법칙은 성립하지 않는다.2. 같은 벡터를 내적하면 벡터의 크기를 제곱한 결과가 나온다. 내적과 삼각함수와의 관계벡터 공간에서 직교하는 두 표준기저벡터(1,0) 과 (0,1)을 내적한 결과는 0이 나온다.두 기저벡터 (cos θ, sin θ), (-sin θ, cos θ)는 항상 직교하기 때문에 두 벡터의 내적은 언제나 0이 나온다. Vector2 vec1(2.f, 3.f);Vector2 vec2(4.f, 5.f);// 두 벡터의 내적을 구하고 dot에 내적 결과를 구한다...
아핀 공간 아핀 공간 : 가상 세계를 구축하는 기본 공간 2 * 2 정방 행렬의 곱셈으로는 2차원 평면에서의 이동을 구현할 수 없다.표준기저벡터의 원점을 이동시키는 변환이 행렬이 되기 위해서는 선형성을 만족해야 하는데, 선형성이 되기 위해서는기저벡터는 원점에서부터 출발해야하기 때문이다. 하지만, 공간의 차원을 하나 더 늘린다면 구현이 가능해진다.  전단 변환으로 변화된 공간의 영역의 특징을 이용하여, 전단 변환의 성질을 잘 활용한다면, 선형 변환의 체계에서 특정 이동 기능의 구현이 가능해진다. 마지막 차원의 값이 1이라는 특정 조건을 활요하면, 게임 콘텐츠 제작에 필수적인 이동 기능을 구현할 수 있다.  이동 변환 행렬에서 주의할 점은 이동에 사용되는 벡터는 언제나 마지막 값이 1이어야 한다.2차원 벡터 상에서 이..
행렬 5-1 선형성선형성은 직선의 형태를 띄는 성질을 의미한다.수학적으로 선형성의 성질을 정의하기 위해서는 가법성과 1차 동차성, 두 가지 조건을 모두 만족해야한다.  가법성 : f(x1 + x2) = f(x1) + f(x2) 1차 동사성 : f(k * x) = k * f(x)  선형 함수의 기본 형식은 다음과 같다. f(x) = ax가법성을 만족하는 수식 f(x1 + x2) = f(x1) + f(x2)에서 좌변과 우변의 값이 동일한지 확인하는 것으로 판별할 수 있다. ● 좌변 : f(x1 + x2) = a(x1+ x2)● 우변 : f(x1) + f(x2) = ax1 + ax2다음 좌변과 우변은 모든 실수이므로 분배법칙에 의해 a(x1 + x2) = ax1 + ax2 가 성립한다.  1차 동차성을 만족하는 수..
벡터 크기와 이동 벡터로 원그리기 실습을 진행하고자 한다. 1. 원을 생성하는 사고방식지정한 반지름을 가진 원을 만들려면, 우선 원을 둘러싼 사각형 영역을 설정해야한다.사각한 영역으로부터 간격이 일정한 벡터들을 모두 생성하고, 원의 영역에만 속한 벡터만 골라내어 벡터의 묶을 만들 수 있다. 2. 사각형에 속한 벡터의 크기는 Vector2 Size()함수에 구현되어 있다.FORCEINLINE float Vector2::Size() const{ return sqrtf(SizeSquared());} 3. 입력에 따라 원을 이동시키는 코드// 게임 로직과 렌더링 로직이 공유하는 변수// 변수 선언 영역Vector2 currentPosition(100.f, 100.f);// 게임 로직을 담당하는 함수void SoftRenderer..
CMaker 소프트렌더러 첫 실습 벡터를 화면의 점으로 표현하기 위해선 '좌표'와 '색상' 정보 두 가지가 있어야 한다.좌표 관리는 Vector2.h의 헤더 파일을 사용하고, 색상 관리는 LinearColor를 선언하였다. 평면 벡터 값을 관리하는 Vector2의 구조체는 다음과 같다. struct Vector2{public: // 생성자 FORCEINLINE constexpr Vector2() = default; FORCEINLINE explicit constexpr Vector2(int InX, int InY) : X((float)InX), Y((float)InY) { } FORCEINLINE explicit constexpr Vector2(float InX, float InY) : X(InX), Y(InY) { } // 연산자 ..
CK 소프트 렌더러 입력 축 + 방향 버튼  - 방향버튼            함수                   용도X축 왼쪽 화살표    오른쪽 화살표      GetXAxis         좌우 회전Y축 위쪽 화살표    아래 화살표         GetYAxis         상하 이동z축 페이지업         페이지 다운         GetZAxis         확대 축소W축 홈(Home)키   엔드키                 GetWAxis        회전 혹은 기타 용도