일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Frustum
- 가장 큰 정사각형
- C++
- winapi
- const
- 프로그래머스
- 언리얼엔진5
- NRVO
- UE5
- RVO
- 절두체
- 절두체 크기
- UnrealEngine5
- directx
- UnrealEngine4
- 팰린드롬 만들기
- GeeksForGeeks
- RootMotion
- C
- DeferredRendering
- IFileDialog
- 줄 세우기
- softeer
- DirectX11
- baekjoon
- Programmers
- 백준
- 1563
- 2294
- algorithm
- Today
- Total
목록ComputerGraphics (27)
Game Develop
내 포폴에 적용중인 Assimp버전이 너무 오래된 나머지, 믹사모에서 다운받은 FBX파일을 추출할 때 에러가 난다. 그래서 Assimp관련 파일들을 전부 교체했더니 에러가 떴다. 에러는 아래와 같다. 얼추 해석하면 aiMaterial::GetName()이라는 함수를 해당경로의 DLL파일에서 못찾는다..는 내용 같았다. DLL파일경로를 못찾나 싶었지만 프로젝트속성에 해당 경로는 설정이 잘 되어있었다. 뭐가 문제였나 싶었는데 에러메시지의 경로를 보니까 솔루션경로\x64\Debug 쪽으로 이어지길래 확인했더니, 해당폴더의 DLL파일이 구버전 그대로였다. 파일만교체하고 빌드가 안되는상태였어서 그런 것 같다. (정확히는 모르겠다.) 어쨌든 Debug폴더의 Assimp DLL파일만 새버전으로 교체했더니 잘 실행됐다..
툴씬이 아니라 메인씬인데 너무 컨텐츠가 없는것같아서 더 구현중이다. 플레이어캐릭터와 마찬가지로 컬라이더세팅씬에서 바이너리로 저장한 파일을, 하드에웨어인스턴싱을 사용하려는 몬스터클래스에서 로드해서 적용하게 해놨다. 실제 위의 메인씬에서는 엄청 다양한 종류의 몬스터를 집어넣거나 하지는 않겠지만, 그렇게 넣는다는 가정하에 하드코딩 안하게 코드를 짜려고 하고있다. 하드웨어인스턴싱을 하는 오브젝트에 컬라이더를 셋팅하고 렌더하는 코드는 전부 동일하다. 그냥 복붙해도 된다. 미리 조금 확장성있게 짜놓으면 나중에 편하다. (딱히 뭐 대단한 코드를 짠것도 아니다) 다만 그렇다고 처음부터 확장성 있게 짠다고 시간을 너무 쓰지는 말자. 일단 되게 만든다음에 확장성있게 하든 성능최적화를 하든 하자. 내가 이런걸 조절 잘 못해..
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] 컬러피킹을 해야하기..
컬라이더세팅툴씬에서 컬라이더를 마우스피킹했을 경우 기즈모를 렌더시키고 싶기 때문에 구현해봤다.사실 기존의 반직선피킹을 하더라도 툴씬을 사용하는데에 지장을 줄정도로 프레임저하가 있을거 같진 않긴하다.당장은 컬라이더를 뭐 수십 수백개를 세팅(검사)할것도 아니니까..하지만 여기 말고도 다른 씬에서 사용할 수도 있고, 구현방법은 쉬우면서 효과는 좋기때문에 해봤다.분명 유용할것같긴하다. 픽셀단위로 정확한거치고는 프레임저하가 거의 없다. 다만 두번 그리는것이기 때문에 고해상도일수록 프레임 저하가 좀 더 있을것이다. 영상 이 방법은 예~전에 김포프님께서 올려주신 글을 보고 따라해봤다.(https://blog.popekim.com/ko/2012/12/03/fast-object-picking.html) 포프님께서도 툴..
사실 아직도 도저히 이해가 안가는 일이긴 하다. 씬에서 직접 fbx파일을 추출해서 Asset창에 보여주고 렌더시키는 툴을 만드는 중인데 fbx파일 선택을 위해 공용대화상자를 여는 winapi를 찾게 되었다. 먼저 사용한건 commdlg.h에 있는 GetOepnFileName()이라는 함수를 이용해서 파일대화상자(FileDialog)를 여는건데, 비교적 사용법은 쉬웠다. (사용법에 대해선 따로 정리해놨다) 근데 이상하게, 저 대화상자를 열고 파일 선택하고 확인을 누른 다음에 ModelExporter을 실행하면 도통 파일을 읽어오질 못한다. 이것저것 시도하다 하루를 날렸는데 멘탈이 조금 깨졌었다. 그냥 한창 구현만 하면 되는 작업이였어서 딱히 막히는일이 없을줄알았는데 생각치도못한곳에서 작업이 멈추니까 짜증도..
기존의 사용하던 피킹은 반직선피킹인데 프레임이 너무 안나와서 다른 피킹방법이 있나 찾게되었다. 물론 반직선피킹을 하더라도 최적화를 좀 더 하면 프레임이 좀 더 나오긴 하겠지만, 터레인에디터에서는 진짜 말 그대로 피킹지점의 월드좌표만 알아내면 되기 때문에 픽셀피킹을 시도해보았다. 깊이값 샘플링과 행렬계산은 컴퓨트셰이더에서 수행하고 수행결과값(월드값)만 CPU로 리턴시켜서 써먹었다. 깊이값샘플링을 위한 깊이맵은 PreRendr를 해서 따왔다. 렌더타겟을 OM에 셋팅해놓고 터레인 버텍스만 넘겨서 파이프라인 한번 돌린다음 얻어온 렌더타겟의 SRV를 컴퓨트셰이더에 샘플링을 위해 넘겼다. 그냥 같이 바인딩된 DSV의 깊이맵텍스쳐를 바로 컴퓨트셰이더에 넘겨주면 되긴 하는데, 그냥 깊이맵을 시각화하고싶어서 따로 렌더했..
fxc.exe가 종료되었습니다.(CODE 1) => FXC는 셰이더 컴파일도구종류중 하나인거같은데, 갑자기 잘되던게 이 에러뜨면서 빌드가 안된다. 이건 좀 사연이 길다 사실 잘되던건 아니고, UV피킹 구현중에 DEVICE설정 좀 건드리느라 혹-시나(전혀 걱정할필요없지만) 기존 컴퓨트피킹에 뭐 영향이 갔나 싶어서 컴퓨트피킹으로 바꿔놓고 빌드했는데 피킹이 갑자기 잘 안된다. 정말로 많이 당황했다. 셰이더파일 설정같은거 뭐 건드렸나싶어서 다 살펴보고했지만 아무리생각해봐도 전혀 뭘 건드린게 없었다. 이걸로 하루넘게 날렸다. 뭐 UV피킹 구현하는걸로 시간을 쓴것도아니고, 기존에 잘 되던게 갑자기 안되버리니 미치는줄알았다. 결국 원인을 찾았는데, cbuffer 레지스터 등록이나 구조체,함수 선언을 따로 Heaer에..