Main Menu
Menu

Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Show posts Menu

Messages - Slartibartfast

#1
German corner / Re: Alpha-Blending
January 15, 2008, 01:01:28 AM
QuoteUnd es ist endlich mal nicht mit PHP gemacht...

Danke für das Lob ;D Von PHP-Frickelei (Frickelei, weil 90% der PHP-basierten Seiten - die meisten meiner früheren Werke eingerechnet - leider nicht anders bezeichnet werden können, obwohl man damit mittlerweile angeblich sauber programmieren können soll) hab ich bei Projekten dieser Größenordnung mittlerweile komplett Abschied genommen. Für das schnell hingehackte Script ist PHP gut brauchbar und man kommt schnell zu Ergebnissen, aber für alles größere lohnt sich der initial größere Setup-Aufwand bei der Arbeit mit Servlets recht bald. Und mit Java fällts zumindest mir wesentlich leichter, halbwegs vernünftig strukturierten Code zu produzieren (oder schwerer, zu frickeln - je nachdem wie man's betrachten will), vom ungleich größeren Handlungsspielraum, den man in einer "richtigen", permanent laufenden Anwendung hat, ganz zu schweigen...aber über das Thema "PHP vs. Java bei Webanwendungen" könnt ich stundenlang schreiben/diskutieren ;)


Die P.S.es enthalten beide gute Ideen, die ich sicher umsetzen werde (an letzteres hatte ich auch schon gedacht, um damit Alpha-Blending "vorzutäuschen" bei Texturen, die eigentlich mit Alphakanal-Berücksichtigung gerendert werden müssten - den Alphakanal hab ich im Applet zur Verfügung, die Umrechnung könnt ich also direkt beim Laden des Modells vornehmen).
#2
German corner / Re: Alpha-Blending
January 14, 2008, 06:43:29 PM
Jap, ist seit heute morgen online. Du musst evtl. Java seinen Cache löschen lassen um sie zu sehen, weil die Java-VM Applets offenbar in nem vom Browser-Cache unabhängigen Verzeichnis zwischenspeichert (zwar nur für einen Tag, wenn sie sich an meine Cache-Angabe im HTTP-Header hält, aber immerhin...). Ein Link auf deine Page ist jetzt auch bei den ganzen anderen "Powered By..."-Bildchen auf meiner Seite drin :D

Was ich noch nicht drin habe ist Billboarding, denn da muss ich noch etwas tricksen bei der Umwandlung aus dem WoW-Modellformat in Object3D-Instanzen, damit das korrekt funktioniert. Die Transparenz ist aber aktiviert und sieht gerade z.B. bei dem oben verlinkten Modell schon sehr ordentlich aus.

Falls ich noch Bedarf an nem Blending-Modus hab, werd ich mich an dich wenden ;D jetzt werd ich erst mal sehen was sich mit dem additiven so alles umsetzen lässt. Das dürfte vermutlich sogar für ne weitestgehend originalgetreue Darstellung diverser Partikeleffekte, die manche Waffen haben, ausreichen. Danke auf jeden Fall mal soweit!

P.S.: Wird der Software-Renderer auch langsamer durch das bloße Vorhandensein von additivem Blending (wenn man es aktiviert ists klar, aber gesetzt den Fall man aktiviert es nicht)?
#3
German corner / Re: Alpha-Blending
January 14, 2008, 03:08:47 AM
Cool, vielen Dank! Das additive Blending mit der 1.16er-Version tut tatsächlich den Job. Du hattest Recht damit, dass in dem Fall additives Blending nötig ist.

Mit diesem Blending kann ich sicher schon mal das eine oder andere realisieren, was zuvor nicht möglich war. ;D Und es sieht sogar noch dann ordentlich aus, wenn man den hellgrauen Hintergrund belässt.

Darf ich mir trotzdem die Frage erlauben, ob du planst, in zukünftige Versionen von jPCT noch weitere Blending-Features einzuführen, insbesondere auch in den Software-Renderer? Dein Paket ist jetzt schon ganz oben dabei wenns um reine Java-Renderer geht (und ich hab einige ausprobiert...), aber eine OpenGL-ähnliche Unterstützung der diversen Blending-Modi in Software wär der absolute Hammer. Dass es prinzipiell möglich ist beweist ja das neue additive Blending schon mal sehr eindrucksvoll.
#4
German corner / Re: Alpha-Blending
January 12, 2008, 08:16:47 PM
Das mit dem Alphakanal wäre exakt die Art von Transparenz, die ich bräuchte ;) Die Transparenz über setTransparency hab ich ausprobiert, das Ergebnis war aber in meinem Fall nicht wirklich ansprechend, weil ich eben Transparenz hauptsächlich für Effekte bräuchte, wo Texturen mit Transparenzverläufen vorherrschend sind. Ein sehr einfaches Beispiel wär dieses Modell: http://www.speedydragon.de/item?id=28771#t=4. Die schwarzen Flecken sind normalerweise nach außen hin immer stärker transparent und billboarded (wobei das kein Problem wäre, aber es ist ohne die Transparenz eher störend, daher abgeschaltet).

Config.saveMemory=true ist schon gesetzt ;D Die Speicherprobleme rühren eher davon her, dass die Java-VM aus irgendeinem Grund manchmal nicht wirklich alle Register beim Aufräumen alter, deinitialisierter Applets zieht und vorschnell den OutOfMemoryError wirft, obwohl sie nur Reste von alten Applets aufräumen müsste (kann man in der Java-Konsole dann beobachten, indem man einige Male hintereinander den GC manuell auslöst - plötzlich sammelt die VM dann doch wieder das alte Zeug ein und hätte anschließend genug Speicher). Das ist mir aber auch bisher erst ein- oder zweimal beim Testen begegnet, deswegen dieser Hinweis, falls das irgendwo mal auftreten sollte. Im Normalfall reicht der Speicher dicke aus.
#5
German corner / Alpha-Blending
January 12, 2008, 07:36:22 PM
Zunächst mal ein großes DANKE für jPCT - in der kurzen Zeit, die ich bislang damit gearbeitet habe, hab ich gute Erfahrungen mit der Engine und dem Software-Renderer gemacht! Ich benutze die Engine als Grundlage für einen Online-Modelviewer auf der WoW-Datenbankseite http://www.speedydragon.de - zum Beispiel hier: http://www.speedydragon.de/item?id=30909#t=3.

Vor allem gefällt mir dabei die problemlose Integrationsmöglichkeit durch den Software-Renderer, der eben den Vorteil hat, unabhängig von der Grafikkarte eines Systems oder irgendwelchen nativen Bibliotheken und optisch nahtlos als Applet in die Website integriert laufen zu können. Nur eins ist sehr schade: der Software-Renderer hat leider keinen Support für Alpha-Blending :( teiltransparente Texturen werden folglich komplett opak dargestellt.

Gibt es da irgendwelche Pläne, diese Funktionalität auch in den Software-Renderer zu bringen? Im OpenGL-Renderer scheint es ja zu gehen, wenn ich diverse Foreneinträge richtig verstanden hab. Nur hat der eben den Nachteil, dass man da wieder native Bibliotheken braucht, um überhaupt an die Hardware greifen zu können - ist also eher was für Webstart-Applikationen, die außerhalb des Browsers laufen. Es wäre traumhaft, wenn auch der Software-Renderer mit teiltransparenten Texturen umgehen könnte ;D (schlag ich mal so ganz naiv vor, ohne den sicher hohen Entwicklungsaufwand für sowas wirklich einschätzen zu können - irgendeinen Grund muss es ja geben, dass es bisher keinen einzigen Java-Software-Renderer gibt, der das vernünftig beherrscht)