HTML canvas JavaScript kitaplıkları ve çerçevelerindeki son teknoloji nedir? [kapalı]


107

Şu anda yeni bir HTML 5 uygulamasında tuvalle çalışma seçeneklerini araştırıyorum ve HTML canvas JavaScript kitaplıklarında ve çerçevelerinde sanatın şu anki durumu nedir?

Özellikle, oyun geliştirme için gerekli olan şeyleri destekleyen çerçeveler var mı - karmaşık animasyon, sahne grafiklerini yönetme, olayları işleme ve kullanıcı etkileşimleri?

Ayrıca hem ticari hem de açık kaynaklı ürünleri değerlendirmeye istekli.


Sahne grafikleri kullanıyorsanız ve olayları işliyorsanız, SVG ihtiyaçlarınıza daha uygun değil mi?
Joeri Sebrechts

Şey, sormamın bir nedeni de bu. Canvas kesinlikle atm momentumuna sahiptir, bu yüzden neyin uygulanabilir ve neyin mümkün olmadığını belirlemeye çalışın. SVG, karmaşık animasyonlar söz konusu olduğunda özel olarak ölçeklenemez.
Toby Hede

Özellikle 3B grafikler mi yoksa 2B mi yoksa birini mi arıyorsunuz?
LarsH

Burada bir başka güzel demo: kevs3d.co.uk/dev/asteroids . Oluşturdukları kitaplığın herkesin kullanımına açık olup olmadığından emin değilim. Yine de güzel bir tuval örneği.
Castrohenge

Yanıtlar:


96

Fabric.js ekran görüntüsü

Olayları ve kullanıcı etkileşimlerini işleyerek tuval üzerindeki nesneleri işleyerek, tam olarak buna yardımcı olacak bir tuval kitaplığı olan fabric.js üzerinde çalışıyorum . Henüz yayınlanmadı, ancak basit bir önizleme demosuna bir göz atın .

Bunu , başlangıçta kendisi için yaratılmış olan bu tasarım düzenleyicide de iş başında görebilirsiniz.

Düzenleme: Proje artık github'da mevcut (MIT Lisansı altında açık kaynaklı)

Başlamak için şunlara göz atın:

Fabric, diğer Javascript tuval kitaplıklarıyla karşılaştırıldığında nasıldır? İşte bir karşılaştırma tablosu .


IE'de ne yapar? ExplorerCanvas?
Sasha Chedygov

14
Yani olağanüstü bir demo, son derece etkileyici bir projedir
unmounted

3
@musicfreak Evet, ExplorerCanvas. Btw, yerel tuval desteğini kullanarak IE9'da (4. önizleme) ~ 900 testin tamamını geçer.
kangax

4
Herhangi bir yerde fabric.js için proje sayfası var mı? Onun hakkında daha fazla şey öğrenmekle oldukça ilgileniyorum.
Arne Roomann-Kurrik

Vay canına, tam da ihtiyacım olan şey ... Aslında bu kitaplığın sorunsuz bir şekilde işlediği işlevleri yönetmenin ne kadar zor olduğu konusunda hayal kırıklığına uğradım!
Shouvik

17

Hiç kimsenin WebGL'den ve onun üzerine inşa edilen çerçevelerden bahsetmemesine şaşırdım . 3D GPU hızlandırmalı grafikler ve HTML canvas / javascript üzerindeki karmaşık animasyonlar için son teknoloji ürünü listede üst sıralarda yer alırdım.

WebGL, Belge Nesne Modeli arabirimleri olarak HTML5 Canvas öğesi aracılığıyla sergilenen, OpenGL ES 2.0 tabanlı düşük seviyeli bir 3D grafik API'si için çapraz platformlu, telifsiz bir web standardıdır. ...

WebGL, tarayıcıya doğrudan uygulanan eklentisiz 3B'yi web'e getirir. Başlıca tarayıcı satıcıları Apple (Safari), Google (Chrome), Mozilla (Firefox) ve Opera (Opera) WebGL Çalışma Grubu üyeleridir.

WebGL, GPU hızlandırmalı grafik desteğinde çok sağlamdır. Bu GLSL gölgelendirici demolarına göz atın . :-) Ve kullanıcı etkileşiminin bir örneği olarak ChemDoodle'a bakınız .

Sahne grafiğini yöneten ve oluşturma için WebGL'yi (eskiden kendi eklentisini kullanıyordu) kullanan Google'ın O3D çerçevesini kullanan bir uygulama üzerinde çalışıyorum . O3D, devam eden bir çalışmadır ve dokümantasyonu tamamen güncel değildir, ancak aktif geliştirme aşamasındadır ve orada bazı iyi demolar vardır . 3D Havuz en çok sokağınız olabilir. Google geliştiricileri, tartışma grubundaki sorulara çok duyarlıdır.

WebGL üzerine inşa edilmiş bir dizi başka çerçeve vardır; buraya bakın . Oyun geliştirme ve sahne grafiklerinden bahsedenler Copperlicht, SceneJS, X3DOM'u içerir.

WebGL, birkaç tarayıcının son geliştirme yapılarında çalışır , ancak IE'de çalışmaz. Firefox ("Minefield") ve Chromium'u iyi sonuçlarla kullanıyorum. Yukarıdaki demoları çalıştırmak için bunlardan birine ihtiyacınız olacak.

Bununla birlikte, gereksinimleriniz HTML 5 canvas / js dışında hiçbir bağımlılığı olmaması gerekiyorsa, WebGL doğru seçim olmayabilir. Görünüşe göre IE yakın zamanda bunu destekleyecek .

Güncelleme: Çok fazla direnç gösterdikten sonra MS , IE 11'de WebGL'yi desteklemeye karar verdi .


Three.js webgl'de çalıştırılıyor
JqueryToAddNumbers

@nube: iyi nokta. Three.js, WebGL, SVG veya düz (2D) tuval üzerinde işlenebilir.
LarsH

15

Three.js , yazan mr. Doob , skenograf (yazılım ve WebGL / donanım hem hızlandırılmış sürümleri), gölgeleme, parçacıklar, derili animasyon (Bence) ve aydınlatma efektleri içeren javascript için harika 3d motorudur. Şuna bakın, o süper yetenekli bir adam.

Demoların çoğunu görüntülemek için en yeni Google Chrome veya eşdeğerine ihtiyacınız olacağını eklemeliyim, favorilerimden biri: http://mrdoob.github.com/three.js/examples/webgl_materials_cars.html


1
Bu demo aslında daha da iyi: carvisualizer.plus360degrees.com/threejs
Pierre Henry



6

Processingjs çerçevesine bir göz atın . Ayrıca yaklaşan mootools sürüm 2.0, tuval ile çalışacak sanat projektine sahip


3
ProcessingJS, soruna ilginç bir yaklaşımdır, ancak esasen JavaScript'te uygulanan prosedürel bir DSL'dir, önemsiz olmayan uygulamalara ölçeklenebileceğinden emin değildir. MooTools seçeneğini kontrol edecek.
Toby Hede

Evet, İşleme bir veri yani prototip oluşturma dilidir. Bir Javascript bağlantı noktasının olması güzeldir, ancak bu onu bir HTML 5 çerçevesi yapmaz.
Peter Bailey

Soru html5 değil bir tuval çerçevesi hakkındaydı ve bu, JS'yi işliyor.
Andreas Köberle

Anlambilim hatam için kusura bakmayın. Kanvas çerçevesi, ulaştığım şeydi.
Peter Bailey

6

Raphael oldukça iyi bir tuval kütüphanesi gibi görünüyor; SVG tabanlıdır (veya Internet Explorer'da VML tabanlıdır) ve bu nedenle birçok kullanıcı girişi olayını destekler. Oldukça küçüktür (60kb gzip ile sıkıştırılmış), dolayısıyla çok büyük bir bağımlılık değildir.
Aynı zamanda hoş bir tweener'a sahip gibi görünüyor: http://raphaeljs.com/reference.html#animate ( örnekler için buraya ve buraya bakın).

Neler yapabileceğine dair bir örnek için, bu akıllı küçük gösteriye bir göz atın .

Bu yardımcı olur umarım!


10
SVG, tuval ile aynı şey değil
Toby Hede

4

Son derece rekabetçi ve kumaştan çok daha iyi iki kitaplık buldum.

Kinetic.js ve easel.js son derece iyi olay işleme, gruplama ve genel şekil soyutlamasına sahiptir. Bunların her ikisinde de seveceğiniz çok şey bulacaksınız; şövale daha fazla görüntü odaklı ve filtrelemeye sahip görünüyor.

Fabric'in etkinlik işleyicileri bunlardan ÇOK daha kötü - temelde tüm tuvali büyük bir etkinlik rapçisi olarak ele alıyor ve "Bir şey" e tıklandığında size haber veriyor. Olayları tek tek şekillere veya şekil gruplarına eklemez.


2
FWIW, Fabric artık olayları doğrudan nesnelere eklemenize olanak tanır ve genel grup işlevine sahiptir.
kangax


3

Ayrıca, genç ama fena olmayan Javascript çerçevesi ve bununla ilgili (karmaşık animasyon, sahne grafiklerini yönetme, olayları ve kullanıcı etkileşimlerini işleme) hepsi - jCanvaScript . 'Sahne grafiklerini yönetmek' dışında olabilir.




2

Javascript kullanmak istiyorsanız, Dojo gitmek için harika bir yoldur. Çok güçlü, kompakt, çapraz platform (SVG, VML, Canvas, Silverlight) vektör grafik API'sine sahiptir. Bunu dojo.gfx ve dojox.gfx'te bulabilirsiniz.

Bunu, öğrencilerin vektörler, elipsler, vb. Çizmelerine (hatta görüntüleri eklemelerine) ve üzerlerinde her türlü dönüşümü gerçekleştirmelerine olanak tanıyan etkileşimli bir fizik öğretmeni oluşturmak için kullandık. Ne yaptığımızı http://gideon.eas.asu.edu/web-UI/login.html adresinde görebilirsiniz. görebilirsiniz - sadece herhangi bir kullanıcı adıyla oturum açın.

Fabric.js'ye bir göz attım ve dojox.drawing aynı şeyi yapıyor. Araç setindeki testlere bakarsanız (dojox'u / çizimini / testleri / testini aldıktan sonra) vektör grafiklerinden görüntülere, programla oluşturulmuş gölgelere kadar her şeyin örneklerini bulacaksınız.


1

Oyun motoru olarak Akihabara'dan etkilendim. Öğreticiler ve bir API biçiminde harika belgelere sahiptir. Hatta bazı mesaj panolarında bir akihabara 2 sürümünden bahsettiğini bile gördüm. Ne yazık ki, tüm bu konuşmalar yaklaşık bir yıl veya daha eski. Umarım bu motor hala geliştirilmektedir.


1

AS3 / Flash geliştirme geçmişine sahip insanlara yönelik yeni bir çizim ve ara doldurma kitaplığının ilk yinelemesini yayınladım. Kitaplığım henüz karmaşık çizim yollarını veya grafikleri desteklemiyor olsa da, insanların basit ilkelleri tanıdık bir şekilde hızlıca çizmesine ve canlandırmasına yardımcı olacağını umuyorum.

Geri bildirim ve yorumlarınızı bekliyoruz. http://www.quietless.com/kitchen/introducing-js3/

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.