cross-browser 3d megjelenítés
Sziasztok!
Szeretnénk egy online szoba-tervező alkalmazást készíteni, ami kb. az alábbi módon működne:
- Windows, Linux, iOS, Android)
- FF, IE, Chrome, Safari alatt működjön
- lenne egy szoba-alaprajz a képernyő közepén
- oldalról drag and drop-pal rá lehetne dobálni mindenféle bútorokat az alaprajzra
- alapértelmezetten felülről (két dimenzióban) mutatná a képet, viszont lehetőség lenne három dimenziós megjelneítésre váltani; ilyenkor a szoba teljesen körbejárható, forgatható, zoom-olható, stb. lenne
Az első négy dolog nem túl bonyolult, azonban nem tudom, hogy a harmadik mennyire megvalósítható?
Néztem 3d-s javascript könyvtárakat, de mindegyik WebGL-t használ, ami elég sok böngésző-típus kilőne ...
Szóval egyelőre nem találtam olyan megoldást, amivel el lehetne készíteni a fentieket :-(
Ti találkoztatok már hasonlóval, szerintetek megoldható ez?
Köszi,
krisy
■ Szeretnénk egy online szoba-tervező alkalmazást készíteni, ami kb. az alábbi módon működne:
- Windows, Linux, iOS, Android)
- FF, IE, Chrome, Safari alatt működjön
- lenne egy szoba-alaprajz a képernyő közepén
- oldalról drag and drop-pal rá lehetne dobálni mindenféle bútorokat az alaprajzra
- alapértelmezetten felülről (két dimenzióban) mutatná a képet, viszont lehetőség lenne három dimenziós megjelneítésre váltani; ilyenkor a szoba teljesen körbejárható, forgatható, zoom-olható, stb. lenne
Az első négy dolog nem túl bonyolult, azonban nem tudom, hogy a harmadik mennyire megvalósítható?
Néztem 3d-s javascript könyvtárakat, de mindegyik WebGL-t használ, ami elég sok böngésző-típus kilőne ...
Szóval egyelőre nem találtam olyan megoldást, amivel el lehetne készíteni a fentieket :-(
Ti találkoztatok már hasonlóval, szerintetek megoldható ez?
Köszi,
krisy
Készítsd el Flash-ben.
HTML
(az van mögötte, hogy szeretném, ha iOs alatt is működne, illetve legalább 5 évre tervezném az alkalmazást - amennyire pedig tudom, a flash egyre kevésbé használható/lesz használható erre)
Azért köszi!
Ja, az iOS-t nem említetted.
Módosítottam
2 lehetőséget látok, amiből
- threejs.org
Van benne lehetőség canvas renderer-re, de ebben az esetben nem használhatsz webgl-es cuccokat, nem tudom pl. hogy egy öszetetteb modelt (bútorok, virág stb.) így meg tudsz e jeleníteni vele. Mobilon pedig a performance, nos hát, nem gyors, bár ott használhatod a webgl renderer módot és csak ie esetén fallback canvas módra.
- Unity3d
Ez igaz, hogy fizetős, de ios, android és pc-re is tudsz vele 3d-s programot készíteni. Böngészőbe fel kell hozzá telepíteni egy plugint, ez az egy hátránya, de aki játszott manapság böngészős 3d játékkal, annak fent van.
Szerintem az utóbbival, Unity3d-vel állj neki, ha a projekt anyagi helyzete engedi, mert csak azzal lesz elfogadható minőségű maga a program.
tökjó
Three.js
Kipróbáltam, a performancia tényleg nem egetrengető sajnos (FF alatt (Ubuntu) 7fps-sel jelenít meg, Chrome alatt 40fps ...), illetve ha jól láttam IE 9+ kell hozzá legalább :-(
Unity
Ez nagyon menő :-) Ha jól láttam, akkor viszont sajnos elég sokba kerül, így kilőve :-(
3D gyorsítás
Chrome vs FF
Én viszonylag sok
Mobilon böngészőben természetesen szó sem lehet semmilyen 3D-ről, ott mindenképpen natív alkalmazásban kell gondolkozni.
A legjobb megoldás a Unity lenne mert nagyon változatos a kimenete, de mivel említetted, hogy drága marad a flash.
WebGL támogatottsága nagyon hektikus, pl.: linux-os driver macera, vagy ha például szeretnéd bejáratni FPS nézetben a házat/szobát rengeteg gondod lesz az irányítással (pointer lock). Canvas-ra raszterizálni, nagyon gagyi (kivétel ha ilyen cartoon-szerű babaszobát csinálsz) és lassú is.
Esetleg Java Applet-et csinálhatsz, de nemtudom mennyire lesz egyszerű azt iOS natív alkalmazásra fordítani és tapasztalataim szerinte nem túl jó a felhasználói élménye.
Flash?
A flash mennyire tartja magát jelenleg böngészőkben? Mobilokon (tudtommal) már vezetik ki rendesen, viszont böngészőkben kb. mennyi időre lehet még tervezni azzal, hogy mondjuk a felhasználók nagy részének (90%) még lesz flash-es böngészője?
köszi,
krisy
Nyugodt lehetsz afelől, hogy
Még nagyon sokáig.
A két programról csak annyit, hogy nem kell két programot írni. Sokan akik a flash halálhírét terjesztik fingjuk sincs, hogy köszöni jól van, csak profilt váltott és cross-platform 3D alkalmazás és játékfejlesztés lett elsődleges cél. Egyszer megírod és AIR -el küldheted ios-re android-ra desktop-ra, plusz még van egy cross-browser alkalmazásod is.
Keretrendszerként a Minko-t ajánlanám, szerintem sokkal jobb mint az Away3D, de kicsit elfogult vagyok mert az első fejlesztéséhez valamivel én is hozzájárultam így közelebb áll hozzám mint a második, de számtalan objektív dolog is szól mellette.: nem kell assembly gpu kódot spaghettibe as3-al írni, hanem van just in time shader compiler. Sőt node based shader editor is van hozzá, és nemsokára kijön a Minko studio is.
Egyébként ha bármi ilyen fejlesztésbe kezdesz azért azt jó tudni, hogy mindig kell valamit átírni, hozzáírni. Általában kicsi az esélye, hogy minden klappol az ember igényeinek megfelelően így jó tisztában lenni a lineáris algebrával, illetve modern gpu programozás rejtelmeivel.
Kódgenerálás
Köszi az AIR-es ötletet, erre nem is gondoltam :-)
Régebben használtam néhány hasonló alkalmazást (amely több platformra fordít), viszont az ezek által generált kódot utólag még mindig sokat kellett "ütni" (optimalizálni, 1-2 dolgot nem tudott az adott platformra lefordítani, stb.).
AIR-rel kapcsolatos tapasztalatok alapján mennyire jön elő ilyesmi?
(persze nem várom, hogy mindent tudjon, és tökéletes kódot készítsen, csak kb. a nagyságrendeket kérdezem)
köszi,
krisy
Nem teljesen értem, de megpróbálok válaszolni
Köszi
u.i.: mindig van mit ütni :-)