본문 바로가기

게임수학/CK소프트렌더러

(4)
WireFrame Rendering 정사각형 메시는 두개의 삼각형 메시의 정보로 이루어졌다.메시의 인덱스 버퍼와 버텍스 버퍼를 활용하여 와이어프레임 방식으로 정사각형을 그려보자. // 아핀 변환 행렬 ( 크기 ) Vector3 sBasis1(currentScale, 0.f, 0.f);Vector3 sBasis2(0.f, currentScale, 0.f);Vector3 sBasis3 = Vector3::UnitZ;Matrix3x3 sMatrix(sBasis1, sBasis2, sBasis3);// 아핀 변환 행렬 ( 회전 ) float sin = 0.f, cos = 0.f;Math::GetSinCos(sin, cos, currentDegree);Vector3 rBasis1(cos, sin, 0.f);Vector3 rBasis2(-sin, c..
벡터 크기와 이동 벡터로 원그리기 실습을 진행하고자 한다. 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        회전 혹은 기타 용도