HTML 캔버스 JavaScript 라이브러리 및 프레임 워크의 최신 기술은 무엇입니까? [닫은]


107

현재 새 HTML 5 응용 프로그램에서 캔버스 작업을위한 옵션을 조사하고 있으며 HTML 캔버스 JavaScript 라이브러리 및 프레임 워크의 현재 기술 상태가 무엇인지 궁금합니다.

특히 복잡한 애니메이션, 장면 그래프 관리, 이벤트 처리 및 사용자 상호 작용과 같은 게임 개발에 필요한 종류를 지원하는 프레임 워크가 있습니까?

또한 상업용 및 오픈 소스 제품을 모두 고려합니다.


장면 그래프를 사용하고 이벤트를 처리하는 경우 SVG가 필요에 더 적합하지 않습니까?
— Joeri Sebrechts

글쎄, 그것이 내가 묻는 이유의 일부입니다. Canvas는 확실히 추진력을 가지고 있으므로 무엇이 실행 가능하고 무엇이 아닌지 확인하려고합니다. SVG는 복잡한 애니메이션과 관련하여 특히 잘 확장되지 않습니다.
— Toby Hede

특별히 3D 그래픽, 2D 또는 둘 중 하나를 찾고 계십니까?
— LarsH

또 다른 멋진 데모 : kevs3d.co.uk/dev/asteroids . 그들이 만든 라이브러리를 모두가 사용할 수 있는지 확실하지 않습니다. 그래도 캔버스의 좋은 예입니다.
— Castrohenge

jsfiddle.net/user/zlatnaspirala/fiddles 는이 프레임 워크 visualJS를 사용해보십시오.
— 니콜라 루킥

답변:


96

Fabric.js 스크린 샷

저는 fabric.js ( 정확히이를 지원하는 캔버스 라이브러리)에서 이벤트와 사용자 상호 작용을 처리하여 캔버스에서 개체를 조작하고 있습니다. 아직 출시되지는 않았지만 간단한 미리보기 데모를 살펴보세요 .

원래 제작 된 이 디자인 편집기 에서 실제로 작동하는 모습을 볼 수도 있습니다 .

편집 : 이 프로젝트는 이제 github에서 사용할 수 있습니다 (MIT 라이선스에 따라 오픈 소스).

시작하려면 다음을 확인하세요.

Fabric은 다른 Javascript 캔버스 라이브러리와 어떻게 비교됩니까? 다음은 비교표 입니다.


IE에서 무엇을합니까? ExplorerCanvas?
— Sasha Chedygov

14
이것은 경이로운 데모이며 매우 인상적인 프로젝트입니다
— 마운트 해제

3
@musicfreak 예, ExplorerCanvas입니다. Btw는 네이티브 캔버스 지원을 사용하여 IE9 (4 차 미리보기)에서 ~ 900 개의 테스트를 모두 통과했습니다.
— kangax

4
fabric.js에 대한 프로젝트 페이지가 어디에나 있습니까? 나는 그것에 대해 더 많이 배우고 싶습니다.
— Arne Roomann-Kurrik

우와, 내가 필요로하는 것 ... 사실이 라이브러리가 매끄럽게 처리하는 기능을 관리하는 것이 얼마나 어려웠는지에 대해 답답했습니다!
— Shouvik

17

아무도 WebGL 을 언급하지 않았고 그 위에 구축 된 프레임 워크에 놀랐 습니다. 3D GPU 가속 그래픽 및 HTML 캔버스 / 자바 스크립트의 복잡한 애니메이션에 대한 최신 목록에있는 것으로 간주합니다.

WebGL은 HTML5 Canvas 요소를 통해 Document Object Model 인터페이스로 노출되는 OpenGL ES 2.0 기반의 저수준 3D 그래픽 API를위한 크로스 플랫폼, 로열티가없는 웹 표준입니다. ...

WebGL은 브라우저에 바로 구현 된 플러그인없는 3D를 웹에 제공합니다. 주요 브라우저 공급 업체 인 Apple (Safari), Google (Chrome), Mozilla (Firefox) 및 Opera (Opera)는 WebGL 워킹 그룹의 구성원입니다.

WebGL은 GPU 가속 그래픽에 대한 지원이 매우 견고합니다. 이 GLSL 셰이더 데모를 확인하십시오 . :-) 그리고 ChemDoodle 을 사용자 상호 작용의 예로 참조하십시오 .

저는 장면 그래프를 관리하고 렌더링을 위해 WebGL을 사용하는 Google의 O3D 프레임 워크를 사용하여 앱을 작업 해 왔습니다 (자체 플러그인을 사용 했었습니다 ). O3D는 진행중인 작업이며 문서가 완전히 최신 상태는 아니지만 활발하게 개발 중이며 좋은 데모가 있습니다 . 3D 풀 은 가장 큰 골목 일 수 있습니다. Google 개발자는 토론 그룹의 질문에 매우 반응합니다.

WebGL에 구축 된 다른 프레임 워크가 많이 있습니다. 여기를 참조하십시오 . 게임 개발 및 장면 그래프를 언급하는 것에는 Copperlicht, SceneJS, X3DOM이 포함됩니다.

WebGL은 IE가 아닌 여러 브라우저 의 최근 개발 빌드에서 실행됩니다 . 저는 Firefox ( "Minefield")와 Chromium을 사용하여 좋은 결과를 얻었습니다. 위의 데모를 실행하려면이 중 하나가 필요합니다.

그러나 요구 사항이 HTML 5 canvas / js 이상의 종속성이 없어야한다는 것이라면 WebGL이 올바른 선택이 아닐 수 있습니다. 그것은 그것을 지원하는 IE처럼 보이지 않는 곧.

업데이트 : 많은 저항을 한 후 MS 는 IE 11에서 WebGL을 지원하기로 결정했습니다 .


three.js를가 WebGL을 실행한다
— JqueryToAddNumbers

@nube : 좋은 지적입니다. Three.js는 WebGL, SVG 또는 일반 (2D) 캔버스에서 렌더링 할 수 있습니다.
— LarsH

15

three.js , by mr. doob 은 장면 그래프 (소프트웨어 및 WebGL / 하드웨어 가속 버전 모두), 음영, 입자, 스킨 애니메이션 (제 생각에) 및 조명 효과를 포함하는 환상적인 자바 스크립트 용 3D 엔진입니다. 확인해보세요. 그는 뛰어난 재능을 가진 친구입니다.

대부분의 데모를 보려면 최신 Google 크롬 또는 이와 동등한 기능이 필요하다는 점을 추가해야합니다. 제가 가장 좋아하는 것 중 하나는 다음과 같습니다. http://mrdoob.github.com/three.js/examples/webgl_materials_cars.html


1
이 데모는 실제로 더 좋습니다. carvisualizer.plus360degrees.com/threejs
— Pierre Henry



6

processingjs 프레임 워크를 살펴보세요 . 또한 다가오는 mootools 버전 2.0에는 캔버스와 함께 작동 하는 예술 프로젝트 가 있습니다.


3
ProcessingJS는 문제에 대한 흥미로운 접근 방식이지만 본질적으로 JavaScript로 구현 된 절차 적 DSL이며, 사소하지 않은 응용 프로그램으로 확장 할 수 있는지 확실하지 않습니다. MooTools 옵션을 확인합니다.
— Toby Hede 2010-08-13

예, Processing은 데이터 시각화 프로토 타이핑 언어입니다. Javascript 포트가 있다는 사실은 깔끔하지만 HTML 5 프레임 워크가 되기는 어렵습니다.
— Peter Bailey

문제는 html5가 아닌 캔버스 프레임 워크에 관한 것이었고, 그것이 processingJS가 무엇인지입니다.
— Andreas Köberle

내 의미 오류를 용서하십시오. 캔버스 프레임 워크는 제가 얻은 것입니다.
— Peter Bailey

6

Raphael 은 꽤 좋은 캔버스 라이브러리처럼 보입니다. SVG 기반 (또는 Internet Explorer의 VML 기반)이므로 많은 사용자 입력 이벤트를 지원합니다. 상당히 작기 때문에 (60kb gzip으로 압축 됨) 종속성이 너무 크지 않습니다.
멋진 트위너도있는 것 같습니다 : http://raphaeljs.com/reference.html#animate ( 여기 와 여기 에서 예제를 참조 하세요 ).

그것이 무엇을 할 수 있는지에 대한 예를 들어, 이 영리한 작은 데모를보십시오 .

도움이 되었기를 바랍니다!


10
SVG는 캔버스와 같지 않습니다
— Toby Hede 2010-08-29

4

두 개의 라이브러리가 경쟁이 치열하고 패브릭보다 훨씬 우수하다는 것을 알게되었습니다.

Kinetic.js와 easel.js는 모두 매우 우수한 이벤트 처리, 그룹화 및 일반적인 모양 추상화를 가지고 있습니다. 두 가지 모두에서 많은 사랑을받을 수 있습니다. 이젤은 이미지 지향적이고 필터링이 더 많은 것 같습니다.

Fabric의 이벤트 핸드 린은 이들 중 하나보다 훨씬 나쁩니다. 기본적으로 전체 캔버스를 하나의 큰 이벤트 래퍼로 취급하고 "Something"이 클릭되면 알려줍니다. 개별 셰이프 또는 셰이프 그룹에 이벤트를 첨부하지 않습니다.


2
FWIW, Fabric을 사용하면 이제 이벤트를 개체에 직접 연결할 수 있으며 일반 그룹 기능이 있습니다.
— kangax


3

또한 젊지 만 나쁘지는 않은 자바 스크립트 프레임 워크와 그것 (복잡한 애니메이션, 장면 그래프 관리, 이벤트 및 사용자 상호 작용 처리)에 관한 모든 것 -jCanvaScript . '장면 그래프 관리'를 제외하고있을 수 있습니다.




2

Javascript를 사용하려는 경우 Dojo가 좋은 방법입니다. 매우 강력한 소형 크로스 플랫폼 (SVG, VML, Canvas, Silverlight) 벡터 그래픽 API가 있습니다. dojo.gfx 및 dojox.gfx에서 찾을 수 있습니다.

우리는 이것을 사용하여 학생들이 벡터, 타원 등 (심지어 이미지 추가)을 그리고 모든 종류의 변형을 수행 할 수있는 대화 형 물리학 교사를 구축했습니다. http://gideon.eas.asu.edu/web-UI/login.html 에서 우리가 한 일을 볼 수 있습니다. . 사용자 이름으로 로그인하면됩니다.

fabric.js를 살펴 보았고 dojox.drawing은 많은 동일한 작업을 수행합니다. 툴킷의 테스트를 살펴보면 (dojox / drawing / tests /를 얻은 후에) 벡터 그래픽에서 이미지, 프로그래밍 방식으로 생성 된 그림자에 이르기까지 모든 것의 예를 찾을 수 있습니다.


1

게임 엔진으로서 아키하바라에 감명 받았습니다. 튜토리얼과 API의 형태로 환상적인 문서가 있습니다. 아키하바라 2 릴리스에 대한 일부 메시지 보드에서 이야기하는 것을 보았습니다. 불행히도 그 모든 이야기는 1 년 이상 된 것입니다. 이 엔진이 아직 개발되고 있기를 정말로 바랍니다.


1

저는 AS3 / Flash 개발 배경을 가진 사람들을 대상으로하는 새로운 드로잉 및 트위닝 라이브러리의 첫 번째 반복을 출시했습니다. 내 라이브러리는 아직 복잡한 드로잉 경로 또는 그래프를 지원하지 않지만 사람들이 익숙한 방식으로 기본 프리미티브를 빠르게 그리고 애니메이션화하는 데 도움이되기를 바랍니다.

피드백과 의견을 환영합니다. http://www.quietless.com/kitchen/introducing-js3/

당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.