OPENGL transparenz



  • Hallo Leute

    folgendes Problem - wenn ich ein Objekt transparent mache wird es dunkler.
    Wie kriege ich es hell und transparent???

    OpenGL
    Ambient Beleuchtung 0.5, 0.5, 0.5, 1.0

    Gruss Peter



  • Wie machst du es denn transparent? Ich vermute mal dass du additives Blending willst (glBlendFunc(GL_SRC_ALPHA, GL_ONE))!?



  • Hallo

    ich benutze ( GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA )

    Gruss Peter



  • Ja, d.h. du blendest linear zwischen den zwei Farben. Wenn du willst dass es heller wird dann ist das eben nicht was du machen solltest. Versuchs mal mit glBlendFunc(GL_SRC_ALPHA, GL_ONE) 😉



  • Danke das ist schon deutlich besser - aber immer noch nicht so wie ich es mir
    vorstelle.

    Die Objekte sollen aussehen wie aus einer hellen Flüssigkeit, und man sollte die Konturen erkennen können. Diese verschwinden wenn ich die Transparenz deutlich erhöhe.

    Ich definiere und rendere aber nur die Frontfaces, ist das vielleicht der Fehler.

    Gruss Peter



  • Kannst du mir vielleicht ein Bild zeigen was genau du dir da vorstellst? "Wie aus einer hellen Flüssigkeit" ist dann doch etwas vage...



  • Hallo

    stell dir einen Würfel vor der hell transparent ist - wie aus farbigem Eis,
    aber die Farbe soll hell sein.

    Oder z.B. diese übergrossen Reagenzgläser in den Videospielen, in denen irgenwelche
    Kreaturen in einer Flüssigkeit schwimmen.

    Ich habe gerade gemerkt das wenn ich meine Objekte rotiere, dann verschwindet
    jegliche Schattierung.
    Die Daten stammen aus VBOs - muss ich nach dem rotieren alle Normalvektoren neu berechnen?????

    Gruss Peter



  • dagute schrieb:

    stell dir einen Würfel vor der hell transparent ist - wie aus farbigem Eis,
    aber die Farbe soll hell sein.

    Äh ok, ja dann? Verwend eben additives Blending, render Backfaces und Frontfaces.

    dagute schrieb:

    Ich habe gerade gemerkt das wenn ich meine Objekte rotiere, dann verschwindet
    jegliche Schattierung.
    Die Daten stammen aus VBOs - muss ich nach dem rotieren alle Normalvektoren neu berechnen?????

    Hängt davon ab wie du rotierst!?



  • Wie meinst du das, "kommt drauf an wie du rotierst".

    Meine Objekte sind rotationssymetrisch zum Nullpunkt in VOBs abgelegt.
    Dann gebe ich den Rotationswinkel und die Achse vor glRotate() und danach geb ich das VBO aus.

    Gruss Peter



  • In dem Fall sollte sich OpenGL darum kümmern, sofern du die eingebaute Beleuchtung verwendest...



  • Danke, meine Lampe war schlecht positioniert, hab sie jetzt an die Kamera geklebt.

    Noch eine grundsätzliche Frage - ich rendere die Polygone nur einseitig, aus performance Gründen.
    Welchen Sinn macht es bei Volumenkörpern beide Seiten zu rendern??

    Gruss Peter



  • Naja wenn die Körper durchsichtig sein sollen dann muss man doch die Rückseite auch rendern damits stimmt!?


Anmelden zum Antworten