전체 글

게임 개발 관련 게시글을 올립니다. 학습한 내용을 정리하면서 공부하는 게 편해서 블로그에 글을 적고 있습니다.
알아보면서 도움된 블로그 https://blog.naver.com/ryumr/221334719805 https://somworks.tistory.com/7 파생 데이터 캐시 (Derived Data Cache) 언리얼에서 프로젝트를 처음으로 열면, 쉐이더 컴파일을 진행하게 된다. 이것을 캐시로 저장해놓고, 다음번에 프로젝트를 열 때는 캐시를 이용하여 빠르게 열 수 있는 기능이다. 경로를 바꾸는 이유는 1. SSD의 용량을 줄이고, 비교적 용량이 큰 HDD에 저장한다. 2. 협업할 때, 모두가 각자의 Local PC에 DDC를 저장하지 않아도 된다. 협업할 때 서버에 올린다든가하면, 모두가 쾌적하게 사용할 수 있겠죠?? 프로젝트가 커지면 커질수록 컴파일 시간이 오래 걸리니까. 경로 바꾸기 기본적으로 DDC..
조명 연산 앰비언트 라이트(간접광) + 디퓨즈(난반사) + 스페큘러(정반사) + ... = 최종 조명. 빛 처리는 하나하나 구한 뒤에 모두 더해서 구한다. 디퓨즈, 스페큘러는 구현하는 유명한 방법이 있다. 현재도 이 방법에서 크게 변하진 않았다. 요즘에 '때깔이 좋다.' 라고 하는 것은 앰비언트 라이트가 많이 발전했기 때문이다. 디퓨즈(난반사) 구하기 디퓨즈를 구현하는 가장 유명하고 간단한 방법이 있다. 램버트, 하프 램버트 모델이다. 요즘 물리 기반 렌더링에서는 Oren-Nayar 모델로 디퓨즈를 구현한다고 한다. gamedevforever.com/93 램버트 (Lambert) 1. 빛을 직접 연구해보니까 Cos그래프와 비슷하더라. (램버트가 연구함.) 2. 우리에게 주어진 것은 벡터 2개이다. (Li..
__declspec(align(16)) 요즘에는 16바이트씩 정렬해야 연산 속도가 빨라진다. 위의 키워드는 '우리가 16바이트씩 정렬했다' 라는 의미로 붙여주는 것이다. float 변수 3개를 써서 12byte만 사용했을 경우, 안 쓰는 float 값을 하나 추가해서 억지로 16byte를 맞춰주는 작업을 하기도 한다. 작성한 DirectX 코드 오늘은 카메라를 만들었다. View 행렬, Projection 행렬을 만들어서 Vertex에 곱했다. 키보드, 마우스 입력을 받아서 카메라의 위치, 회전 값을 바꿀 수도 있게 만들었다. github.com/mingyu243/STL_GraphicsEngine2/tree/32e60642044b677878a4c1949d7ffa6626cd4c1d mingyu243/STL..
애니메이션도 Mesh의 Vertex가 움직이는 것이기 때문에, VertexShader에서 작업한다. 애니메이션이 있는 것과 없는 것의 VertexShader 구조가 다르기 때문에, 언리얼에서는 Static(스태틱), Skeletal(스켈레탈)로 구분. 유니티에서는 MeshRenderer, SkinnedMeshRenderer로 구분. 버퍼 사용 코드 Buffer를 사용할 때는 요런 구조이다. (예시는 VertexBuffer를 사용할 때.) D3D11_BUFFER_DESC처럼 설정해야하는게 구조체로 되어있어서, 자료형을 알아야한다는 게 친절하지는 않은 것 같다. // 버퍼 변수 선언. ID3D11Buffer* buffer; // 버퍼 설정 값 지정. D3D11_BUFFER_DESC vertexBufferDe..
DirectXTK (다이렉트x 툴킷) 라이브러리 다운로드 사용자 입력처리를 쉽게 만들어주는 라이브러리이다. 2021/02/24 - [프로그래밍/DirectX] - DirectX 8일차 (텍스쳐 매핑하기) 이 글에서 라이브러리를 다운받는 과정처럼 똑같이 하면 된다. github.com/microsoft/DirectXTK 여기서 다운받으면 됨. 키보드, 마우스 입력만 받을거기 때문에, 헤더파일은 이렇게만 복사해왔다. 나중에 다른 것이 필요하면 또 복사해오면 된다. assimp 라이브러리 다운로드 모델을 불러오는 라이브러리이다. 이거는 위의 방법처럼 라이브러리를 빌드해서 추가하려고 하면, 솔루션 파일이 없어서 Visual Studio로 열 수 없다. 윈도우 전용이 아니라, Mac, Linux에서도(다양한 운영..
텍스쳐 로드 라이브러리 다운받기 삼각형과 사각형을 그려봤으니까, 사각형에 텍스쳐를 입혀볼 것이다. 텍스쳐를 읽어야 하니까 라이브러리를 다운받는다. 라이브러리를 바로 다운받아도 되는데, 직접 빌드를 해서 lib 파일을 만들어보자. 구글에 directxtex을 검색하면, 깃허브 사이트가 나온다. github.com/microsoft/DirectXTex 다운로드를 하고, Zip 파일을 푼다. 2019 솔루션 파일을 Visual Studio로 연다. 빌드를 하기 전에, 여기 x64(64비트), x86(32비트)를 정하고 빌드를 한다. 솔루션 구성을 Debug, 솔루션 플랫폼을 x86으로 하고 빌드를 했다. (왼쪽 이미지) 솔루션 구성을 Debug, 솔루션 플랫폼을 x64로 하고 빌드를 했다. (오른쪽 이미지) ..
참고 자료 데이터 모델링 pdfslide.net/engineering/kgc2014--559c0e872ee3a.html 행렬 Vector에 Matrix(행렬)를 곱해주면, Transform(위치, 회전, 크기)를 구현할 수 있다. 이런 행렬을 변환행렬이라고 하는 것 같다. 행렬은 행 기준 행렬(Row-major Matrix), 열 기준 행렬(Column-major Matrix)이 있다. 보면 훨씬 이해가 잘 되는 거 같아서 이미지를 퍼왔다. 이미지 출처 : en.wikipedia.org/wiki/Row-_and_column-major_order msdn mul 이라고 구글링하면, 요렇게 나온다. docs.microsoft.com/en-us/windows/win32/direct3dhlsl/dx-graphi..
참고 영상들 게임 수학. www.youtube.com/watch?v=nY6cZOY3VOs www.youtube.com/watch?v=iSpxD_Qm6YM&list=PL-xqYJ8bjgMC-p94R7iXjFCs-znRg93PJ Physically Based Rendering( PBR )에 대해서. lifeisforu.tistory.com/category/Physically%20Based%20Rendering Visual Studio 단축키 Ctrl + - 뒤로 탐색. Ctrl + Shifft + - 앞으로 탐색. F12 정의로 이동 F12로 쭉쭉 들어가다가 나오고 싶을 때, Ctrl + - 로 되돌아오면 됨. 컴퓨터 메모리(RAM, Random Access Memory) 공간의 종류 우리가 구분한 논리적인..
푸쿠이
민규야 개발하자