캐논.js

Cannon.js
캐논.js
개발자스테판 헤드먼
안정적 해제
0.6.2 / 2015년 3월 28일 (2015-03-28)[1]
리포지토리
기록 위치자바스크립트
운영 체제OS 독립형
유형3D 물리학 엔진
면허증MIT 라이선스
웹사이트www.cannonjs.org

Cannon.js는 Stefan "슈테페" Hedman이 만든 오픈 소스 JavaScript 3D 물리학 엔진이다.[2]C++에서 자바스크립트로 포팅된 물리학 엔진 라이브러리와는 달리 canon.js는 처음부터 자바스크립트로 작성돼 그 특징을 활용할 수 있다.[3]2013년 Ammo.js와 비교했을 때, canon.js는 "성능에 있어 더 작고, 더 이해하기 쉽고, 더 강력하며, 또한 이해하기 쉬운" 것으로 밝혀졌지만, 많은 특징을 가지고 있지는 않았다.[4]

특징들

Cannon.js는 구체, 평면, 상자, 실린더, 볼록한 다면체, 입자, 높이장 등의 형태를 지원한다.이 도형 모음은 3js바빌론 같은 렌더링 엔진이 사용하는 컬렉션과 일치하지만 완전하지는 않다.예를 들어 플러그인이 필요 없이 웹페이지에 3D 그래픽을 포함시킬 수 있는 X3DOM[4]응용 프로그램인 X3DOM으로는 충분하지 않다.[5]

물리학 엔진은 강체-신체 역학, 이산 충돌 감지, 가우스-사이델 제약 해결기를 구현한다.[6]천 시뮬레이션[7] 수행할 수 있다.

Canon.js는 Three.js 및 Babylon.js[8][9] WebGL 렌더러와 함께 사용하여 물리 기반 3D 장면을 생성할 수 있다.또한 Lance.gg[10]이용하여 멀티플레이어 온라인 게임에 네트워크와 네트워크로 연결된 동기화를 제공하는 데도 사용할 수 있다.

아래의 샘플 코드는 평면에 구를 생성하여 시뮬레이션을 진행하고 구 시뮬레이션을 콘솔에 인쇄한다.Cannon.js는 SI 단위(미터, 킬로그램, 초 등)[11]를 사용한다는 점에 유의하십시오.

// 우리의 세계 설정 시합을 하다 세계 = 새로운 캐논.월드(); 세계.중력.세트(0, 0, -9.82); // m/s²  // 구 생성 시합을 하다 반지름 = 1; //m 시합을 하다 구체 보디 = 새로운 캐논.({    미사: 5, //kg    포지션: 새로운 캐논.벡3(0, 0, 10), //m    모양을 내다: 새로운 캐논.(반지름) }); 세계.addBody(구체 보디);  // 평면 생성 시합을 하다 그라운드바디 = 새로운 캐논.({     미사: 0 // 질량 == 0은 몸을 정적으로 만든다. }); 시합을 하다 그라운드 쉐이프 = 새로운 캐논.평면(); 그라운드바디.addShape(그라운드 쉐이프); 세계.addBody(그라운드바디);  시합을 하다 고정 시간단계 = 1.0 / 60.0; //초 시합을 하다 maxSubSteps = 3;  // 시뮬레이션 루프 시작 시합을 하다 저번에; (기능을 하다 비글비글 끓다(시간){   요청애니메이션프레임(비글비글 끓다);   만일 (저번에 !== 정의되지 않은) {      시합을 하다 dt = (시간 - 저번에) / 1000;      세계.스텝을 밟다(고정 시간단계, dt, maxSubSteps);   }   위로하다.통나무를 하다("Sphere z 위치: " + 구체 보디.포지션.z);   저번에 = 시간; })(); 

참조

  1. ^ "Releases · schteppe/cannon.js". GitHub.com. Retrieved 11 May 2021.
  2. ^ "Stefan Hedman". GitHub. Retrieved 27 April 2017.
  3. ^ Prall, Chandler (10 April 2012). "JavaScript Physics Engines Comparison". Build New Games. Retrieved 27 April 2017.
  4. ^ a b Huber, Linda (2013). "Initial Steps for the Coupling of JavaScript Physics Engines with X3DOM". In Jan Bender; Jeremie Dequidt; Christian Duriez; Gabriel Zachmann (eds.). Workshop on Virtual Reality Interaction and Physical Simulation (VRIPHYS 2013). The Eurographics Association. pp. 81–90. doi:10.2312/PE.vriphys.vriphys13.081-090. ISBN 978-3-905674-57-6.
  5. ^ "Background: What is X3DOM, and what can it do for me?". official x3dom documentation. x3dom.org. Retrieved 27 April 2017.
  6. ^ "Branch: master. cannon.js/README.markdown". GitHub. 22 April 2015. Retrieved 27 April 2017.
  7. ^ "Cloth physics simulation".
  8. ^ "Create wonderful interactive games for the web: Using webgl and a physics engine (babylon.js & cannon.js)". Retrieved 21 February 2017.
  9. ^ "MSDN Game Development with Babylon.js". Retrieved 21 February 2017.
  10. ^ "Lance source repository".
  11. ^ "Cannon.js - JavaScripting". www.javascripting.com. Retrieved 2020-12-22.

외부 링크