[1]. Loader 클래스를 보게 되면 현재, 셰이더 생성 시, 구조체 데이터 정보를 직접 하나하나 추가하고 있는데, 이는 너무 번거로우니 살짝 방법을 수정한다.
[2]. Engine 프로젝트의 Engine_Struct.h 에, VTXPOSTEX 라는 구조체를 별도로 만들어, Client 프로젝트에도 보여주겠다는 의미로 ENGINE_DLL 키워드를 작성하고, 앞으로 셰이더 등의 파일들을 Engine_Struct.h 의 구조체 들을 통해 셰이더를 생성하도록 한다.
[3]. 그리고, 구조체 멤버 변수를 추가 하되, 실제 구조체가 할당 될 때, 추가한 만큼 구조체의 사이즈 크기가 증가하는 게 아니라, 애초에 컴파일 단계 때부터 미리 한 번 할당하는 식으로, 해서 구조체의 전체 사이즈 크기를 바꾸지는 않게 한다.

[4]. 현재는 셰이더 파일에서 제대로 행렬 연산을 곱해서 처리하지 않고, 바로 로컬 영역의 위치로 던져주고 BackGround 객체를 출력하고 있는데, 이는 그저 우연히 투영 스페이스에 들어온 것일 뿐이고, 그래픽 디바이스 클래스에서, 뷰포트 변환을 하고 있는데, 이 BackGround 객체도 프로젝트 실행 윈도우창(직사각형) 처럼 강제로 뷰포트 변환이 되어 흰색 직사각형으로 그려지는 것이다.
[5]. 따라서 정상적인 방법으로, 다시 출력을 해야하므로, 간단하게 카메라가 있다는 식으로, Transform 클래스에, 뷰행렬과 투영행렬을 만들어서 확인을 해본다.
[6]. 일단 월드행렬도 필요하므로, 원본 생성시, 월드 행렬을 정규화해서 저장해준다.
[7]. BackGround 클래스에도 뷰행렬과 투영행렬을 만들어놓고, 셰이더에서 행렬 곱셈 연산을 제대로 수행할 수 있게 해야한다. 즉, 셰이더 외부의 값을 더 어떻게 셰이더에 던져줄 것인가에 대한 문제.
[8]. Shader 클래스에, Bind_Matrix라는 함수를 만들고, 인자로 이름을 받아오는데, 즉 받아온 이름의 전역변수의 핸들을 가져오는 역할의 함수이다.
[9]. 그 전역 변수들은, 셰이더 파일에 있으며 일단 Shader 클래스의 Bind_Matrix 함수는 다음과 같다.

[10]. 사진 속 AsMatrix 함수는, 이것이 진짜 행렬인지를 체크해주고, SetMatrix 함수를 통해, 현재 이 전역 변수에, 내가 넘겨준 행렬을 넣어줄 것이다 라는 뜻이다. SetMatrix 함수는, 또 인자로 포인터 끼리의 형변환 ,reinterpret_cast 를 통해 float4x4 → float 으로 바꿔서 return 하도록 한다.
[11]. 이제 다시 BackGround 클래스에서, Shader 컴 객체에서 이 Bind_Matrix 함수를 통해, 뷰행렬과 투행렬을 던져준다. 월드 행렬은, Transform 클래스를 통해 던져준다.
[12]. Transform 클래스에서는, Bind_ShaderResource 라는 함수를 통해, 전역변수의 이름과 월드행렬을 던져준다!

[13]. 이제 다시, BackGound 클래스에서 월드 행렬 작업까지 시작한다.
