First Person View

Date:     Updated:

카테고리:

태그:

홍정모님의 그래픽스 새싹코스 강의를 듣고 정리한 내용입니다.


🐥 Roll, Pitch, Yaw

Yaw_Axis_Corrected svg

  • 물체의 회전을 설명하는 세 축에 대한 회전


Screen Space NDC
Ect-54 2 Ect-54 2 2
   
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로 변환


1

  • Matrix::CreateRotation_O 으로 upDir, viewDir, 회전
  • Cross(up, view)로 rightDir 구하기


🐥 Results

ezgif com-crop (3)

void Camera::MoveForward(float dt) {
    m_position += viewDir * m_speed * dt;
}
  • WINAPI로 키보드 입력 받아오기
  • 움직임 구현


FOV 보정x FOV 보정o
ezgif com-crop ezgif com-crop (1)
   
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



맨 위로 이동하기

Graphics 카테고리 내 다른 글 보러가기

댓글 남기기