__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) 공간의 종류 우리가 구분한 논리적인..
오늘은 AWS에서 온 메일을 처리한다고 제대로 집중못했다..... AWS 사건 전말 2018년에 고등학교를 다니면서, 공부 목적으로 AWS에 회원가입한 적이 있었다. 이리저리 튜토리얼을 따라하다가 어려워서 포기했는데, 만들어 놓은 서비스를 제대로 종료 안 시키고 중단만 시켜놔서 비용이 청구되고 있었다. 이게 1년만 무료였고, 그 뒤로 1달에 1달러씩 나가고 있었다. 많이 당황했다. 총 16개월로 16달러가 나갔는데, 환불 문의를 넣어서 다행히 돌려준다고 답변 받았다. 휴. 문의 답변이 엄청 빠르고 친절해서 좋았다. 이게 1달러가 아니었으면 어쩔 뻔 했나........... 정말 곤란한 순간이었다. 많은 cpp, header 파일 정리 요즘 언리얼에서는 public과 private 폴더로 나눈다고 한다. ..
프로그래밍에 대한 배경지식?들도 많이 설명을 해주신다. C/C++/C#/JAVA 언어에 대해서 C#, JAVA도 어차피 C로 구현되어있다. 이해가 쉽게 만든 것인데, 그 대신 속도가 좀 느려진다. 기계랑 가까울 수록 속도가 빠르기 때문에, C가 제일 빠르다. JAVA에서 JVM이 하는 일은 특정 운영체제를 타깃으로 하는 게 아니라, 다양한 운영체제를 지원한다. JVM을 누군가가 작성해줬기 때문에, JAVA를 C보다 편하게 쓸 수 있는 것이다. C#은 MS에서 MS.net을 만들었는데, Mono가 Ms에 맞서기 위해 개발되었다. 이후에 MS가 오픈소스화를 하면서 Mono의 개발을 양도받게 되었다. 유니티가 이 Mono를 쓰기 때문에, C#으로 개발한다. 방법론 애자일 주기적으로 끊임없이 프로토타입을 만들며..