Слева — с генерацией координаты в текстуры справа — без иве. Во втором случае координаты текстуры объектов задаются при их описании
Массив образа содержит значения RGB, задающие узор полосок (я задал знвчения для равных по ширине полосок красного и синего цвета). Команда giTexParameter позволяет задавать параметры текстуры. Минимум, что надо сделать — задать знвчения для фильтров, как и написано в комментарии.
( Замечание \
Если говорить точно, то первую строку можно удалить, но вторая строка должна присутствовать обязательно, даже и со значением, принятым по умолчанию.
Гпава 4. Визуальные ефдЪекты
253
Фильтры залают вид текстуры, когда площадь пиксела, на которую она накладывается, в одном случае больше, а в другом меньше элемента текстуры. Эти значения я задал равными GLNEAREST, что соответствует неточному расчету текстуры. Другое возможное значение — GLLINEAR, расчет будет точным, но за счет скорости. Если вы установите такое значение третьего параметра команды glTexParsmeter, то на границах полосок цвет будет плввно размываться.
эти команды должны вызываться оояэательнс
glTexParameteri IGLJTEXTUREID, GL_TEXTUREJfflG_FILTER, GL_NEAREST) ; glTexParameteri (GLJTEXTUREID, GL_TEXTURE_MIN FILTER, GL_NEAREST) ;
if собственно создание текстуры
glTexImagelD (GLJTEXTURE1D, 0, 3, TexImageWidth, 0. GL_RGB,
GL__UNS IGNEDBYTE, eTexImage) ; // генерировать ли координату s If GenSOn
then glEnable (GL_TEXTURE_GEN_SJ
else glDisable (GL_TEXTURE_GEN_S); // уточняем параметры для координаты а. чтобы текстура не выглядела, // как штриховка многоугольников
glTexGeni (GL_S, GL_TEXTURE_GEN_MODE, GL_OBJECT_LINEAR); glTexGenfv (GL_S, GL_OBJECT_PLANE, GTexParams); // для поворота полосок glEnable (GL_TEXTURE_lD); // включаем текстуру end;
Здесь использован почти минимальный набор действий, которые необходимо выполнить, чтобы пользоваться текстурой; единственное, что можно удалить в этом коде, это строки, связанные с координатой s, но тогда пропадет возможность разворачивать полоски текстуры (рис. 4.54).
|