Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!
[Irrlicht] Alpha Kanal benutzen und Additive Farbmischung
hey,
ich möchte ein gute Sonne rendern.
jetzt hat mir Schorote auch erklärt wie man eine geniale Sonne rendert, aber dazu brauch ich den Alpha Kanal von meine Textur also dass ein paar pixel transparent werden und ich will dass sich mehrere Texturen hintereinander von der Farbe her addieren, sodass in der mitte der Sonne eine weiße helle farbe ensteht.
hier habe ich es mit dem versucht EMT_TRANSPARENT_ADD_COLOR hier wird anscheinend das mit der additiven Farbmischung korrekt gemacht aber da werden meine transparenten Pixel komplett ignoriert:
Ich bin mir nicht ganz sicher was genau EMT_TRANSPARENT_ADD_COLOR tut aber für das was du erreichen willst wirst du wohl additives Blending mit premultiplied Alpha verwenden wollen, d.h. deine Textur enthält nicht einfach nur RGBA Werte sondern die RGB Werte werden in der Textur noch mit dem zugehörigen Alphawert multipliziert.
hmm...weiß irgenjemand ob man das "additives Blending mit premultiplied Alpha" mit irrlicht einstellen kann? Oder würde das mit diesem eingebauten Material Renderer funktionieren wenn ich ein neues Material damit erstell das dieses ...premultiplied Alpha berechnen kann?
Ich vermute dass EMT_TRANSPARENT_ADD_COLOR genau das macht, soll heißen: Multiplizier die Farbwerte in deiner Textur mit ihrem Alphakanal, dann dürfte es funktionieren
Ich vermute dass das eben genau darum passiert weil deine Textur keine premultipled Alpha Farben enthält sondern einfach nur eine orange Fläche mit dem Umriss der Sonne im Alphakanal ist. Darum mein Vorschlag die Farbwerte in der Textur beim Laden oder Exportieren oder sonst irgendwie (in deinem Malprogramm oder auch in einem Shader oder wo auch immer) mit dem Alpha zu multiplizieren...
Is allerdings schon krass, dass Irrlicht das scheinbar nicht anbietet. Aber is nicht die einzige Engine, die das komischer Weise nicht kann.
Ist die Sache jetzt erledigt? Interessiert mich mal.
Anhand des Bildes sehe ich, dass du mehrere Quads übereinander renderst welche unterschiedlich verdreht sind, kannst du dann nicht einfach EMT_ONETEXTURE_BLEND benutzen und dies Blendeinstellungen hier: