3

친구와 저는 WebGL을 사용하여 게임을 개발 중이고 일부 물리 엔진을 찾은 후 포트 또는 총알 물리학 라이브러리 인 ammo.js를 발견했습니다. 우리는 간단한 예제를 구현했고 Chrome의 프레임 속도가 Firefox 나 Safari에 비해 끔찍하다는 것을 빨리 발견했습니다. 나는 크롬이 10 FPS를 얻는다 고 말하고 있는데, 파이어 폭스는 60 FPS로 상당히 일정하다.Google 크롬의 ammo.js 성능

많은 것을 연구 한 결과, this 블로그에 정확히 Chrome에 라이브러리가있는 문제가 있음을 발견했습니다. (tl; dr : ammo.js는 크롬이 낙담하는 사전 개체를 사용합니다)

제 질문은 다음과 같습니다. 사전을 사용하지 않고이 라이브러리의 포트가 있습니까? 그렇지 않다면 원래 C++ 글 머리 기호 코드를 수정하고 다시 포트 할 가치가 있습니까? 이전 옵션 중 어느 것도 자바 스크립트에서 어떤 물리 엔진을 사용 하시겠습니까?

나는 여기의 선택이 꽤 제한되어 있지만 나는 그것이 가치가 있다고 생각한다.

감사합니다.

+1

벤치 마크에 대한 링크가 있습니까? Chrome V8 팀에 전달하고 싶습니다. –

답변

3

원래 C++ 코드가 객체 지향 일 때 객체를 사용하지 않고 JavaScript로 코드를 이식 할 수 있을지 의심 스럽습니다.

글 머리 기호를 이식하기 전에 "수정"하려면 JavaScript로 형식이 지정된 배열을 사용하도록 글을 다시 작성해야한다고 생각합니다. 나는 당신이 그런 식으로하기 위해 대부분의 코드를 다시 작성해야 할 것이라고 생각한다. 그리고이 경우 자바 스크립트를 직접 작성하는 것이 더 편리 할 것입니다.

나는 ammo.js 옆에 당신에게 좋은 추천이 없습니다. 그러나 cannon.js은 코드가 안정되면 사용자의 요구를 충족시킬 수있는 새로 시작된 프로젝트입니다. 아마 당신은 그것에 공헌하고 싶습니까?

또 다른 방법은 FireBreath 일 수 있습니다. 그것은 브라우저 플러그인 개발 프레임 워크입니다. 기본 JavaScript 함수를 만드는 데 도움이 될 수 있습니다. Bullet이 그런 플러그인으로 컴파일되고 JavaScript에 바인딩이 이루어지면 JavaScript에서 C++ 물리 엔진을 사용할 수 있습니다. 물론 최종 사용자는 먼저 플러그인을 다운로드해야합니다.