하나의 표면이라도 위치에 따라 재질이 다를 수 있다. 좀 더 범용성 있게 표현해 보자면, 한 오브젝트에서 위치에 따라 재질이 다를 수 있다. 아래의 그림을 보면 바로 이해가 된다.

이러한 다양성을 표현하기 위한 방법으로 정점별로 재질 값을 설정하는 것이다. 정점별 재질은 래스터화 도중에 삼각형을 따라 보간되며, 삼각형 메시의 표면의 각 점마다 재질 값이 부여된다. 재질 값들을 상수 버퍼의 한 멤버로 설정하면 재질 값을 그리기 호출마다 다르게 설정하는 것이 가능하다.
아래의 구조체는 재질 정보를 담는 용도로 사용하는 Material 구조체의 예시이다.
struct Material
{
Material() { ZeroMemory(this, sizeof(this)); }
XMFLOAT4 Ambient;
XMFLOAT4 Diffuse;
XMFLOAT4 Specular;
XMFLOAT4 Reflect;
};
728x90
'서적 정리 > DirectX11을 이용한 3D 게임 프로그래밍 입문' 카테고리의 다른 글
68.조명 구현 (0) | 2022.03.05 |
---|---|
67.점적광(Spot Light) (0) | 2022.03.03 |
66.점광(Point Light) (0) | 2022.03.03 |
65.평행광(Parallel Light) (0) | 2022.03.03 |
63.조명 중간 정리 (0) | 2022.03.03 |
62.반영광 조명 (0) | 2022.03.03 |
61.주변광 조명 (0) | 2022.03.02 |
60.분산광 조명 (0) | 2022.03.02 |
댓글