Ich bastel momentan an ner kleinen GUI und hab jetzt ein Problem:
Beim Rollover bei Buttons wird die Rollover-Textur per Blending über die normale Texur gerendert. So weit funktionierts.
Nun will ich aber einbauen, dass der Knopf selber schon geblendet sein kann, und jetzt hab ich ehrlich gesagt ka, wie ichs hinkriegen soll, dass der Button beim drüberblenden nicht mehr und nicht weniger durchsichtig wird.
Der Button wird momentan einmal im alten Zustand gerendert, als Alpha der definierte Alphawert, der neu eingefadete Button hat als Alphawert den festgelegten * den einfade-Wert. Dabei der Knopf dann heller.
Wenn ich gleichzeitig die Alte-Zustand-Textur mit dem Festgelegten Wert * (1-Einfadewert) rechne, wird der Button dunkler.
Wie Wie lässt sich das bewerkstelligen
_________________ 2+2=5 For extremely large values of two
du sagtest es funktioniert schon nur nicht wenn der button schon selbst schon geblendet ist ja?
also müsstest du doch jetzt nur bei dem wert aufhören bei dem die button schon ist und wenn du drüber bist das ganze auf exakt den wert setzen bei dem sich der button befindet.
so und jetzt mal sehen ob ich dich richtig verstanden hab.
Eigentlich ist das ja quasi genau das, was ich schon probiert hab: festgelegter Endwert * einblend-Wert.
Und dann verfehlts den Zielwert, weil es am Schluss ja 2 mal mit dem festgelegten Endwert dargestellt wird.
_________________ 2+2=5 For extremely large values of two
Das hört sich doch schonmal ganz gut an, jedoch scheitere ich an der Umsetzung. Ich hab noch nie was mit Multitexturing gemacht und finde auch nichts zum ineinanderblenden von 2 Texturen.
Kann mir da noch irgendjemand genauere Tipps geben?
_________________ 2+2=5 For extremely large values of two
Ich versuchs nochmal:
Ich programmier an ner Ogl-GUI und hab ein Problem:
Ich hab für Buttons mehrere Texturen, für das Problem sind nur normale und Rollover-Textur wichtig. Bisher hab ich beim MouseOver einfach die Textur ausgetauscht, da hab ich jetzt aber einen Effekt eingebaut, dass die alte Textur weiterhin gezeichnet wird und die neue mit steigendem Alpha-Wert drübergeblendet wird. Ich hab aber auch eine Funktion eingebaut, mit der der Button schon direkt mit nem vom Benutzer der GUI festgelegten Alphawert (mit aktiviertem Blending natürlich) gezeichnet wird. Wird da jetzt aber die neue Textur drübergeblendet, mit Alpha = Wert des Benutzers * Timestep, sieht ist der "gefühlte" Alpha-Wert = 1, da der Button ja 2 mal gezeichnet wird. Den alten Button auszublenden hats auch nicht gebracht, denn da wird die Transparenz in der Mitte der Animation (Timestep=0,5) zu groß. Ich suche also einen Weg, dass der Button doppelt gezeichnet wird, der Hintergrund aber so durchscheint, als wäre er nur einmal gezeichnet worden.
Ich hoffe, jetzt wars verständlich.
_________________ 2+2=5 For extremely large values of two
du könntest auch etwas weiter ausholen und den button undurchsichtig ( wie du es schon gemacht hast ) in eine pixelpuffer-objekt zeichnen und dann nur den durchsichtig machen.
Registriert: Do Sep 25, 2003 15:56 Beiträge: 7810 Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Ok. Mal kurz zusammengefasst.
Dein Button ist schon transparent. Sagen wir 0.7.
Normalerweise (bei Alpha = 1.0) blendest du eine andere Textur mit Alpha 0.0 -> 1.0 drüber beim Rollover. Jetzt soll aber am das Ganze bei 0.7 Aufhören.
Ich seh da gerade nicht wirklich ein Problem. Du musst doch nur beim Zielalphawert aufhören.
Falls du ein Problem damit hast, dass die Durchsichtigkeit durch das Doppelte blenden nicht mehr korrekt ist, solltest du im gleichen Maß die Orginaltextur ausfaden wie die neue eingefädet wird. Also mit "Zielwert - FadeIn".
(Wobei... beim Blenden wird ja multipliziert und nicht addiert. Könnte sein, dass die Berechnung des Alphawerts nicht so einfach ist. Oder?... achnee sollte schon ne Addition sein. ... Moment.)
Schau dir mal den Wikiartikel zur glBlendFunc an. Da steht drinnen wie die Zielfarbe entsteht. Dann nimmst du dir mal ein Blatt Papier und rechnest mal den Alphawert deines Buttons manuell für einen bestimmten FadeIn Wert aus. Das is nämlich auch noch von deiner BlendFunc abhängig.
_________________ Blog: kevin-fleischer.de und fbaingermany.com
Mitglieder in diesem Forum: 0 Mitglieder und 3 Gäste
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.