전체 글
-
[UE5] Bitmap 파일을 작성해서 이미지 파일 생성언리얼엔진/노노그램 2024. 1. 5. 17:53
전에 언리얼 엔진의 OpenCV 플러그인으로 런타임에서 이미지 파일을 생성하고 불러오는 작업을 했다.https://mstone8370.tistory.com/14 [UE5] 퍼즐 진행 상황 기록 기능난이도가 높은 퍼즐은 푸는데 시간이 오래걸려서 일단 상황을 기록해두고 나중에 다시 이어서 하는 경우가 있다. 그래서 퍼즐을 푸는중에 나가면 퍼즐의 마지막 상황을 기록하게 했다. 그렇다mstone8370.tistory.com원래 노노그램 프로젝트는 모바일에서 작동하게 하는걸 목표로 했는데 이 플러그인을 사용한 뒤로 apk파일이 빌드되지 않는 문제가 생겼다.여러 정보를 찾아보면서 컴파일까지는 완료되게 했지만 이후에 Gradle에서 링크 에러가 발생해서 결국엔 실패하게 됐다.원인을 계속 찾아보니 버전이 호환되지 않는..
-
[UE5] 발사체의 탄성 구현언리얼엔진/FPS 프로젝트 2023. 12. 27. 15:34
예전에 언리얼 엔진에서 제공하는 Projectile Movement Component를 이용해서 발사체를 구현했었다. 그러던 중에 필요한 기능이 있어서 Projectile Movement Component의 Velocity를 직접 조작하게 되었는데 이때 발사체가 물체와 부딪혔을 때 탄성으로 인해 튀어오르는 동작도 구현했었다. 이제와서 생각해보면 이런 동작은 Projectile Movement Component에서 발사체 바운스라는 옵션으로 제공하고있고, 추가로 필요한 기능은 블루프린트만으로도 구현이 가능하지만 이전에는 언리얼 엔진에 익숙하지 않던 때라서 직접 구현하게 되었다. 그래도 직접 구현해보면서 알게된 것도 있고, 이왕 시작한거 제대로 해보자는 생각이 들어서 Projectile Movement Co..
-
[DirectX11] CubeMap 적용DirectX11 2023. 12. 20. 11:35
큐브맵으로 배경에 이미지를 씌우는 과정이다. 여기에 사용될 이미지는 HDRI 이미지를 큐브맵으로 변환해서 사용했다. HDRI 이미지는 이곳에서 구했다. https://polyhaven.com/hdris HDRIs • Poly Haven Previously known as HDRI Haven. Hundreds of free HDRI environments, ready to use for any purpose. No login required. polyhaven.com HDRI 이미지를 큐브맵으로 변환해주는곳 https://matheowis.github.io/HDRI-to-CubeMap/ HDRI to CubeMap matheowis.github.io 변환한 뒤에 6면을 따로 받으면 된다. 큐브맵 이미지는 ..
-
[DirectX11] chrono로 정확한 DeltaTime 구하기DirectX11 2023. 12. 18. 17:17
DeltaTime은 프레임 렌더링이 됐을때 이전 프레임에서부터 시간이 얼마나 지났는지를 뜻한다. 1초에 60프레임이 일정하게 나오면 각 프레임 사이의 DeltaTime은 1/60 초씩으로 약 0.01667 초다. 실시간 렌더링에서는 초당 프레임이 높게 나와야하므로 DeltaTime의 값이 매우 작아지게되어 정확도가 중요해진다. 그리고 게임에서는 DeltaTime을 기준으로 작동하는 계산이 많아서 중요도가 높다. 이전 글에서 입력으로 카메라를 조작하는 내용을 다뤘는데 그 중에서 이동 속도는 DeltaTime을 곱해서 적용한다고 했다. 이렇게 하지 않으면 초당 프레임 개수에 따라 이동 속도가 달라지는 문제가 생긴다. 애초에 속도가 초당 이동거리이므로 일정한 이동 속도를 위해서는 DeltaTime이 꼭 필요하..
-
[DirectX11] 1인칭 카메라 조작DirectX11 2023. 12. 18. 16:28
다이렉트x에서 Direct Input으로 1인칭 카메라 회전과 이동이 가능하게 구현했다. 참고한 곳은 https://www.rastertek.com/dx11win10tut16.html Tutorial 16: Direct Input Tutorial 16: Direct Input This tutorial will cover using Direct Input in DirectX 11. The code in this tutorial will be based on the previous tutorial code. Direct Input is the high-speed method of interfacing with input devices that the DirectX API provide www.rasterte..
-
[DirectX11] 쉐도우 맵과 PCF(Percentage Closer Filtering)DirectX11 2023. 12. 15. 13:59
이전 글의 결과물을 보면 그림자가 없어서 어색하기도 하지만, 물체가 바닥과 얼마나 떨어져있는지 구분이 안되기도 한다. 실제로는 바닥에 닿아있는 상태지만 떠있는듯이 보이는 문제가 있다.그림자를 추가하면 더 자연스러워질 것이다. 그림자를 그리기 위해서 쉐도우 매핑을 한다.이론에 대해서는 자세하게 알려주는 글이 많으니 자세히 다루지는 않겠다.간단하게 적으면 카메라 시점에서 렌더링 하기 전에 조명 시점에서 모든 물체를 렌더링하고 깊이 정보를 저장한다.그 다음에 카메라 시점에서 렌더링 할 때 조명시점에서의 깊이 정보를 사용해서 그림자가 진 영역인지 아닌지를 판단한다.카메라 시점에서 렌더링할때 대상의 월드 좌표를 알 수 있고, 이 월드 좌표에서부터 조명까지의 거리도 알 수 있다.만약 이 조명까지의 거리가 ..
-
[DirectX11] 텍스쳐와 노멀매핑DirectX11 2023. 12. 13. 17:58
모델에 텍스쳐를 적용하는 과정이다. 필요한 것 텍스쳐를 저장할 쉐이더 리소스 뷰 (ID3D11ShaderResourceView) 텍스쳐에서 값을 읽을 방식을 결정하는 샘플러 (ID3D11SamplerState) GPU에서 텍스쳐를 받을 Texture2D 타입 변수 GPU에서 텍스쳐를 읽을 방식을 지정받을 SamplerState 타입 변수 텍스쳐를 읽을때에는 DirectXTK의 CreateTextureFromFile함수를 사용한다. DirectXTK: https://github.com/microsoft/DirectXTK/tree/main GitHub - microsoft/DirectXTK: The DirectX Tool Kit (aka DirectXTK) is a collection of helper cl..
-
[DirectX11] Disney DiffuseDirectX11 2023. 12. 12. 18:38
지금까지는 Diffuse로 램버트의 코사인 법칙만 적용했는데 디즈니의 BSDF에 사용되는 Diffuse 모델이 있어서 적용해봤다. 아래 내용들을 참고해서 적용했다. https://lifeisforu.tistory.com/350 [ 번역 ] Physically-Based Shading at Disney 원문 : https://disney-animation.s3.amazonaws.com/library/s2012_pbs_disney_brdf_notes_v2.pdf 주의 : 번역이 개판이므로 이상하면 원문을 참조하세요. 주의 : 허락받고 번역한 것이 아니므로 언제든 내려갈 수 있습니 lifeisforu.tistory.com https://schuttejoe.github.io/post/disneybsdf/ Ren..