분류 전체보기
[백준 11401번 C/C++] 이항 계수 3
[백준 11401번 C/C++] 이항 계수 3
2024.06.02[백준 11401번 C/C++] 이항 계수 3 https://www.acmicpc.net/problem/11401 해결전략 분할 정복을 이용한 거듭제곱 모듈로 곱셈 역원 페르마의 소정리 사실상 수학문제다. 모듈로 곱셈 역원과 페르마의 소정리를 찾아본 후 풀었다. 정답코드 #include using namespace std;const int MOD = 1000000007; long long n, k; long long answer; // 팩토리얼 계산 함수 (start부터 end까지의 곱을 계산)long long fact(long long start, long long end) { long long ret = 1; // 반환 값 초기화 for (int i = start; i >..
[UE] 프로젝트 프로파일링 & 최적화
[UE] 프로젝트 프로파일링 & 최적화
2024.06.02아래는 언리얼 엔진 프로젝트에서 발생한 프레임 드롭을 해결한 과정을 기록한 글이다. 목차 문제 발생 프레임 드랍 게임 시작과 동시에 프레임 드랍(Frame Drop)이 발생했다. 프로파일링 및 최적화 하기 라이트 문제 [ 문제 파악하기 ] 에디터에서 Optimization Viewmodes - Light Complexity 를 눌러 라이트 연산량을 시각적으로 체크했다.검은색일수록 연산량이 적고 검은색 해당 화면을 보고 라이트 연산량이 많다는 것을 파악했다. PointLight 라이트의 Attenuation 범위가 너무 커서 겹쳐지는 부분이 많다. (Attenuation이 4000cm로 너무 컸다). 물체가 여러개의 라이트로 겹쳐져서 연산되어 연산량이 너무 많아졌다. 겹치는 ..
[서평] Effective C++ 이펙티브 C++
[서평] Effective C++ 이펙티브 C++
2024.06.02제목: Effective C++ 이펙티브 C++저자: 스콧 마이어스출판사: 프로텍미디어 이 책은 C++ 프로그래머들이 알아야 할 55가지의 핵심 규칙과 조언을 통해, 코드의 효율성과 안정성을 높이는 방법을 설명한다. 저자인 스콧 마이어스는 그의 경험을 바탕으로, C++ 프로그래밍에서 자주 발생하는 문제와 그 해결책을 제시한다. 각 규칙은 구체적인 예제와 함께 설명되어 있고, 문제가 되는 코드는 왜 잘못되었는지 설명한다. C++을 보다 효과적으로 사용하고자 하는 중급 프로그래머들에게 강력히 추천되는 책이다. 입문서가 아니기에 C++의 문법을 알고있다는 가정하에 작성된 책이다. 다루는 내용은 C++ 문법뿐만 아니라 디자인 패턴과 관련된 내용도 있기에 그리 쉽지는 않다. C++를 깊이있게 이해하기에 좋은 책..
2024.06.02 운동일지
2024.06.02 운동일지
2024.06.02맨몸 + 웨이트 운동 1시간
[UE] 언리얼 프로파일링 & 최적화
[UE] 언리얼 프로파일링 & 최적화
2024.05.30언리얼 엔진에서 프로파일링 및 최적화는 게임 성능을 향상시키기 위한 필수 과정이다다. 프로파일링은 CPU, GPU, 메모리 사용량 등을 모니터링하고 분석하여 성능 병목 현상을 파악하는 작업이다. 이를 위해 언리얼 엔진이 제공하는 다양한 도구(예: Unreal Insights, Stat Commands, Session Frontend)를 사용하여 프로파일링 및 최적화를 진행하면 된다. 목차 최적화 최적화란? 최적화란 디바이스의 자원을 최대한 활용하는 것을 말한다. 최적화는 프로파일링 결과를 바탕으로 게임의 효율성을 높이는 과정으로, 코드 최적화, 애셋 관리, LOD(Level of Detail) 설정, 메모리 관리 등이 포함된다. [ 디자이스의 자원 ] CPU / GPU Cores, 메모리, ..
2024.05.29 운동일지
2024.05.29 운동일지
2024.05.29조깅 5.37km
2024.05.28 운동일지
2024.05.28 운동일지
2024.05.29웨이트 1시간
2024.05.27 운동일지
2024.05.27 운동일지
2024.05.27조깅 5.17km
[C++] Effective C++ : Chapter 7 템플릿과 일반화 프로그래밍
[C++] Effective C++ : Chapter 7 템플릿과 일반화 프로그래밍
2024.05.27목차 Chapter 7 템플릿과 일반화 프로그래밍 항목 41: 템플릿 프로그래밍의 천릿길도 암시적 인터페이스와 컴파일 타임 다형성부터 Q. 다음 문장 중 틀린 것을 고르시오.1. 클래스 및 템플릿은 모두 인터페이스와 다형성을 지원한다.2. 클래스의 경우, 인터페이스는 명시적이며 함수의 시그너처를 중심으로 구성되어 있다.3. 다형성은 프로그램 실행 중에 가상 함수를 통해 나타난다.4. 인스턴스화를 진행하는 함수 템플릿에 어떤 템플릿 매개변수가 들어가느냐에 따라 호출되는 함수가 달라지는데 이를 컴파일 타임 다형성이라고 한다.5. 암시적 인터페이스는 함수 시그너처에 기반하고 있지 않다.6. 템플릿 매개변수의 경우, 인터페이스는 명시적이며 유효 표현식에 기반을 두어 구성됩니다.7. 컴파일..
2024.05.26 운동일지
2024.05.26 운동일지
2024.05.26웨이트 1시간
[UE] 아이템 드랍 후 바닥에 떨어뜨리기
[UE] 아이템 드랍 후 바닥에 떨어뜨리기
2024.05.26아이템을 주운 후 떨어뜨릴때 자연스럽게 떨어져 바닥에 놓고 싶었다. Collision 설정을 변경하면 되었다. 이 설정값을 자주 잊어버리니 아래에 기록해두겠다. 아이템 드랍 후 바닥에 떨어뜨리기 문제 상황 아이템을 드랍해도 SphereCollision 기준으로 바닥과 충돌되어 바닥에 떠있었다. 해결방안 모든 아이템의 부모가 되는 클래스의 Collsion 설정을 아래와 같이 변경한다. 기본적으로 모두 Ignore에 WorldStaticWorldDynamic위의 두개만 Block 체크한다.
[UE] 언리얼 에디터 버그: BP의 부모 클래스가 계속 바뀌는 버그 ( DefaultEngine.ini 의 CoreRedirect 문제)
[UE] 언리얼 에디터 버그: BP의 부모 클래스가 계속 바뀌는 버그 ( DefaultEngine.ini 의 CoreRedirect 문제)
2024.05.26언리얼 에디터에서 부모를 맞게 할당해도 에디터를 다시 열면 Blueprint의 부모 클래스가 계속 바뀌는 버그가 발생했다. 부모 클래스 할당이 사라지는게 아닌 특정 이름의 클래스의 이름으로 바뀌어서 뭔가 설정이 잘못됬음을 의심했다. 결과적으로 말하면, DefaultEngine.ini의 CoreRedirects 부분에 문제가 있었던 것이었다. BP의 부모 클래스가 계속 바뀌는 버그 문제상황 언리얼 에디터에서 부모를 맞게 할당해도 에디터를 다시 열면 Blueprint의 부모 클래스가 계속 바뀌는 버그가 발생했다. 확인해야 될 사항들 1. DefaultEngine.ini 내의 [CoreRedirects] 섹션프로젝트 설정 파일(DefaultEngine.ini)에서 [CoreRedirects] 섹션..