Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Opengl Problem:Texturfarbe beeinflusst Materialfarbe (https://www.delphipraxis.net/181290-opengl-problem-texturfarbe-beeinflusst-materialfarbe.html)

luisk 2. Aug 2014 17:53

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
http://www.c-plusplus.de/forum/103156-full
leider fehlt dort die Erklärung bzw. eine Lösung des Problems.

Medium 2. Aug 2014 19:32

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?

Puke 2. Aug 2014 23:03

AW: Opengl Problem:Texturfarbe beeinflusst Materialfarbe
 
Hatte das Problem auch einmal. Irgendwo stand es dann im Delphi-OpenGl-Wiki

Gruß
Puke

luisk 3. Aug 2014 10:38

AW: Opengl Problem:Texturfarbe beeinflusst Materialfarbe
 
Zitat:

Zitat von Puke (Beitrag 1267382)
Hatte das Problem auch einmal. Irgendwo stand es dann im Delphi-OpenGl-Wiki

Gruß
Puke

Danke Puke für den Hinweis.
Weißt Du evtl. noch, wo das Problem näher beschrieben wird ?

EWeiss 3. Aug 2014 15:58

AW: Opengl Problem:Texturfarbe beeinflusst Materialfarbe
 
Zitat:

Zitat von luisk (Beitrag 1267390)
Zitat:

Zitat von Puke (Beitrag 1267382)
Hatte das Problem auch einmal. Irgendwo stand es dann im Delphi-OpenGl-Wiki

Gruß
Puke

Danke Puke für den Hinweis.
Weißt Du evtl. noch, wo das Problem näher beschrieben wird ?

Keine :glaskugel:

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:
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);
Nachdem gerendert wurde kannst du sie ja wieder einschalten wenn nötig.
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

Puke 4. Aug 2014 11:07

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:
// Enable Textures (look wiki.delphigl.com)
if not IN_SelectMode then
begin
  glEnable(GL_TEXTURE_2D);
  glColor3f(1, 1, 1);
end;
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.

Ich hoffe, dass dies die Lösung ist
Puke

luisk 4. Aug 2014 13:08

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);

luisk 4. Aug 2014 18:08

AW: Opengl Problem:Texturfarbe beeinflusst Materialfarbe
 
glenable( GL_Blend );
ist am Ende noch für die transparenten Elemente erforderlich.

EWeiss 4. Aug 2014 18:17

AW: Opengl Problem:Texturfarbe beeinflusst Materialfarbe
 
Was man einschaltet muss man auch wieder ausschalten.
Mehr gibt's da nicht zu sagen.


gruss

EWeiss 4. Aug 2014 18:42

AW: Opengl Problem:Texturfarbe beeinflusst Materialfarbe
 
Zitat:

Zitat von luisk (Beitrag 1267477)
glenable( GL_Blend );
ist am Ende noch für die transparenten Elemente erforderlich.

:lol:

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


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:20 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz