본문 바로가기

분류 전체보기

(51)
UPROPERTY() UPROPERTY(): 언리얼 엔진이 선언한 변수를 언리얼 엔진 리플렉션 시스템에 참여할 수 있게해준다. 리플렉션 시스템: 변수를 blueprint에 노출시키고 garbage collection에 참여하도록 한다. 언리얼 공식 문서에 따르면, 다음과 같이 정의한다.  리플렉션(Reflection)은 프로그램이 실행시간에 자기 자신을 조사하는 기능입니다. 이는 엄청나게 유용한 데다 언리얼 엔진 테크놀로지의 근간을 이루는 것으로, 에디터의 디테일 패널, 시리얼라이제이션, 가비지 콜렉션, 네트워크 리플리케이션, 블루프린트/C++ 커뮤니케이션 등 다수의 시스템에 탑재된 것입니다.  https://www.unrealengine.com/ko/blog/unreal-property-system-reflection
운영체제 구조 1. 모놀리식 구조(Monolithic Structure) 모놀리식 구조의 특징은 계층적 구조가 존재하지 않다는 것이다. 커널의 모든 기능을 단일 정적 바이너리 파일에 넣음으로서 파일 시스템 , CPU 스케줄링, 메모리 관리 등 운영체제의 역할을 하나의 계층에서 모두 이루어진다는 특징을 가지고 있다. 응용 프로그램이 일반적으로 커널에 대한 시스템 콜 인터페이스와 통신할 때, glibc 표준 C 라이브러리를 사용한다.   이 구조의 이점은 커널 내의 통신 속도가 굉장히 빠르며, 시스템 콜 인터페이스에는 오버헤드가 거의 없다는 것이다. 2. 계층적 구조(Layered Approach) 시스템이 다양한 기능으로 세분화 될 수 있으며, 사용자 인터페이싀 최상위 층과 하드웨어를 담당하는 최하층으로 구분할 수 있다..
운영체제 서비스 운영체제 서비스- 사용자 인터페이스 : 일반적으로 사용자에게 보여질 수 있는 그래픽 인터페이스(GUI) 제공한다. 태블릿, 휴대전화를 위한 스크린 인터페이스 또한 제공하며, 명령어 라인 인터페이스 (CLI) 등을 제공한다.- 프로그램 수행 : 메모리에 명령어를 적재하는 프로그램을 실행할 수 있도록 한다. - 입출력 연산 : 수행 중인 입출력을 프로그램에서 제어할 수 있게 한다.- 파일 시스템 조작: 프로그램은 파일을 읽고 쓸 수 있게 하며, 파일 소유권에 기반한 권한 관리를 부여하여 파일에 접근권한에 대한 설정을 할 수 있다.- 통신 : 프로세스 간 정보를 교환에 두 가지 방식을 제공한다. 같은 컴퓨터 내에서 정보를 교환하는 방식과 네트워크에 의해 같이 묶여져 있는 다른 컴퓨터 간의 공유 메모리를 통해서..
벡터의 내적 내적의 성질 벡터의 내적은 같은 차원의 두 벡터가 주어졌을 때, 벡터를 구성하는 각 성분을 곱한 후 더하여 스칼라를 더하내는 연산이다. 내적은 곱셈 기호와 동일한 가웃뎃점(.)을 사용한다. 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차 동차성을 만족하는 수..
삼각함수로 하트 그리기 https://github.com/moonimax/GameMath_CMaker/tree/trigonometric-functions-with-Heart GitHub - moonimax/GameMath_CMaker: CMaker를 활용한 게임 수학 구현CMaker를 활용한 게임 수학 구현. Contribute to moonimax/GameMath_CMaker development by creating an account on GitHub.github.com  여기에서 약간의 하트 알파값과 애니메이션을 넣게 된다면.. 다음과 같이 할 수 있다.   // 게임 로직을 담당하는 함수void SoftRenderer::Update2D(float InDeltaSeconds){ // 게임 로직에서 사용하는 모듈 내 주요..
벡터 크기와 이동 벡터로 원그리기 실습을 진행하고자 한다. 1. 원을 생성하는 사고방식지정한 반지름을 가진 원을 만들려면, 우선 원을 둘러싼 사각형 영역을 설정해야한다.사각한 영역으로부터 간격이 일정한 벡터들을 모두 생성하고, 원의 영역에만 속한 벡터만 골라내어 벡터의 묶을 만들 수 있다. 2. 사각형에 속한 벡터의 크기는 Vector2 Size()함수에 구현되어 있다.FORCEINLINE float Vector2::Size() const{ return sqrtf(SizeSquared());} 3. 입력에 따라 원을 이동시키는 코드// 게임 로직과 렌더링 로직이 공유하는 변수// 변수 선언 영역Vector2 currentPosition(100.f, 100.f);// 게임 로직을 담당하는 함수void SoftRenderer..