응애맘마조
230208 강의 본문
어제 말했던대로 폰트와 조명에 대해서 배웠습니다.
먼저 폰트입니다.
폰트로 DirectX에 컴포넌트로 DirectWrite로 있습니다. 그림판에 텍스트로 선택하면 사각형 박스가 나오는 것 처럼 DirectX의 폰트도 똑같습니다. 지금 2D를 배우지만 시스템은 3D로 배우고 있습니다. 하지만 폰트는 2D로 포함되기 때문에 D2D와 함께 사용해야합니다. 폰트토 배열처럼 vector를 사용합니다.
textDesc.font = font;
textDesc.fontSize = size;
textDesc.stretch = stretch;
textDesc.style = style;
textDesc.weight = weight;
폰트의 매개변수입니다.
다음 조명입니다.
조명도 하나만 관리하기 때문에 싱글톤입니다.
struct PointLight
{
Vector2 screenPos;
float radius;
float padding;
};
struct LightBuffer
{
PointLight lights[10];
Vector4 select;
Color outColor;
Color inColor;
};
조명의 구조체입니다. 다른 클래스에서 접근을 하지 못하게 하기 위해 private 안에 추가했습니다. 먼저 조명도 싱글톤이고 스크린 좌표를 따라가며 픽셀 하나씩 모두 계산을 합니다.
위에 있는 PointLight는 각각 조명마다 차이점을 적었습니다. 세번째의 padding은 16바이트를 맞추기 위해 사용하지 않는 4바이트 값을 맞췄습니다.
밑에 있는 LightBuffer는 상수버퍼처럼 하나만 만들어지고 절대 변하지 않는 값들을 사용했습니다.
2월 9일은 강사님의 사정으로 학원을 쉽니다. 그래서 14일에 보강수업을 해서 4시간 수업을 하게 됩니다.
읽어주셔서 감사합니다.
Comments