Du bist nicht angemeldet.

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!

Werbeanzeige

1

17.10.2012, 19:30

SFML eigene Blend Modes?

Hallo,

hab mal wieder eine Frage, und zwar hab ich gesehen das im offiziellen SFML Forum vor kurzem schon
nach Custom Blend Modes gefragt wurde und hab auch gesehen das Laurent bemüht ist die user Wünsche zu
erfüllen... Trotzdem möchte ich ungern x Monate warten, bis die nächste SFML Version draußen ist.

Deswegen wollte ich fragen ob es möglich ist über Open GL eigene Blend Modes zu erstellen, aber auch so,
dass ich trotzdem weiterhin die Sprite Klasse (usw.) von SFML verwenden kann.

Gibt es da eine Möglichkeit?
Über ein simples Beispiel wäre ich dankbar. :)

Vielen Dank im Voraus!

DeKugelschieber

Community-Fossil

Beiträge: 2 641

Wohnort: Rheda-Wiedenbrück

Beruf: Software-Entwickler

  • Private Nachricht senden

2

17.10.2012, 19:43

Ich weiß nicht genau was Blend Modes in SFML darstellen sollen, aber du könntest natürlich vor dem rendern (nur einmal irgendwo) blending aktivieren.

C-/C++-Quelltext

1
2
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

3

17.10.2012, 19:48

Grundsätzlich geht das mit aktueller Grafikhardware nur über Umwege (Render-Targets).
Die Blend-Modi sind leider "fest verdrahtet" und nicht programmierbar.

4

17.10.2012, 20:17

@DerKugelschieber
Funktioniert nicht... :(

C-/C++-Quelltext

1
2
3
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
App.draw(test);

@David
Sprichst du jetzt allgemein über Blend Modes oder über die Blend Modes die in der
SFML zur Verfügung stehen? Ich meinte mit eigenen Blend Modes nicht völlig selbst erfundene,
sondern die aus Open GL, in der SFML ist es nämlich so dass es nur die Blend Modes
Alpha, Add, None und Multiply gibt welche man an bestimmte Sprites binden kann. ^^

... Gibt es also vielleicht noch Hoffnung?

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

5

17.10.2012, 20:20

Achso ... ich dachte, du wolltest ganz eigene Sachen programmieren.
Das Problem wird wohl sein, dass SFML den Blend Mode wieder ändert. Vielleicht gibt es irgendwo eine Möglichkeit dies zu verhindern. Ich kenne mich aber nicht gut genug mit SFML aus.

6

17.10.2012, 21:30

@David
Ja, hab es auch schlecht formuliert, Sorry. ^^

@All
Das was DerKugelschieber geschrieben hat funktioniert doch.
Hab gemerkt das dass der Standard Blend Mode war und deswegen sich nichts
geändert hat... :P

Hab trotzdem noch eine Frage, ich versuche nämlich derzeit simples "Licht" zu erstellen...
Meine Idee war es dem Licht einen Subtraktiven Blend Mode zu verpassen und über
alle Objekte ein einziges großes schwarzes Viereck zu zeichnen.

Stellt sich die Frage:
Wie macht man diesen Subtraktiven Blend Mode?

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Jack« (17.10.2012, 21:35)


eXpl0it3r

Treue Seele

Beiträge: 386

Wohnort: Schweiz

Beruf: Professional Software Engineer

  • Private Nachricht senden

7

17.10.2012, 22:37

Stellt sich die Frage:
Wie macht man diesen Subtraktiven Blend Mode?
Interessant dass das plötzlich alle machen möchten, bist jetzt schon etwa der fünft in den vergangenen paar Wochen... :D

Ich habe dazu ein kleines Beispiel geschrieben, welches ohne expliziter OpenGL Code auskommt, kannst du dir anschauen und verwenden wie du willst: Flashlight Example

Überigens wenn du etwas komplexeres Licht möchtest, kannst du Let There Be Light anschauen. ;)
Blog: https://dev.my-gate.net/
—————————————————————————
SFML: https://www.sfml-dev.org/
Thor: http://www.bromeon.ch/libraries/thor/
SFGUI: https://github.com/TankOs/SFGUI/

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

8

17.10.2012, 22:52

Subtraktives Blending für eine Taschenlampe? Würd mich interessieren, welcher Effekt genau damit erreicht werden soll.

eXpl0it3r

Treue Seele

Beiträge: 386

Wohnort: Schweiz

Beruf: Professional Software Engineer

  • Private Nachricht senden

9

17.10.2012, 23:13

Subtraktives Blending für eine Taschenlampe? Würd mich interessieren, welcher Effekt genau damit erreicht werden soll.
Naja vielleicht habe ich Jack ja auch falsch verstanden, aber mein Beispiel nutzt eine schwarze RednerTexture und 'stanzt' ein Loch in die schwarze Fläche, dann wird das alles über die wirkliche Szene gezeichnet und was bleibt, ist eine schwarzes Bild mit einem Loch durch das man auf die Szene schauen kann. Ich hab dann das 'Loch' einfach an die Maus gebunden und somit kann man sich wie mit einer Taschenlampe die 'dunkle' Szene anschauen. (Siehe Anhang). ;)
Wenn was völlig anderes gefragt wurde, dann entschuldige ich mich für der Missverständnis. :)
»eXpl0it3r« hat folgendes Bild angehängt:
  • flashlight.png
Blog: https://dev.my-gate.net/
—————————————————————————
SFML: https://www.sfml-dev.org/
Thor: http://www.bromeon.ch/libraries/thor/
SFGUI: https://github.com/TankOs/SFGUI/

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

10

17.10.2012, 23:37

Ah so rum, das macht natürlich Sinn... ;)

Werbeanzeige