Direct11

    [Direct11] 45. 3D Direct Application - Mesh Basic Model

    1. 3D Direct Application 1.1 Mesh 1.1.1 File Format - .m3d 1.1.1.1 Header bool M3DLoader::LoadM3d(const std::string& filename, std::vector& vertices, std::vector& indices, std::vector& subsets, std::vector& mats) - m3d는 3차원 모형의 메시에 대한 자료를 담은 파일 형식 - 사람이 직접 읽고 수정할 수 있도록 보통의 텍스트 형식을 사용 - 실제 응용에서는 이진 형식을 사용하는 것이 메모리 활용면에서 더 효율적임 - 이 형식의 파일은 몇 가지 전역 정보를 담은 시작부로 시작, 자료의 크기를 미리 알수 있게 설정 - 메시가 사용하는 서로 ..

    [Direct11] 44. 3D Direct Application - Shadow Mapping #2

    1. 3D Direct Application 1.1 Shadow Mapping 1.1.1 Shadow Mapping System 1.1.1.1 Shadow Mapping Algorithm - 그림자 매핑 알고리즘의 핵심은 광원의 관점에서 본 장면 깊이를 Texture 대상 렌더링 기법을 이용하여 깊이 버퍼 기록 - 장면 깊이를 렌더링하고 나면 이 그림자 맵은 광원의 관점에서 보이는 모든 픽셀의 깊이 값을 담은 상태 - 광원의 관점에서 장면을 렌더링하기 위해 세계 공간에서 광원 공간으로의 변환을 수행하는 광원 시야 행렬과 광원의 빛이 세계로 나아가는 영역, 즉 광원의 시야 입체를 정의하는 광원 투영 행렬을 정의 - 그림자 맵을 만든 다음 평상시처럼 장면을 플레이어 카메라 시점에서 렌더링 수행 - 각 픽셀 ..

    [Direct11] 43. 3D Direct Application - Shadow Mapping #1

    1. 3D Direct Application 1.1 Shadow Mapping 1.1.1 Shadow Mapping System 1.1.1.1 Shadow Map - 그림자 매핑 알고리즘은 장면 깊이의 렌더링에 의존, 그러나 Texture 대상 렌더링의 일종 - 광원의 시점에서 본 장면의 깊이 값들을 깊이 버퍼에 기록 - 장면을 광원의 시점에서 렌더링하면 광원에 가장 가까운 픽셀 단편을 파악, 그런 단편들은 반드시 그림자 바깥에 존재 - 광원의 관점에서 본 장면 깊이를 저장하는데 도움을 주는 그림자 맵이라는 편의용 클래스를 사용 class ShadowMap; - 클래스의 생성자는 지정된 크기의 Texture & View, Viewport를 생성 - 그림자 맵의 해상도가 높을수록 그림자의 품질이 좋아짐 -..