728x90

분류 전체보기 119

정렬 - H-Index

문제 설명 H-Index는 과학자의 생산성과 영향력을 나타내는 지표입니다. 어느 과학자의 H-Index를 나타내는 값인 h를 구하려고 합니다. 위키백과1에 따르면, H-Index는 다음과 같이 구합니다. 어떤 과학자가 발표한 논문 n편 중, h번 이상 인용된 논문이 h편 이상이고 나머지 논문이 h번 이하 인용되었다면 h의 최댓값이 이 과학자의 H-Index입니다. 어떤 과학자가 발표한 논문의 인용 횟수를 담은 배열 citations가 매개변수로 주어질 때, 이 과학자의 H-Index를 return 하도록 solution 함수를 작성해주세요. 제한사항 과학자가 발표한 논문의 수는 1편 이상 1,000편 이하입니다. 논문별 인용 횟수는 0회 이상 10,000회 이하입니다. 입출력 예citationsretur..

해시 - 전화번호 목록

문제 설명 전화번호부에 적힌 전화번호 중, 한 번호가 다른 번호의 접두어인 경우가 있는지 확인하려 합니다. 전화번호가 다음과 같을 경우, 구조대 전화번호는 영석이의 전화번호의 접두사입니다. 구조대 : 119 박준영 : 97 674 223 지영석 : 11 9552 4421 전화번호부에 적힌 전화번호를 담은 배열 phone_book 이 solution 함수의 매개변수로 주어질 때, 어떤 번호가 다른 번호의 접두어인 경우가 있으면 false를 그렇지 않으면 true를 return 하도록 solution 함수를 작성해주세요. 제한 사항 phone_book의 길이는 1 이상 1,000,000 이하입니다. 각 전화번호의 길이는 1 이상 20 이하입니다. 입출력 예제 phone_bookreturn [119, 9767..

PhysX 기본이론

PhysX 4.1 초기세팅 (InitPhysX) (tistory.com) PhysX 4.1 초기세팅 (InitPhysX) // Foundation을 생성하는데 필요한 변수 PxDefaultAllocator gAllocator; PxDefaultErrorCallback gErrorCallback; PxFoundation* m_pFoundation = NULL; // PxFoundation이 있어야 gPhysics를 생성할 수 있다. P.. hyukee.tistory.com 위의 피직스 초기세팅을 이어서 하기전에 피직스가 어떻게 동작하는지 알아보자. 일단 피직스는 비동기화 방식이다. 따라서 내가 만든 게임에 수동으로 동기화를 시켜주어야 한다. ____________________________________..

PhysX 2022.04.25

팀) DirectX 11 Code Vein 모작

CodeVein 모작 - YouTube DirectX 11 3D 제작 기간 : 22.02.03 ~ 22.04.08 (약 2개월) 제작 인원 : 6명 역할 : 팀장, 프레임워크, PhysX 전반적인 프레임워크 작성 및 외부라이브러리 (FMOD, PhysX, NvCloth 등) 연결 코드베인 (Code Vein) ____________________________________________________________________________ 나의 구현 내용 1. 프레임워크 [디자인 패턴] Component Pattern, Prototype Pattern, Singleton Pattern 등의 디자인패턴을 활용하여 프레임워크 구현 [Fixed Tick & CollisionCallback] -> 물리 계..

Project 2022.04.12

깃허브 ignore 적용이 안될 때, 캐쉬 삭제

.gitignore로 파일들을 ignore 시켜주고 싶은데 .gitignore를 메모장으로 수정해도 적용되지 않을 때에는 깃 캐시를 싹 밀어주고 다시 올리면된다. 최상위 폴더에서 깃배쉬 (gitbash)를 연다. -> 마우스 오른쪽버튼 gitbashhere (이를 위해 아래 파일 설치 필요) Git for Windows Git for Windows Git for Windows focuses on offering a lightweight, native set of tools that bring the full feature set of the Git SCM to Windows while providing appropriate user interfaces for experienced Git users and..

GitHub 2022.01.31

NvCloth 1.1.6 (4.1 버전과 함께 쓰기위한 버전)

피직스가 4.1버전에는 천 물리효과가 없다. 따라서 NvCloth 라는 라이브러리를 가져와서 써야한다. Guide Line: 사용자 가이드 — NvCloth 1.1.5 설명서 (nvidia.com) User Guide — NvCloth 1.1.5 documentation User Guide In this section, we describe how to set up NvCloth and guide you through some common features. Setup Some setup is required before we can start simulating. Here we give an overview of all the components needed. The sections below will ..

PhysX 2022.01.30

DirectX 11 다크사이더스3 모작

DX11 다크사이더스3 모작 - YouTube DirectX 11 / PhysX 제작기간 : 약 2개월 제작인원 : 개인 Dark Siders3 ____________________________________________________________________________ 구현 내용 1. 플레이어 [기본 이동] -> Navi Mesh를 이용하여, 갈 수 있는 곳과 없는 곳을 판단하여 이동하도록 구현 갈 수 없는 곳의 경우 Sliding Vector를 이용하여 미끄러지도록 구현 -> 점프는 PhysX 중력을 이용하여 구현 이단 점프 시, LinearVelocity를 0으로 초기화 하여 이단점프 구현 [충돌] -> PhysX의 RigidBody를 캐릭터의 뼈에 행렬을 곱해 부착하여, onContac..

Project 2022.01.24

# MFC에서 HWND와 HINSTANCE 구하기

HWND 구하기 1. 일반적으로 m_hWnd가 있는 경우가 있다. m_hWnd로 사용 2. GetSafeHwnd(); 사용 3. AfxGetMainWnd()->GetSafeHwnd(); 사용 HINSTANCE 구하기 1. AfxGetInstanceHandle(); 사용 2. GetModuleHandle(NULL); 사용 3. AfxGetApp()->m_hInstance; 사용 MFC를 사용 하는 경우, SetCooperativeLevel과 관련하여 오류가 생길 수 있다. 이 메서드에 전달된 창 핸들은 파생된 자식 창이 아닌 응용 프로그램의 최상위 창을 식별해야 한다. 이때, MFC 응용 프로그램의 최상위 창 핸들을 검색하려면 AfxGetMainWnd()->GetSafeHwnd(); 를 사용해서 핸들을 얻..

#3. 투영행렬

3D 장면을 2D로 표현 즉, n차원에서 n-1차원을 얻는 과정이다. 투영을 할거면 절두체가 세팅되어 있어야 한다. 투영스페이스는 절두체를 정규화 시켜놓은 공간이다. x : -1 ~ 1 y : -1 ~ 1 z : 0 ~1 ->z가 0 ~ 1 인 이유는 카메라는 뒤를 볼 수 없기 때문 투영변환행렬을 적용해주고 z값을 나누어야, 투영변환이 끝이 난다. 여기서 W는 r(종횡비 : Aspect : WinX/WinY)로 나누어주어야 하는데, 뷰포트 과정에서 오브젝트가 늘어나거나 줄어드는 과정을 반대로 먼저 늘리거나 줄여서 뷰포트 과정후에도 오브젝트의 크기가 변경되지 않도록 한다. -> 투영스페이스는 정사각형 이므로 크기 왜곡을 피하기 위해 미리 종횡비로 나누어 주는 것 각각 tanf(fovY/2.f) 로 나누어 ..

SR 2021.11.17

#42. 스마트 포인터

스마트포인터 종류 1. unique_ptr 2. shared_ptr 3. weak_ptr "스마트 포인터를 사용 하기 위해서는 #include 헤더를 추가해주어야 한다." - unique_ptr -> 포인터를 단독으로 소유하며, 복사나 대입이 불가함. * 클래스 멤버 변수로 활용 할 때 좋음 * 지역 변수로 활용 할 때 좋음 * STL벡터에 포인터를 저장할 때 좋음 -> 벡터를 클리어 하게 되면 자동적으로 포인터를 지워줌 - shared_ptr -> 두개의 포인터를 소유하며, 포인터를 다른 shared_ptr과 공유할 수 있음(레퍼런스 카운팅 기반) * 어떠한 shared_ptr에게도 참조되지 않을 때(레퍼런스카운트가 0일 때) 포인터는 소멸됨 * 참조카운트를 감소 시킬 때는 .reset()을 해줌 - ..

개발 Study 2021.11.12