Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[OpenGL] wplyw koloru spodu tekstury na kolor sceny i innych obiektow

Ostatnio zmodyfikowano 2010-11-01 16:54
Autor Wiadomość
dmx81
Temat założony przez niniejszego użytkownika
[OpenGL] wplyw koloru spodu tekstury na kolor sceny i innych obiektow
» 2010-10-31 22:54:48
w zaleznosci od tego, jaka teksture zaladuje na obiekt - mam rozny kolor sceny, tzn:

mam kostke na ktora nakladam teksture, jakas inna kostke w oddali (duzo wieksza, aby bylo widac z daleka,kolor ciemno-szary 0.1,0.1,0.1), "podloge", czyli GL_QUADS o kolorze czarnym

jesli na kostke zaladuje teksture, ktora ma spod zielony (spod=ostatnia linia dotykajaca podloza), cala plansza miesza sie z barwa zielona, jesli spod tekstury przemaluje na czerwono, mieszane wszytsko jest na czerwono (podloga powinna byc czarna itd)

niezaleznie, czy teksture nakladam przez modulate, decal czy blend, sprawdzam wlaczanie i wylaczanie blend, zmienianie skladowych funkcji blend, nic nie zmienia sie...

sprawdzam po kolei wszytskie funkcje malujace, mieszajace i nic nie daje efektu (jedynie wylaczenie funkcji ladujacej teksture), bede probowal dalej, ale jesli ktos zna powod, prosze o podp.

http://www.fotosik.pl/pokaz_obrazek/a431cd029b8f17ab.html   tu bierze kolor brazowy z domku

http://www.fotosik.pl/pokaz_obrazek/e5448dfab01566ff.html   tu wylaczylem tekstury, wszytsko w swoich ustawionych kolorach

http://www.fotosik.pl/pokaz_obrazek/bcc2dcf2eecbdacb.html   tu bierze czerwony (domalowalem ten czerwony, wczesniej byl bialy, wszytsko bylo rozjasnione, jak pomalowalem na zielono, to mieszalo z zielonym)
P-23481
DejaVu
» 2010-11-01 01:27:20
Musisz ustawić
glColor3f( 1.0, 1.0, 1.0 );
 czy jakoś tak przed każdym renderowanym obiektem. Ustawienie koloru determinuje barwy nanoszonych tekstur. Dlatego ustawia się kolor jako biały, jeżeli chcesz aby Twoje tekstury miały naturalne odzwierciedlenie kolorów. Nie wiem czy dobrze zrozumiałem Twój problem także napisz czy to rozwiązanie pomogło czy też chodzi Ci o coś innego.
P-23482
dmx81
Temat założony przez niniejszego użytkownika
» 2010-11-01 07:42:07
ja piszac "spod tekstury" mam na mysli spod obrazka, ktory nakladam na wielokat

1. najpierw rysuje wielokat i ustalam jego kolor
2. nanosze teksture - obrazek z dysku
3.teraz mamy 2 rodzaje mieszania sie kolorow:

a. kolory tekstury mieszaja sie z kolorem wielokata (tak jak pan napisal - dla bialego, bedzie to odzwierciedlenie tekstury, dla np czarnego, tekstura bedzie duzo ciemniejsza)

b. kolor sceny (czyli u mnie innych obiektow, podloga, ten wielokat w oddali) miesza sie z kolorem spodniego koloru na teksturze - tzn tekstura nalozona na wielokat ma swoj spod(powiedzmy 0,0,0 do 1,0,0) i zmienianaj barwe (przykladowo na obrazku w paincie narysuje trawe na samym dole obrazka - scena zabarwi sie na zielono, albo jak widac na jednym z przykladow, pomalowalem na czerwono - wszytsko zrobilo sie czerwonawe), czyli kolor tekstury (ale tylko jej spodu) ma wplyw na to, jak zabarwia sie moja scena,  natomiast kolor wielokata, na ktory nakladam teksture - nie (jedynie na kolor tekstury na niego nalozonej) prosze przyrzec sie obrazkom :)i temu co jest na teksturze

tu narysowalem z zielonym spodem (a bialym wielokatem pod tekstura)
i jak widac wszytsko robi sie zielone

http://www.fotosik.pl/pokaz_obrazek/1f0ce04bb0fa3527.html
P-23483
VND
» 2010-11-01 12:47:10
Wyłącz texturowanie gdy go nie używasz.
glDisable( GL_TEXTURE_2D );
Jeśli narysujesz jakieś wielokąty z włączonym a nie podasz glTexCoord to OpenGL przyjmie, że wszystkie współrzędne textur mają wartość (0,0) czyli kolor pierwszego pixela textury (lewy dolny narożnik).
P-23486
dmx81
Temat założony przez niniejszego użytkownika
» 2010-11-01 13:36:12
ok dzieki, sprawdze jak wroce z pracy:) (przerwa obiadowa...) brzmi logicznie, wiec mam nadzieje, ze zadziala. czyli po kazdym oteksturowanym obiekcie, a przed narysowaniem 'golego' czyli bez tekstury, wylaczyc teksturowanie (a pozniej je znow zalaczyc, jesli bede jeszcze gdzies cos nakladal) dam znac, jak sprawdze
P-23488
dmx81
Temat założony przez niniejszego użytkownika
» 2010-11-01 16:54:41
Dziala, dzieki wielkie za rozwiazanie :) funkcje glEnable()/glDisable() dla Texture_2D wrzucilem do funkcji rysujacych obiekt, zamiast w initializeGL (gdzie wczesniej wiadomo - nie moglo byc umieszczone glDisable) :)
P-23490
« 1 »
  Strona 1 z 1