В примере используется двумерная текстура
Помимо массива для основной текстуры вводится вспомогательный массив для подобраза, необходимый для работы команды giTexsuMmage2D:
const
Если вы ищете запчасти для вашего телефона то приобрести их недорого можете тут: http://m-service.com.ua/filters-2/.
checklmageHidth « 64; // ширина текстуры шахматной доски
checklmageHeight - 64; // высота текстуры шахматной доски
aublmageWidth = 16; // размеры вспомогательного массива
sublmageHeight » 16; var
checklmage : Array [0.-checklmageHeight — 1, 0. .checklmagewidth - 1, 0..31 of GLubyte;
aublmage : Array [0. .sublmageHeight — 1, 0.. aublmagewidth - 1, 0..3] of GLubyte;
После того как массив заполнен, устанавливается двумерная текстура, параметры задаются только самые необходимые:
glTexParameteri (GL_TEXTURE_2D, GL_TEXTORE_MAG_FILTER. GL_NEAREST) ; glTexParameteri (GL_TEXTUHE_2D, GL_TEXTOKE_MIfJ_FILTER, GL__HEAREST); glTexImage2D (GL_TEXTDRE_2D, 0, GL^RGBA, checklmagewidth,
checklmageHeight, 0, GL_RGBA, GL_0NSIGNED__BYTE, Gchecklmage);
Последняя команда в этой последовательности имеет параметры со смыслами, аналогичными одномерной текстуре, и точно так же я рекомендую не менять их значения за исключением аргументов, связанных с массивом образа текстуры.
При воспроизведении кадра на время рисования площадки включается режим наложения двумерной текстуры:
glEnabie (GL_TEXTURE__2D); // включить режим //не учитывать цвет примитивов
glTexEnvf (GL_TEXTUKE_ENV, GLjrEXTOKEENVMODE. GL_DECAL) ; glBegin(GL_QUADS); // два независимых четырехугольника
glTexCoord2f(0.0, 0.0); glVertex3f(-2.0, -1.0. 0.0);
glTexCoord2f(0.0, 1.0); glVertexSf(-2.0, 1.0, 0.0);
glTexCoord2f(1.0, 1.0); glVertex3f(0.0. 1.0, 0 0 ,
glTexCoord2f(1.0, 0.0); glVertex3f(0.0, -1.0, 0.0);
glTexCoord2f(0.0, 0.0); glVertexSf(1.0, -1.0, 0.0);
glTexCoord2f(0.0, 1.0); glVertex3f(1.0, 1.0, 0.0);
glTexCoord2f[1.0, 1.0); glVertex3f(2.41421. 1.0, -1.41421);
glTexCoord2f(1.0. 0.0); glVertex3f(2.41421. -1.0, -1.41421); glEnd;
glDisable (GLJTEXTURE_2D); // режим отключается, немного экономится время
Режим GLDECAL включается для того, чтобы цвета текстуры и поверхности не смешивались. Можете задать текущим произвольный цвет — примитивы не окрасятся, а если отключить этот режим, то шашки станут окрашенными. Здесь этот режим включается для того, чтобы не появлялись искажени»| при наложении текстуры на правую площадку Пример иллюстрирует также работу команды giTexSuMmage2D, позволяющее подменять часть образа текстуры. В примере при нажатии клавиши 'S' шщ первоначальной текстуре появляется квадратик с мелкой красной шашечкой, а после нажатия на 'R' текстура восстанавливается. |