1인칭 카메라
키보드 및 마우스의 조작을 통해 시야행렬을 실시간으로 수정하고 렌더링에 이를 활용하면 시야의 이동 및 회전, 즉 1인칭 카메라의 구현이 가능하다.
이는 카메라 클래스를 정의하여 관리하면 유용한데 현재 카메라의 위치, 방향(시야공간 기저)등과 그에 따른 시야행렬을 함께 관리하면된다. 추가로 카메라 렌즈 특성으로 표현될 수 있는 투영관련 상수 및 그에 따른 투영 행렬도 함께 관리하면 깔끔하다.
동적 색인화
동적 색인화는 셰이더 자원으로 구조적 버퍼나 텍스처 배열등의 자원 배열을 선언한 후 여러 방식으로 얻을 수 있는 인덱스로 현재 필요한 데이터에 접근하여 사용하는 방식을 말한다.
이는 보통 오브젝트 데이터의 재질 인덱스로 재질 데이터 배열에 접근해 해당 오브젝트의 재질 정보에 접근하거나 재질 데이터에서 담긴 인덱스로 텍스처 배열에 접근해 해당 재질의 텍스처를 가져오는 방식등에 사용된다.
또한 이는 이후에 배울 인스턴싱에서 각 인스턴스가 자신의 인스턴스 데이터에 접근할때도 사용되는 기법이다.
참고서적
DirectX 12를 이용한 3D 게임 프로그래밍 입문
'그래픽스 > DirectX12' 카테고리의 다른 글
[Directx12][16장][2]절두체 선별 (0) | 2023.03.21 |
---|---|
[Directx12][16장][1]인스턴싱 (0) | 2023.03.21 |
[Directx12][14장]테셀레이션 (0) | 2023.03.21 |
[Directx12][13장]계산셰이더 (0) | 2023.03.21 |
[Directx12][12장]기하셰이더 (0) | 2023.03.21 |