일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- Unreal Engine5
- DirectX11
- softeer
- Frustum
- winapi
- algorithm
- UnrealEngine4
- C++
- Programmers
- 오블완
- UE5
- baekjoon
- 2294
- RVO
- 팰린드롬 만들기
- 1563
- UnrealEngine5
- 언리얼엔진5
- 티스토리챌린지
- C
- GeeksForGeeks
- NRVO
- directx
- TObjectPtr
- 줄 세우기
- const
- 프로그래머스
- IFileDialog
- 백준
- RootMotion
- Today
- Total
목록분류 전체보기 (730)
Game Develop
복사생성자란 C++에서 복사 생성자란 자신과 같은 클래스 타입의 다른 객체에 대한 참조(reference)를 인수로 전달받아, 그 참조를 가지고 자신을 초기화하는 방법이다. 복사생성자를 설명하면서 얕은복사와 깊은복사에 관해서도 간단하게 설명한다. 기본 복사 생성자 - 기본적으로 제공되는 생성자. 따로 정의 안해도 객체간의 변수의 값을 얕은복사(shallow copy)로 수행한다 - 객체를 선언함과 동시에 초기화할 때 수행된다. Ex) Object a; Object b = a; // 복사생성자 수행. b를 선언과 동시에 a의 값으로 초기화했기 때문. Object c(b); // 복사생성자 수행. 선언과 동시에 b의 값으로 초기화함. 이렇게 따로 사용자가 정의하지 않아도 기본적인 복사생성자는 수행된다. 하지..
임시방편예외처리로 해결한 버그목록 1. PatrolState에서 실제이동부분코드. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 if (Timer::Get()->GetFPS() > 10) // 초기실행시 FPS값이 순간적으로 1이 되는것에 따른 버그로 인한 예외처리. { monster->MoveToDestUsingAStar(mDest); monster->SetAnimation(eAnimation::Run); // Run. } if (fabs(mPatrolDestPos.x - monster->position.x) position.z) GetPath().pop_back(); mbPatrolMove = false; mPatrolRandomNum = GameMath::Rando..
김포프님이 정리해놓으신 C++ 코딩스탠다드. 절대 이게 무조건 맞다는게 아니라, 어떤걸로 해야할지 모를때 주어질 수 있는 선택지이다. docs.popekim.com/ko/coding-standards/cpp
꼭 싱글톤 사용시 주의점이라기보단 혼자 삽질한부분이 싱글톤쪽이라 기록을 남겨놓는다. 포트폴리오 작업 도중, 플레이어쪽 코드에서 스택오버플로우가 발생해서 스택호출을 추적해본 결과 싱글턴 인스턴스 할당하는 부분이 재귀함수마냥 뺑뺑이 도는걸 발견했다. 전날 딱히 건드린게 없다고 생각하긴 했는데 찾아보니 몬스터 생성자에서 GM->Get()->GetPlayer() 부분을 호출했기 때문에 생긴 문제였다. 원래는 Update에 두었기 때문에 생성자 이후에 호출되서 상관이 없었는데, 포인터만 받아오면 되는 부분이라 프레임마다 호출시킬 필요가 없기때문에 생성자부분으로 옮겨놨었다. 그렇게 바꾸고 오늘 빌드했더니 Player쪽에서 스택오버플로우가 발생했다. 현재 프로그램 구조가 대략 빌드 시 GameManager 싱글톤 인..
곱 순서 Scaleing : 크기 Rotation X,Y,Z : 자전 Translation : 이동 D3DXMatrixRotationAxis(공전) Parent : 부모행렬 ( 다른 사물에 종속되어있다면, 그 사물이 움직일 때 동일한 연산을 한다. 자식한테 물려줄때는 스케일링은 포함시키지 않는다. 뷰의 위치에서(카메라의 위치에서) 정점으로 향하는 방향과 반사각의 cos값을 구해야한다. 카메라의 위치를 따로 안넘기고 카메라의 트랜스폼의 뷰의 역행렬을 넘겨준다. 노말맵 : 울퉁불퉁하게 보이려고하는거. 법선벡터들(버텍스든 픽셸이든) 조절해서 흉내낸다. 대부분의 노말맵은 푸른빛을 많의 띈다. rgb중 빛값이 높기 때문. r,g,b 중 세번째인 b값이 높다는건데 벡터는 x,y,z로 표시한다. 즉 서로 세번째 값이..
직접광, 간접광이 있고 직접광은 2가지로 나뉜다. ============================================================================ 직접광 -> 광원으로부터 직접 받는 빛 난반사(Diffuse) : 구 기준, 빛을 받았을 때 골고루 반사하는걸 뜻함. 즉 빨간빛을 비추면 골고루 빨간빛 반사. 보통 빛을 비추면 빛을 많이받는 부분, 많이 안받는 부분이 있다. 이 빛을 계산하는 식을 만든 사람 : Lambert(램버트) cos값 이용하는 방법. (0~1). 표면의 법선(Normal) 이용. 빛 방향벡터랑 구의 법선벡터를 내적하면 cos세타값이 나오기때문에 그걸로 값 결정. (0~1사이의 값) 계산하기위해 빛방향벡터 or 법선벡터의 방향을 바꿔서 계산해야하..
- 싱글톤이란 싱글톤(Singleton)은 싱글 인스턴스(Single Instance)의 줄임말로, 말 그대로 프로그램 내에서 특정 클래스의 인스턴스를 하나만 생성한다음 공유하여 사용하는 디자인패턴이다. 보통 여러곳에서 접근해야하는 유틸성 성격을 가진 클래스를 싱글톤으로 생성하곤한다.( 사운드매니저,타이머클래스 등등) 예를들어 게임개발시 필수기능인 Timer클래스는 실시간으로 시간이랑 FPS를 계산하는 클래스이기 때문에 실행 초기에 인스턴스를 하나만 생성해서 계속 업데이트시키면 된다. 하지만 코딩을 하다보면 여러곳에서 현재시간을 이용하여 구현해야하는 기능들이 많기 때문에 이 인스턴스에대한 접근을 전역적으로 하게 해야한다. 이 때 적합한게 싱글톤패턴이다. 싱글톤패턴에 대한 구현은 정말 다양하기때문에 밑의 ..

- 서론 DeltaTime값에 대해 미리 말하자면 '각 컴퓨터의 성능에 따라 FPS(Frame Per Second, 초당 프레임)가 다름으로써 생기는 값의 차이를 없애기 위한 값'이다. DeltaTime의 개념자체는 간단하기 때문에 이 값을 어떻게 구하는지까지도 알아보도록 하겠다. - DeltaTime이 왜 필요한가? 키보드 오른쪽방향키를 누르고 있을 때 캐릭터의 x좌표값을 +1씩 한다고 가정하자. 얼추 아래와 같은 코드가 될 것이다. 1 2 3 4 5 6 7 void Update() { if (KEY_DOWN(VK_RIGHT)) // 오른쪽키를 누르면 { character.Position.x += 1; } } cs 그런데 Update()라는 함수는 프레임마다 실행되는 함수이다. 초당 프레임이 100을 ..