OpenGL: Textur-Farben vertauschen/ändern & Alpha-Licht



  • Hallo,
    jetzt mal wieder etwas grafiknäheres..

    Wie kann ich die Farben einer Textur beeinflussen (natürlich ohne GLSL, sonst wärs ja zu einfach, oder?) ???
    Die Color-Matrix hat sich gut angehört, scheint aber nicht zu funtionieren..

    Und kann es sein, dass man zwar bei Lichtquellen für die verschiedenen Licht-Typen (diffuse, ambient, etc.) ein Alpha-Wert angeben kann, der aber keinen Einfluss hat???
    ...Ich wollte sowas wie Alpha-Schatten erzeugen..

    Gruß
    OpenGl-Fifi


  • Mod

    OpenGl-Fifi schrieb:

    Wie kann ich die Farben einer Textur beeinflussen (natürlich ohne GLSL, sonst wärs ja zu einfach, oder?) ???

    glTexEnv und dort modulate anmachen, dann wird die vertexfarbe mit der textur farbe multipliziert

    Und kann es sein, dass man zwar bei Lichtquellen für die verschiedenen Licht-Typen (diffuse, ambient, etc.) ein Alpha-Wert angeben kann, der aber keinen Einfluss hat???

    ich hab bisher kein lichtmodel gesehen bei dem alpha von bedeutung war.

    ...Ich wollte sowas wie Alpha-Schatten erzeugen..

    schatten sind der teil an den kein licht kommt, der lichtquelle alpha zu geben macht da nicht viel sinn, so rein logisch.



  • glTexEnv und dort modulate anmachen

    Das ist die Default-Einstellung. Aber das ist ja eher eine Änderung im Sinne von abdunkeln, ich meine aber eher im Sinne von vertauschen.. so wie es mit einer Color-Matrix möglich wäre, wenn es sie denn hierfür gäbe..
    Ne Trafo von Rot nach Alpha würde mir schon reichen..

    ich hab bisher kein lichtmodel gesehen bei dem alpha von bedeutung war.

    Wenn man mit Alpha Transparenz erzeugt, ist das ja auch kein Wunder...
    Wie wäre es z.B. mit Röntgenstrahlen und anderen unsichtbaren Teilen des Spektrums!?

    schatten sind der teil an den kein licht kommt, der lichtquelle alpha zu geben macht da nicht viel sinn, so rein logisch.

    Wo liegt dein Problem? Man betrachte den Alpha-Wert als zusätzliche 'virtuelle' Farbkomponente, so wie z.B. "Rot", wobei "Rot" an sich auch eine Farbe ist:

    "schatten sind der teil an den kein licht kommt, der lichtquelle Rot zu geben macht da nicht viel sinn, so rein logisch."
    ..macht für mich nicht viel Sinn..

    Anders formuliert: Lichtquelle sendet Alpha aus -> Dort, wo kein Alpha ankommt ist der Alpha-Schatten



  • OpenGl-Fifi schrieb:

    glTexEnv und dort modulate anmachen

    Das ist die Default-Einstellung. Aber das ist ja eher eine Änderung im Sinne von abdunkeln, ich meine aber eher im Sinne von vertauschen.. so wie es mit einer Color-Matrix möglich wäre, wenn es sie denn hierfür gäbe..
    Ne Trafo von Rot nach Alpha würde mir schon reichen..

    so komplexe operationen ohne shader sind in standard opengl nicht vorgesehen.

    ich hab bisher kein lichtmodel gesehen bei dem alpha von bedeutung war.

    Wenn man mit Alpha Transparenz erzeugt, ist das ja auch kein Wunder...
    Wie wäre es z.B. mit Röntgenstrahlen und anderen unsichtbaren Teilen des Spektrums!?

    klingt gut, aber ein shading model ist es nicht. Es gibt zwar shading modelle die subsurface scattering einbeziehen, aber das nur fuer back scattering mit der oberflaeche und dafuer musst du perprocessing von den daten betreiben.
    deine stichwoerter sind eher ray marching und participating media, das ist kein opengl flag, aber du findest engines die sowas supporten.

    schatten sind der teil an den kein licht kommt, der lichtquelle alpha zu geben macht da nicht viel sinn, so rein logisch.

    Wo liegt dein Problem? Man betrachte den Alpha-Wert als zusätzliche 'virtuelle' Farbkomponente, so wie z.B. "Rot", wobei "Rot" an sich auch eine Farbe ist:

    du sagst also du willst "rote" schatten, ok.

    "schatten sind der teil an den kein licht kommt, der lichtquelle Rot zu geben macht da nicht viel sinn, so rein logisch."
    ..macht für mich nicht viel Sinn..

    wenn du der lichtquelle rot gibst, bekommst du weiterhin keine rote schatten, alles ausserhalb des schattens wird rot. ich denke diese ausdrucksweise war das problem,ich wuste nicht dass du es komplementaer meinst. Also schatten vom alpha, nicht schatten aus alpha. (rot schatten statt rote schatten).

    Anders formuliert: Lichtquelle sendet Alpha aus -> Dort, wo kein Alpha ankommt ist der Alpha-Schatten

    ich glaube das war nie vorgesehen, aber hab ich bisher nicht effektiv drauf geachtet da ich das nicht benoetigte.



  • Nur so als Anregung: Wenn du wie du in einem deiner vorhgerigen Beiträge schreibst, "so langsam in der Moderne" ankommst, und Ideen wie dein "Alpha-Licht" hast (wie immer das auch genau funktionieren soll :D), kann ich dir nur empfehlen dich mal von der Fixed Function Pipeline zu verabschieden, dich mit Shader-Programmierung zu befassen und die Rendering-Pipeline mal komplett selbst zu schreiben. Dabei lernst du sicherlich mehr über Grafikprogrammierung im Allgemeinen wie auch über die interne Funktionsweise der Fixed Function Pipeline als wenn du selbige von vorne bis hinten auseinandernimmst.

    Gruss,
    Finnegan

    P.S.: Die Sache mit den Röntgenstrahlen bringt mich auf ein interessantes Stichwort: Spectral Rendering. Dabei wird nicht mit RGB-Kanälen gearbeitet, sondern mit mehr als 3 Kanälen, mit denen versucht wird, das tatsächliche Farbspektrum von Licht besser abzubilden. Dazu gibt es auch schon Ansätze, wie man das in Echtzeit auf einer handelsüblichen GPU hinbekommt.



  • klingt gut, aber ein shading model ist es nicht. Es gibt zwar shading modelle die subsurface scattering einbeziehen, aber das nur fuer back scattering mit der oberflaeche und dafuer musst du perprocessing von den daten betreiben.
    deine stichwoerter sind eher ray marching und participating media, das ist kein opengl flag, aber du findest engines die sowas supporten.

    Je suis d'accord.

    du sagst also du willst "rote" schatten, ok.

    Tue ich das?

    Also schatten vom alpha, nicht schatten aus alpha.

    Naja Schatten sind ja die Bereiche, wo gerade nichts, bzw. weniger vom jeweils betrachteten ankommt, soweit ich weiß.
    Wenn ich mich z.B. im Windschatten befinde, ist es (ralativ) windstill. (Windschatten und natürlich nicht windige Schatten.)
    Bzw.:

    (rot schatten statt rote schatten).

    Sag ich doch: Alpha-Schatten statt alphaige Schatten...

    @Finnegan: Die Motivation kann ich gut gebrauchen. Denn ich musste feststellen, dass ich mich schon wieder entscheiden muss/kann/darf, welche GLSL-Version es denn sein soll. Da wuden ja irgendwelche Datentypen geändert etc..



  • OpenGl-Fifi schrieb:

    alphaige

    Wie geil ist das 😃
    Patentier dir diese Erfindung ⚠


Log in to reply