서적 정리/DirectX11을 이용한 3D 게임 프로그래밍 입문
64.재질의 설정
민돌이2
2022. 3. 3. 15:09
하나의 표면이라도 위치에 따라 재질이 다를 수 있다. 좀 더 범용성 있게 표현해 보자면, 한 오브젝트에서 위치에 따라 재질이 다를 수 있다. 아래의 그림을 보면 바로 이해가 된다.
이러한 다양성을 표현하기 위한 방법으로 정점별로 재질 값을 설정하는 것이다. 정점별 재질은 래스터화 도중에 삼각형을 따라 보간되며, 삼각형 메시의 표면의 각 점마다 재질 값이 부여된다. 재질 값들을 상수 버퍼의 한 멤버로 설정하면 재질 값을 그리기 호출마다 다르게 설정하는 것이 가능하다.
아래의 구조체는 재질 정보를 담는 용도로 사용하는 Material 구조체의 예시이다.
struct Material
{
Material() { ZeroMemory(this, sizeof(this)); }
XMFLOAT4 Ambient;
XMFLOAT4 Diffuse;
XMFLOAT4 Specular;
XMFLOAT4 Reflect;
};
728x90