![]() |
Opengl Problem:Texturfarbe beeinflusst Materialfarbe
OpenGL:
Woran kann es liegen, dass die Texturfarbe die Farbe des folgenden Materials beeinflusst? Hier wurde das Problem auch schon mal angesprochen ![]() leider fehlt dort die Erklärung bzw. eine Lösung des Problems. |
AW: Opengl Problem:Texturfarbe beeinflusst Materialfarbe
Und du bist der Meinung, dass du uns ansatzweise genügend Infos an die Hand gegeben hast, um deine Frage zu beantworten?
|
AW: Opengl Problem:Texturfarbe beeinflusst Materialfarbe
|
AW: Opengl Problem:Texturfarbe beeinflusst Materialfarbe
Zitat:
Weißt Du evtl. noch, wo das Problem näher beschrieben wird ? |
AW: Opengl Problem:Texturfarbe beeinflusst Materialfarbe
Zitat:
Wie sollen wir das wissen? Ohne in den Quelltext zu schauen? Keine Ahnung welche Initialisierungen du vorgenommen hast bevor das Material eingebunden wurde. GL_LIGHTING GL_BLEND usw.. kann Einfluss auf die Farbe des Materials haben. Bevor du das Material bindest über Texturen oder was auch immer versuche mal vorher diese Funktionen zu deaktivieren.
Delphi-Quellcode:
Nachdem gerendert wurde kannst du sie ja wieder einschalten wenn nötig.
glDepthMask(ByteBool(GL_FALSE));
glDisable(GL_LIGHTING); glDisable(GL_BLEND); // Achtung! Kann einen negativen Effekt haben da einige Materialien durchsichtig sein müssen ist halt von Fall zu Fall unterschiedlich. glBindTexture(GL_TEXTURE_2D, meinetexture); Aber wie gesagt ohne Quelltext sind das "NUR" Vermutungen. Deshalb auch nur als Beispiel anzusehen. Auf jeden fall must du den Tiefenbuffer und den Farbbuffer an erster stelle im RenderEvent vorher löschen bevor was neues gerendert wird.
Delphi-Quellcode:
glClear(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT);
gruss |
AW: Opengl Problem:Texturfarbe beeinflusst Materialfarbe
Ich hab grad kein Windows zur Hand, weswegen ich meine Vermutung nicht testen konnte. Aber in einer meiner Quelltexte habe ich genau das hier gemacht:
Delphi-Quellcode:
Ich vermute mal (ich mach ja nichts ohne Grund:?), dass ich hier dem Problem aus dem Weg gehen wollte. Also müsste ein einfaches Weiß die normalen Texturen sichtbar machen.
// Enable Textures (look wiki.delphigl.com)
if not IN_SelectMode then begin glEnable(GL_TEXTURE_2D); glColor3f(1, 1, 1); end; Ich hoffe, dass dies die Lösung ist Puke |
AW: Opengl Problem:Texturfarbe beeinflusst Materialfarbe
So sieht meine Ausgabe aus und dennoch ändert meine gelbe Hintergrundfarbe der Textur
mit Alph-Werten die Materialfarbe aller folgenden Objekte. alle haben eine Gelbstich. Was hat die Texturfarbe mit der Materialfarbe zu tun ? über gldisable(GL_TEXTURE_2D) muss die Textur wieder deaktiviert werden !:idea: glDisable( GL_Blend ) gldisable(GL_ALPHA_TEST); glDisable(GL_LIGHTING) ; glEnable(gl_Color_Material); glcolor3f(1,1,1); glEnable(GL_TEXTURE_2D); glListBase(listbase); glCallLists (length(in_text), GL_UNSIGNED_BYTE, @in_text[1]);// Aufruf der Listen mit Buchstabentexturen gldisable(GL_TEXTURE_2D);// jetzt geht's :idea: glDisable(gl_Color_Material); glEnable(GL_LIGHTING) ; glMaterialfv(GL_FRONT_and_BACK, GL_Diffuse,p_Diffuse_0); glMaterialfv(GL_FRONT_and_BACK, GL_Ambient,p_Ambient_0); glMaterialfv(GL_FRONT_and_BACK, GL_Emission,p_Emission_0); glMaterialfv(GL_FRONT_and_BACK, GL_SPECULAR,p_specular_0); glMateriali(GL_FRONT_and_BACK,GL_SHININESS,g_Color _fv.b_Shine); |
AW: Opengl Problem:Texturfarbe beeinflusst Materialfarbe
glenable( GL_Blend );
ist am Ende noch für die transparenten Elemente erforderlich. |
AW: Opengl Problem:Texturfarbe beeinflusst Materialfarbe
Was man einschaltet muss man auch wieder ausschalten.
Mehr gibt's da nicht zu sagen. gruss |
AW: Opengl Problem:Texturfarbe beeinflusst Materialfarbe
Zitat:
Delphi-Quellcode:
glDisable(GL_BLEND); // Achtung! Kann einen negativen Effekt haben da einige Materialien durchsichtig sein müssen ist halt von Fall zu Fall unterschiedlich.
gruss |
AW: Opengl Problem:Texturfarbe beeinflusst Materialfarbe
Die transparenten Teile muss man eh zum Schluss separat zeichnen.
Mit dem Ausschalten ist schon klar, allerdings hätte ich nicht gedacht, dass die Texturfarbe die Materialfarbe beeinflusst, dachte, die können parallel betrieben werden. Naja, so ist es halt :idea: |
AW: Opengl Problem:Texturfarbe beeinflusst Materialfarbe
Zitat:
Kann man zeichnen wann und wo man will. Wichtig ist nur das man vorher eingeschaltete Funktionen wieder ausschaltet die Einfluss auf das nächste zu Rendernde Objekt haben könnten. Licht, Farbe, Blendeffekte usw... gruss |
AW: Opengl Problem:Texturfarbe beeinflusst Materialfarbe
Zitat:
Sorry! Gruß Puke |
AW: Opengl Problem:Texturfarbe beeinflusst Materialfarbe
Zitat:
![]() "... In der Rendering Loop werden dann zuerst die opaquen Objekte und erst im Anschluss die transparenten Objekte gezeichnet. Auf diese Weise findet eine korrekte Überblendung der opaquen Objekte unter Anwendung der Mischfunktion statt. Fazit Dieser Ansatz ist performant durchführbar und erzielt in den meisten Situationen korrekte Ergebnisse. Knifflig wird es sobald sich transparente Flächen gegenseitig verdecken. Dann ist eine Sortierung der transparenten Objekte untereinander nach ihrem Tiefenwert, also in Z-Richtung, notwendig. Dieses Problem performant zu lösen ist ein aktuelles Forschungsthema. Ein algorithmischer Ansatz hierfür ohne Sortierung ist Depth Peeling." |
AW: Opengl Problem:Texturfarbe beeinflusst Materialfarbe
Zitat:
Ich muss es nicht ;) Bzw. Zeichne meine Objekte wie ich will. Aber bitte kein Problem für mich. gruss |
AW: Opengl Problem:Texturfarbe beeinflusst Materialfarbe
Zitat:
|
AW: Opengl Problem:Texturfarbe beeinflusst Materialfarbe
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:21 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz