wam
w__am 개발노트
wam
  • 분류 전체보기 (165)
    • CS 지식 (10)
      • 자료구조 (0)
      • 알고리즘 (0)
      • 컴퓨터 구조 (0)
      • 운영체제 (0)
      • 네트워크 (7)
      • 데이터베이스 (0)
      • 디자인 패턴 (3)
    • Frontend (131)
      • Three.js (64)
      • NPM (1)
      • Nest.js (19)
      • React (10)
      • Apollo (7)
      • TypeScript (2)
      • JavaScript (12)
      • HTML, CSS (1)
      • Jest (3)
      • E2E (5)
      • Cypress (7)
    • Database (12)
      • TypeORM (12)
    • IT 지식 (8)
      • 클라우드 서비스 (3)
      • 네트워크 (1)
      • 데이터 포맷 (2)
      • 기타 (2)
    • IT Book (2)
    • 유용한 사이트 (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록
  • 🐱 Github

인기 글

태그

  • 렌더링 성능 최적화
  • isabstract
  • 함수 선언문
  • axeshelper
  • reactive variables
  • Decorators
  • API
  • 디자인 패턴
  • gridhelper
  • react 성능 최적화
  • 오프-프레미스(off-premise) 방식
  • 원형적인 움직임
  • e.preventdefault()
  • getelapsedtime()
  • three.js 구성 요소
  • 함수의 범위
  • 데이터 포맷
  • 함수 리터럴
  • math.cos()
  • threejs 개발 할 때 도움을 줄 수 있는 유틸리티
  • 스코프
  • getdelta()
  • 삼각함수
  • joi 에러
  • 함수 표현식
  • mapped types
  • Interface
  • math.sin()
  • 초기 환경설정
  • type-graphql

최근 글

관리자

글쓰기 / 스킨편집 / 관리자페이지
hELLO · Designed By 정상우.
wam

w__am 개발노트

초당 프레임 수(FPS) 체크하기
Frontend/Three.js

초당 프레임 수(FPS) 체크하기

2024. 8. 28. 02:20

 

// Three.js 기본 설정
const scene = new THREE.Scene();
const camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000);
const renderer = new THREE.WebGLRenderer();
renderer.setSize(window.innerWidth, window.innerHeight);
document.body.appendChild(renderer.domElement);

// FPS 체크를 위한 Stats 설정
const stats = new Stats();
document.body.appendChild(stats.dom);

// 간단한 큐브 생성
const geometry = new THREE.BoxGeometry();
const material = new THREE.MeshBasicMaterial({ color: 0x00ff00 });
const cube = new THREE.Mesh(geometry, material);
scene.add(cube);

camera.position.z = 5;

// 애니메이션 루프
function animate() {
    requestAnimationFrame(animate);

    // 큐브를 회전시킴
    cube.rotation.x += 0.01;
    cube.rotation.y += 0.01;

    // 렌더링
    renderer.render(scene, camera);

    // Stats 업데이트
    stats.update();
}

animate();

Stats.js: stats.js 라이브러리를 불러와 초당 프레임 수(FPS)를 체크하고 화면에 표시한다.

애니메이션 루프: requestAnimationFrame을 이용해 애니메이션 루프를 구현하며, 이 루프에서 stats.update()를 호출하여 FPS를 매 프레임마다 업데이트한다.

이 코드를 실행하면 화면의 왼쪽 상단에 FPS가 표시된다. Three.js로 렌더링 된 장면이 업데이트될 때마다 FPS가 업데이트된다.

 

 

  • stats는 3JS 기능이 아닌 라이브러리이다.
  • 프레임 수가 떨어진다면 애니메이션이 버벅인다는 뜻 (초당 60 프레임 적정)
  • 테스트할 때 콘솔에 출력하는 것이 약간의 부하를 발생시킨다.
  • 실제 성능하고 비슷하게 테스트할 때는 콘솔 출력 없이 stas 추가해서 확인하자

 

 

저작자표시 변경금지

'Frontend > Three.js' 카테고리의 다른 글

위치 이동  (0) 2024.08.28
GUI 컨트롤  (0) 2024.08.28
threejs 개발 할 때 도움을 줄 수 있는 유틸리티 (AxesHelper, GridHelper)  (0) 2024.08.28
안개(Fog) 만들기  (0) 2024.08.28
라이브러리를 이용한 애니메이션  (0) 2024.08.28
    'Frontend/Three.js' 카테고리의 다른 글
    • 위치 이동
    • GUI 컨트롤
    • threejs 개발 할 때 도움을 줄 수 있는 유틸리티 (AxesHelper, GridHelper)
    • 안개(Fog) 만들기
    wam
    wam

    티스토리툴바