JS-HTML5(WebGL) vs. Flash 3D

Hi Experten,

…gibt es zu dem Thema welche? Naja…probieren wir es mal.

Vor 3 Jahren hatte ich mich schonmal mit Flash 3D beschäftigt und meine ersten Schritte getan, jedoch störte mich schon immer die CPU-Auslastung dabei (allgemein bei Flash), zur gleichen Zeit kam der HTML5-JS-Hype auf, …drauf gesprungen und muss sagen echt cool (für relativ einfache Sachen).

Seit letzter Zeit, probiere ich mich in WebGL und habe anfangs begonnen, eine eigene Library zu schreiben, später stoss ich auf three.js, also warum das Rad neu erfinden.
Ich habe den Quellcode bisher noch nicht angesehen, aber ich vermute mal, dass sie den OpenGL-Standard  > 4.0 einsetzen.

Bei voller Ausreizung der Möglichkeiten, von WebGL(mit der three.js-Library + aufwendiger obj’s z.B.(http://tf3dm.com/3d-model/vw-touareg-72326.html)…es gibt aufwendigere…ich weiss), geht die CPU-Auslastung von (neustem) Firefox, sowie Chrome auf ca. 140% + dem plugin-container mit 80% (Quelle: top), bei Flash geht NUR der Browser auf ca. 90% -> schnellere Ladezeit + performantere Ausführung!

Inwieweit kann man auf so einem Gebiet sagen: nutze JS-HTML5 oder doch lieber Flash…-> weil, der Html5-Standard noch nicht so ausgereift ist.

…oder wäre vielleicht über node-webgl, eine performantere Lösung zu finden? Prinzipiell gleich, aber eine andere Überlegung… über c+±Server-Technologie -> berechne alles dort und sende es zum Browser? Leider fehlt mir die Zeit, um mich mit alle den Themen rumzuschlagen, von daher hoffe ich, dass jemand, evtl. schon Erfahrung damit gesammelt hat und mir den einen oder anderen Tipp geben kann (Im Experten-Forum).

Gruß XXD

Hallo Xhoan,

wirklich eine Frage zu vielen Themengebieten.
Vorab muss ich sagen, dass ich kein Experte im Bereich von 3d oder Rendering bin.

Prinzipiell kann ich aber sagen, dass HTML5+JS wohl am ehesten unterstützt werden bzw. Updates erfahren. Ähnliches gilt für webgl, wobei Browser-Anbieter wohl doch eher HTML5 und JS beschleunigen werden bzw. sich darum kümmern werden, da Anwender dies eher mit bekommen.
Flash ist eigentlich ganz vernünftig was Performance angeht und auch sonst recht gut vom Konzept, nur ist’s blöd, dass das Format unfrei ist und die Plugins häufig Sicherheitslücken oder Bugs aufweisen. Dann ist man meist auf Adobe angewiesen, um Updates zu erhalten, wobei die sich auch u.a. um die Photoshop-Reihe kümmern müssen, die ja bald/jetzt unter einer Mietlizenz zugänglich sein wird…
Mein persönlicher Flash-Bug ist, dass aufwändigere Fash-Animationen in Firefox halb so schnell ausgeführt werden wie in Chrome. Das ist meist nicht spürbar, da Videos und andere Inhalte vorgeladen werden, bei Zeichenprogrammen mit Effekt-Pinseln (wie e.g. bei Deviantart) merkt man es allerdings doch…
Wobei mir neulich deutlich wurde, das Chrome einen Flash-Player integriert hat…
Das unfreie Format regt mich als Webprogrammierer auch häufig auf, wenn ich userscripte oder -styles schreibe, oder einfach nur die Machart einer Webseite sehen möchte, diese aber in flash geschrieben ist.
In deinem Fall scheint es wohl aber eher um 3D-Animationen zu gehen…

Wenn es einfachere Animationen sind, würde ich allerdings schon zu einer HTML/JS, wenn nicht sogar CSS Lösung raten. soweit ich weiß, sind die neuen CSS-Animationen recht performat…
Ich persönlich habe in letzter Zeit allerdings nur flash-Animationen gesehen, da hier einfach eine swf-Datei irgendwo hochgeladen werden kann, während Animationen im HTML/JS-Format Webseite-zugriff erfordern…
Wie anfangs erwähnt, bin ich allerdings kein 3D-Experte/Fortgeschrittener…

Ich hoffe, du findest eine passende Lösung!

mit freundlichen Grüßen
Julian

Das Problem ist und bleibt
das nicht jede WebGL gleich gut läuft.
Es ist stark abhängig von der Graphikkarte die
Verwendung findet.
Und das ist ja das schnelle
da die meiste Berechnungen auf die Graphikkartenfunktionen gemaped werden.

Somit kann also ein bestimmtes Shaderverhalten abhängig sein von der
verwendeten Graphikarte und deren Softwareangebot .

Da hat man bei Flash nicht das Problem weil da wird alles manuel gerendert
was dann wiederum den CPU frist.

Ich persönlich finde JS praktischer als FLA , Texteditor gegen FLA-IDE , JS Dateien gegen FLA-IDE … alles handlicher …
aber dafür ist dein code dann auch sichtbar :frowning:

Hi,

erst einmal danke an euch beide für die Antworten.

Wegen dem performance Problem habe ich mittlerweile den Fehler gefunden, der OBJLoader ist ziemlich simple gehalten (erkannte keine minus Zahlen, ganz zu schweigen von der Möglichkeit ngons aufzuspalten) deswegen kam es zu parser-Fehlern, die Firefox ins schwitzen brachten -> bis zum Absturz. Zusätzlich wurde beim klick auf die entsprechende Seite erst die obj. geladen und geparst (in Verbindung zur mtl).

Da ich noch einen objloader habe, den ich vor einem halben Jahr in Python implementiert hatte, der sogar ngons aufspalten kann, werde ich die Modelle damit einlesen und per python eine json-Datei zu jedem Objekt erstellen in der schon die gebauten vertices und faces usw. stecken und bei einer Anfrage im Browser nur noch die json-Datei verschickt wird und mit WebGL entsprechend dargestellt.

Die performance momentan haut mich zwar immer noch nicht so vom Hocker (ohne aufwendige Shader + relativ guter Grafikkarte), im Vergleich zu OpenGL und Python als Desktopprogramm, aber setze auch noch kein OpenGL > 4.0 ein, werde mir dafür noch ein kleines Tool schreiben und denke, dass man dann schon ganz ordentliche Sachen hinbekommt…schau ma mal.

Trotzdem danke nochmal.

Gruß XXD