일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 오블완
- algorithm
- UnrealEngine5
- 2294
- 백준
- DirectX11
- RootMotion
- RVO
- baekjoon
- 1563
- NRVO
- Frustum
- 줄 세우기
- Unreal Engine5
- DeferredRendering
- C++
- directx
- 프로그래머스
- winapi
- IFileDialog
- 언리얼엔진5
- 팰린드롬 만들기
- Programmers
- const
- 티스토리챌린지
- softeer
- UE5
- GeeksForGeeks
- C
- UnrealEngine4
- Today
- Total
목록분류 전체보기 (709)
Game Develop
최장,최단노드들을 알아내야할 경우, 보통 BFS를 쓰는 경향이 있는것같아서 BFS로 풀어보았다. 그리고 인접행렬보다는 인접리스트를 쓰는게 좀 더 효율적인것같다. 이 문제같은 경우, 1번노드라는 특정노드에서 가장 먼 노드들을 찾는것이기 때문에 바로바로 노드들을 타고 내려가면서 distMap에 기록해야 하기 때문에, 인접리스트로 구현했다. 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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 int solution(int n, vector edge) { int answer = 0; vector distMap(n ..
int나 long 같은 경우, 플랫폼마다 크기가 다를 수 있으므로 헷갈릴수도있다. 본 글은 윈도우 64bit를 기준으로한다. 직접 내 컴퓨터에서 출력찍어봐야 마음이 편하기때문에 직접 찍어봤다. 일단 VisualStudio에서 64bit로 빌드했을 시의 자료형크기. 운영체제가 64bit일 경우, 다른 OS는 long자료형의 크기가 8바이트지만 예외적으로 윈도우즈는 4바이트 그대로라고 한다. 아래는 32bit로 빌드했을 때의 자료형 크기. 포인터 크기만 다른걸 확인할 수 있따. 포인터는 메모리 위치를 가리키기 위한 주소를 담는 변수다. 만약 32비트 시스템이라면 CPU의 메모리 접근을 위한 주소가 32비트 만큼 가능하기 때문에 포인터도 32비트(4바이트)가 된다. 반면, 64비트 시스템이라면 64비트(8바이..
1. D3D11 WARNING: ID3D11DeviceContext::OMSetRenderTargets: Resource being set to OM RenderTarget slot 0 is still bound on input! [ STATE_SETTING WARNING #9: DEVICE_OMSETRENDERTARGETS_HAZARD] 2. D3D11 WARNING: ID3D11DeviceContext::OMSetRenderTargets[AndUnorderedAccessViews]: Forcing CS shader resource slot 0 to NULL. [ STATE_SETTING WARNING #2097316: DEVICE_CSSETSHADERRESOURCES_HAZARD] 컬러피킹을 해야하기..
Example 1. const키워드가 *앞에 선언될 경우 -> Heap에 락걸려있다는 느낌 int num1 = 4; int num2 = 61; const int* pNum = nullptr; pNum = &num1; // 정상적으로 수행 *pNum = 10; // Error const키워드가 *앞에 선언될 경우, 참조하는 값이 상수화된다. 그렇기때문에 pNum이라는 포인터변수의 값이 변경되는거는 상관없지만, 포인터가 가리키고있는 값의 변경에는 에러가 뜬다. Example 2. const키워드가 * 뒤에 선언될 경우 -> Stack에 락걸려있다는 느낌. int num1 = 4; int num2 = 61; int* const pNum = nullptr; pNum = &num1; // Error *pNum =..
컬라이더세팅툴씬에서 컬라이더를 마우스피킹했을 경우 기즈모를 렌더시키고 싶기 때문에 구현해봤다.사실 기존의 반직선피킹을 하더라도 툴씬을 사용하는데에 지장을 줄정도로 프레임저하가 있을거 같진 않긴하다.당장은 컬라이더를 뭐 수십 수백개를 세팅(검사)할것도 아니니까..하지만 여기 말고도 다른 씬에서 사용할 수도 있고, 구현방법은 쉬우면서 효과는 좋기때문에 해봤다.분명 유용할것같긴하다. 픽셀단위로 정확한거치고는 프레임저하가 거의 없다. 다만 두번 그리는것이기 때문에 고해상도일수록 프레임 저하가 좀 더 있을것이다. 영상 이 방법은 예~전에 김포프님께서 올려주신 글을 보고 따라해봤다.(https://blog.popekim.com/ko/2012/12/03/fast-object-picking.html) 포프님께서도 툴..
프로그램을 개발하다보면 바탕화면에 있는 파일을 자신의 프로그램에 드래그앤드랍해서 사용해야하는 경우가있다. 예를들어 유니티에 새 프로젝트를 만든다면 그 프로젝트만의 Assets 폴더가 생길것이고 프로그램에서 폴더의 내용물을 표시할것이다. 이 때 바탕화면의 png파일이라던가 하는 파일들을 프로그램의 AssetsWindow에 드래그앤드랍하면 파일이 프로젝트의 Assets폴더에 복사가 돼서 프로그램에 표시가된다. WINAPI프로젝트의 디폴트로는 드래그드랍이벤트가 작성되어있지 않기때문에 따로 해줘야한다. 보통 BOOL InitInstance(HINSTANCE hInstance, int nCmdShow) 에다가 HWND변수를 생성 후 초기화시켜줄텐데, 그다음에 DragAcceptFiles(hWnd, true); 실..
두가지 방법이 있다. 첫번째방법은 상당히 오래전부터 사용한 방법이고, 두번째 방법은 윈도우비스타 이후부터 권장되어진 방법이다. https://docs.microsoft.com/en-us/windows/win32/api/commdlg/nf-commdlg-getopenfilenamea GetOpenFileNameA function (commdlg.h) - Win32 apps Creates an Open dialog box that lets the user specify the drive, directory, and the name of a file or set of files to be opened. docs.microsoft.com MSDN에서 직접 언급했다. 샘플코드같은것들도 들어가서 조금만 뒤지면 나오..
사실 아직도 도저히 이해가 안가는 일이긴 하다. 씬에서 직접 fbx파일을 추출해서 Asset창에 보여주고 렌더시키는 툴을 만드는 중인데 fbx파일 선택을 위해 공용대화상자를 여는 winapi를 찾게 되었다. 먼저 사용한건 commdlg.h에 있는 GetOepnFileName()이라는 함수를 이용해서 파일대화상자(FileDialog)를 여는건데, 비교적 사용법은 쉬웠다. (사용법에 대해선 따로 정리해놨다) 근데 이상하게, 저 대화상자를 열고 파일 선택하고 확인을 누른 다음에 ModelExporter을 실행하면 도통 파일을 읽어오질 못한다. 이것저것 시도하다 하루를 날렸는데 멘탈이 조금 깨졌었다. 그냥 한창 구현만 하면 되는 작업이였어서 딱히 막히는일이 없을줄알았는데 생각치도못한곳에서 작업이 멈추니까 짜증도..