First Person View
카테고리: Graphics
태그: DirectX
홍정모님의 그래픽스 새싹코스 강의를 듣고 정리한 내용입니다.
🐥 Roll, Pitch, Yaw
- 물체의 회전을 설명하는 세 축에 대한 회전
Screen Space | NDC |
---|---|
float mouseNdcX = mouseX * 2.0f / m_screedWidth - 1.0f;
float mouseNdcY = -mouseY * 2.0f / m_screenHeight - 1.0f;
// ...
m_yaw = mouseNdcX * DirectX::XM_2PI; // 좌우 360도
m_pitch = mouseNdcY * DirectX::XM_PIDIV2; // 위아래 90도
- 마우스 커서의 위치를 NDC로 변환
- Matrix::CreateRotation_O 으로 upDir, viewDir, 회전
- Cross(up, view)로 rightDir 구하기
🐥 Results
void Camera::MoveForward(float dt) {
m_position += viewDir * m_speed * dt;
}
- WINAPI로 키보드 입력 받아오기
- 움직임 구현
FOV 보정x | FOV 보정o |
---|---|
void Camera::RunForward(float dt) {
m_position += viewDir * m_speed * dt * 1.5f;
if (m_porjFovAngleY >= 70 * 1.8f)
return;
else
m_projFovAngleY *= 1.2f;
}
- 달릴 떄 Field of View(FOV) 증가시켜주면 좀 더 현실적임
- FOV 기본 값 : 70.0f
댓글 남기기