[Three] 윈도우 크기에 따라 반응형으로 만들기

2025. 7. 5. 19:56·Frontend

아무 이벤트도 설정하지 않고 three.js의 캔버스를 랜더링하면,

 

창의 크기가 변해도 캔버스는 크기가 변하지 않습니다.

 

원본이 이렇게 보인다고 할 때
이렇게 한 번 개발자모드를 켜도 캔버스는 그대로 있습니다.

만약 창의 크기가 바뀔 때 마다 캔버스도 그 비율에 맞추어 랜더링하고자 한다면,

 

화면의 크기가 바뀔 때 마다('resize' 이벤트) 실행되는 event handler를 만들어,

 

window 객체의 너비(=innerWidth)와 높이(=innerHeight)를 받아와 계산하면 됩니다.

window.addEventListener('resize', () => {
    // 1. camera 종횡비 갱신
    camera.aspect = window.innerWidth / window.innerHeight;
    // 2. camera 사영 행렬 갱신
    camera.updateProjectionMatrix();
    // 3. renderer 종횡비 갱신
    renderer.setSize(window.innerWidth, window.innerHeight);
});

이렇게 하면 여기서
창의 크기가 바뀌어도 화면 비율이 유지됩니다.

728x90

'Frontend' 카테고리의 다른 글

[Three] Cannon.js - 물리엔진 적용하기  (1) 2025.07.10
[Three] 1인칭 화면 회전 만들기  (0) 2025.07.09
[Three] 09. Loader - GLTF  (0) 2025.06.16
[Three] 08. Material  (0) 2025.05.16
[Three] 07. Geometry  (0) 2025.05.16
'Frontend' 카테고리의 다른 글
  • [Three] Cannon.js - 물리엔진 적용하기
  • [Three] 1인칭 화면 회전 만들기
  • [Three] 09. Loader - GLTF
  • [Three] 08. Material
Rayi
Rayi
  • Rayi
    아카이브
    Rayi
  • 전체
    오늘
    어제
    • 분류 전체보기 (262)
      • CS (40)
        • ML (3)
        • CV (2)
        • PS (34)
      • Reveiw (17)
        • Paper (17)
        • Github (0)
      • Pytorch (5)
      • Language (58)
        • Python (7)
        • JavaScript (32)
        • TypeScript (16)
        • C++ (3)
      • IDE (12)
      • Git (13)
      • Frontend (71)
        • React (8)
        • SolidJS (20)
        • CSS (12)
      • UI (3)
      • Backend (15)
        • DB (17)
        • Node.js (11)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    DB
    PRISMA
    CSS
    UI
    backend
    PyTorch
    ML
    C++
    GAN
    CV
    Git
    deploy
    nodejs
    react
    mongo
    SOLID
    ts
    ps
    API
    js
    postgresql
    frontend
    CS
    Express
    html
    vscode
    figma
    python
    Three
    review
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.5
Rayi
[Three] 윈도우 크기에 따라 반응형으로 만들기
상단으로

티스토리툴바