Apa keadaan seni saat ini di pustaka dan kerangka kerja JavaScript kanvas HTML? [Tutup]

107

Saat ini saya sedang menyelidiki opsi untuk bekerja dengan kanvas di aplikasi HTML 5 baru, dan bertanya-tanya apa yang terkini dalam perpustakaan dan kerangka kerja JavaScript kanvas HTML?

Secara khusus, apakah ada kerangka kerja yang mendukung hal-hal yang diperlukan untuk pengembangan game - animasi kompleks, mengelola grafik adegan, menangani peristiwa, dan interaksi pengguna?

Juga bersedia mempertimbangkan produk komersial dan open source.

Toby Hede
sumber
Jika Anda menggunakan grafik adegan dan menangani peristiwa, bukankah SVG lebih cocok untuk kebutuhan Anda?
Joeri Sebrechts
Nah, itulah sebagian dari alasan saya bertanya. Kanvas pasti memiliki momentum atm, jadi cobalah untuk memastikan mana yang layak dan tidak. SVG tidak menskalakan dengan baik saat berhubungan dengan animasi yang kompleks.
Toby Hede
Apakah Anda secara khusus mencari grafik 3D, atau 2D, atau salah satunya?
LarsH
Demo bagus lainnya di sini: kevs3d.co.uk/dev/asteroids . Tidak yakin apakah perpustakaan yang mereka buat tersedia untuk digunakan semua orang. Sebuah contoh kanvas yang bagus.
Castrohenge
jsfiddle.net/user/zlatnaspirala/fiddles coba framework ini visualJS.
Nikola Lukic

Jawaban:

96

Tangkapan layar Fabric.js

Saya telah mengerjakan fabric.js - perpustakaan kanvas untuk membantu dengan hal itu - memanipulasi objek di kanvas, dengan menangani peristiwa dan interaksi pengguna. Ini belum dirilis, tapi lihat demo pratinjau sederhana .

Anda juga dapat melihatnya beraksi di editor desain ini , yang awalnya dibuat untuknya.

Sunting: Proyek ini sekarang tersedia di github (bersumber terbuka di bawah Lisensi MIT)

Untuk memulai, lihat:

Bagaimana Fabric dibandingkan dengan pustaka kanvas Javascript lainnya? Berikut tabel perbandingannya .

kangax
sumber
Apa fungsinya di IE? ExplorerCanvas?
Sasha Chedygov
14
Itu adalah demo yang fenomenal, proyek yang sangat mengesankan
unmount
3
@musicfreak Ya, ExplorerCanvas. Btw, ini lulus semua ~ 900 tes di IE9 (pratinjau ke-4), menggunakan dukungan kanvas aslinya.
kangax
4
Apakah ada halaman proyek untuk fabric.js di mana saja? Saya cukup tertarik untuk mempelajari lebih lanjut tentang itu.
Arne Roomann-Kurrik
Wah, apa yang saya butuhkan ... Saya sebenarnya frustrasi dengan betapa sulitnya mengelola fungsi yang ditangani perpustakaan ini dengan mulus!
Shouvik
17

Saya terkejut tidak ada yang menyebutkan WebGL , dan kerangka kerja dibangun di atasnya. Saya akan menganggapnya sebagai yang teratas dalam daftar state-of-the-art untuk grafik akselerasi GPU 3D dan animasi kompleks pada kanvas / javascript HTML.

WebGL adalah standar web lintas platform dan bebas royalti untuk API grafik 3D tingkat rendah berdasarkan OpenGL ES 2.0, yang diekspos melalui elemen Canvas HTML5 sebagai antarmuka Model Objek Dokumen. ...

WebGL menghadirkan 3D bebas plugin ke web, diterapkan langsung ke browser. Vendor peramban utama Apple (Safari), Google (Chrome), Mozilla (Firefox), dan Opera (Opera) adalah anggota Kelompok Kerja WebGL.

WebGL sangat solid dalam mendukung grafik berakselerasi GPU. Lihat demo shader GLSL ini . :-) Dan lihat ChemDoodle sebagai contoh interaksi pengguna.

Saya telah mengerjakan aplikasi menggunakan kerangka kerja O3D Google , yang mengelola grafik adegan, dan menggunakan WebGL untuk rendering (dulu menggunakan pluginnya sendiri). O3D sedang dalam proses, dan dokumentasinya belum sepenuhnya mutakhir, tetapi sedang dalam pengembangan aktif, dan ada beberapa demo bagus di luar sana . Pool 3D mungkin paling cocok untuk Anda. Pengembang Google sangat responsif terhadap pertanyaan di grup diskusi.

Ada sejumlah kerangka kerja lain yang dibangun di atas WebGL; lihat disini . Yang menyebutkan pengembangan game dan grafik adegan termasuk Copperlicht, SceneJS, X3DOM.

WebGL berjalan dalam versi pengembangan terkini dari beberapa browser , tetapi tidak di IE. Saya telah menggunakan Firefox ("Minefield") dan Chromium dengan hasil yang bagus. Anda akan membutuhkan salah satunya untuk menjalankan demo di atas.

Namun jika persyaratan Anda adalah tidak boleh memiliki dependensi di luar HTML 5 canvas / js, WebGL mungkin bukan pilihan yang tepat. Sepertinya IE tidak akan mendukungnya dalam waktu dekat.

Pembaruan: setelah melakukan banyak perlawanan, MS memutuskan untuk mendukung WebGL di IE 11 .

LarsH
sumber
Three.js dijalankan di webgl
JqueryToAddNumbers
@nube: poin bagus. Three.js dapat dirender di kanvas WebGL, SVG, atau polos (2D).
LarsH
15

three.js , oleh mr. doob , adalah mesin 3d yang luar biasa untuk javascript yang mencakup skenario (versi akselerasi perangkat lunak dan WebGL / perangkat keras), bayangan, partikel, animasi berkulit (menurut saya), dan efek pencahayaan. Coba lihat, dia adalah orang yang sangat berbakat.

Saya harus menambahkan bahwa Anda akan memerlukan Google Chrome terbaru atau yang setara untuk melihat sebagian besar demo, salah satu favorit saya adalah: http://mrdoob.github.com/three.js/examples/webgl_materials_cars.html

alteveer
sumber
1
Demo ini sebenarnya lebih baik: carvisualizer.plus360degrees.com/threejs
Pierre Henry
13

KineticJS adalah perpustakaan yang sedang naik daun yang menawarkan pembuatan dan animasi "lapisan" individu di atas kanvas untuk kinerja tinggi.

http://www.kineticjs.com/

ericbowden
sumber
github.com/ericdrowell/KineticJS/#mothballed mengatakan " Saya tidak akan lagi mempertahankan repo ini atau situs web resmi KineticJS karena saya telah pindah ke usaha dan proyek lain " dan GitHub melaporkan 147 masalah terbuka
xmojmr
6

Lihatlah kerangka processingjs . Juga mootools versi 2.0 yang akan datang memiliki proyek seni untuk bekerja dengan kanvas

Andreas Köberle
sumber
3
ProcessingJS adalah pendekatan yang menarik untuk masalah ini, tetapi pada dasarnya ini adalah DSL prosedural yang diimplementasikan dalam JavaScript, tidak yakin dapat diskalakan ke aplikasi non-sepele. Akan memeriksa opsi MooTools.
Toby Hede
Ya, Processing adalah bahasa prototyping data yaitu. Fakta bahwa ada port Javascript bagus, tapi itu tidak menjadikannya kerangka kerja HTML 5.
Peter Bailey
Pertanyaannya adalah tentang kerangka kanvas bukan html5, dan itulah yang sedang diprosesJS.
Andreas Köberle
Maafkan kesalahan semantik saya. Kerangka kanvas adalah apa yang saya maksud.
Peter Bailey
6

Raphael tampaknya perpustakaan kanvas yang cukup bagus; itu berbasis SVG (atau berbasis VML di Internet Explorer), dan dengan demikian mendukung banyak peristiwa input pengguna. Ini cukup kecil (60kb gzip), jadi tidak terlalu besar ketergantungan.
Tampaknya ini juga memiliki tweener yang bagus: http://raphaeljs.com/reference.html#animate (lihat di sini dan di sini untuk contoh).

Untuk contoh apa yang dapat dilakukannya, lihat demo kecil yang cerdas ini .

Semoga ini membantu!

Donald Harvey
sumber
10
SVG bukanlah hal yang sama dengan kanvas
Toby Hede
4

Saya telah menemukan dua perpustakaan menjadi sangat kompetitif dan jauh lebih baik daripada kain.

Kinetic.js dan easel.js keduanya memiliki penanganan acara, pengelompokan, dan abstraksi bentuk umum yang sangat baik. Anda akan menemukan banyak hal untuk dicintai dalam keduanya; kuda-kuda tampaknya lebih berorientasi pada gambar dan penyaringan.

Event handlins Fabric JAUH lebih buruk daripada salah satu dari ini - pada dasarnya ia memperlakukan seluruh kanvas sebagai satu event rrapper besar dan memberi tahu Anda ketika "Sesuatu" telah diklik. Itu tidak melampirkan acara ke bentuk individu atau kelompok bentuk.

Dave Edelhart
sumber
2
FWIW, Fabric sekarang memungkinkan Anda untuk melampirkan acara langsung ke objek dan memiliki fungsionalitas grup umum.
kangax
3

Juga, kerangka Javascript muda, tapi tidak buruk, dan itu (animasi kompleks, mengelola grafik adegan, menangani peristiwa dan interaksi pengguna) semuanya tentang itu - jCanvaScript . Mungkin, kecuali 'mengelola grafik adegan'.

Alex Savin
sumber
2

Jika Anda ingin menggunakan Javascript, Dojo adalah cara yang tepat. Ini memiliki API grafik vektor lintas platform (SVG, VML, Canvas, Silverlight) yang kompak dan sangat kuat. Anda dapat menemukannya di dojo.gfx dan dojox.gfx.

Kami telah menggunakan ini untuk membangun tutor fisika interaktif yang memungkinkan siswa menggambar vektor, elipsis, dll (bahkan menambahkan gambar) dan melakukan segala macam transformasi padanya. Anda dapat melihat apa yang telah kami lakukan di http://gideon.eas.asu.edu/web-UI/login.html - cukup masuk dengan nama pengguna apa pun.

Saya telah melihat fabric.js dan dojox.drawing melakukan banyak hal yang sama. Jika Anda melihat tes di toolkit (setelah Anda mendapatkannya dojox / drawing / tests /) Anda menemukan contoh dari segala hal mulai dari grafik vektor hingga gambar hingga bayangan yang dibuat secara terprogram.

kartu as
sumber
1

Saya terkesan dengan Akihabara sebagai mesin game. Ini memiliki dokumentasi yang fantastis dalam bentuk tutorial dan api. Saya bahkan pernah melihat di beberapa papan pesan berbicara tentang rilis akihabara 2. Sayangnya, semua pembicaraan itu berumur sekitar satu tahun atau lebih. Saya sangat berharap mesin ini terus dikembangkan.

Marc H.
sumber
1

Saya baru saja merilis iterasi pertama dari pustaka gambar & tweening baru yang ditujukan untuk orang-orang dengan latar belakang pengembangan AS3 / Flash. Sementara lib saya belum mendukung jalur gambar atau grafik yang kompleks, saya berharap ini akan membantu orang dengan cepat menggambar & menganimasikan primitif dasar dengan cara yang akrab.

Umpan balik dan komentar diterima. http://www.quietless.com/kitchen/introducing-js3/

braitsch
sumber