[OpenGL] multitexturing
Ostatnio zmodyfikowano 2012-12-23 21:39
Mrusio Temat założony przez niniejszego użytkownika |
[OpenGL] multitexturing » 2012-12-23 20:01:59 Witam, na podstawie artykułu: http://3dgep.com/?p=1116próbuję zrozumieć jak używając Vertex Array używać więcej niż jednej tekstury. Przykładowo, renderuje sobie teren (terrain) złożony z "kafelków". Wszystkie współrzędne kafelków mam w Vertex Array. Teraz chciałbym je oteksturować, ale nie wiem w jaki sposób nałożyć na różne kafelki różne tekstury (np. pierwszy kafelek - tekstura trawy, drugi kafelek - tekstura śniegu). Nie potrafię zrozumieć jak robi to autor powyższego artykułu. Zrozumiałem, że w jakiś sposób miesza on tekstury razem z kolorami, przy czym kolor określa, która tekstura będzie widoczna. Czy ktoś jest w stanie mi to wytłumaczyć? Druga sprawa: glActiveTexture( GL_TEXTURE0 ); glBindTexture( GL_TEXTURE_2D, tex1 ); glTexEnvi( GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE ); glTexEnvi( GL_TEXTURE_ENV, GL_COMBINE_RGB, GL_REPLACE );
glActiveTexture( GL_TEXTURE1 ); glBindTexture( GL_TEXTURE_2D, tex2 );
glTexEnvi( GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE ); glTexEnvi( GL_TEXTURE_ENV, GL_COMBINE_RGB, GL_MODULATE );
glTexEnvi( GL_TEXTURE_ENV, GL_SOURCE0_RGB, GL_TEXTURE0 ); glTexEnvi( GL_TEXTURE_ENV, GL_OPERAND0_RGB, GL_SRC_COLOR );
glTexEnvi( GL_TEXTURE_ENV, GL_SOURCE1_RGB, GL_TEXTURE1 ); glTexEnvi( GL_TEXTURE_ENV, GL_OPERAND1_RGB, GL_SRC_COLOR );
glTexEnvi( GL_TEXTURE_ENV, GL_SOURCE2_RGB, GL_PRIMARY_COLOR ); glTexEnvi( GL_TEXTURE_ENV, GL_OPERAND2_RGB, GL_SRC_COLOR );
Jaka jest zasada działania powyższego kodu? Rozumiem: glTexEnvi( GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE ); glTexEnvi( GL_TEXTURE_ENV, GL_COMBINE_RGB, GL_INTERPOLATE );
Ale co dzieje się dalej...? |
|
DejaVu |
» 2012-12-23 21:39:22 http://cpp0x.pl/kursy/Kurs-OpenGL-C++/Tekstury/233Tu masz długi rozdział poświęcony teksturom, a więc powinieneś znaleźć informację jak działa multiteksturowanie. Niestety na jakieś inne porady zapewne będziesz musiał trochę poczekać, bowiem tematów dot. OpenGL-a było na forum u nas stosunkowo mało, a zatem są małe szanse, że ktoś podejmie trud rozpoznania Twojego problemu... |
|
« 1 » |