// load texture localTexture = auxDIBImageLoad ( "block.bmp" );
glGenTextures ( 1, &textureld ); glBindTexture ( GL_TEXTURE_2D, textureld ); glPixelStorei ( GL_UNPACK_ALIGNMENT, 1 );
// set 1-byte alignment
// set texture to repeat mode glTexParameteri ( GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT ) ,-
glTexParameteri ( GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT );
glTexParameteri ( GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR );
glTexParameteri ( GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR );

Основы библиотеки OpenGL

glTexImage2D ( GL_TEXTURE_2D, 0, 3,
localTexture -> sizeX, localTexture -> sizeY, 0, GL_RGB, GL_UNSIGNED_BYTE, localTexture -> data );
glutMainLoop (}; return 0;
}

Для устранения этих погрешностей текстурирования следует воспользоваться пирамидальным фильтрованием, что и делается в следующем примере. Для автоматического построения всех промежуточных уровней служит следующая функция:

int gluBuild2DMipmaps ( GLenum target, GLint components,
GLint width, GLlint height, GLenum format, GLenum type, const void * data );

Параметры имеют тот же смысл, который они имеют и для функции glTexImage2D, но при этом строятся все уровни для использования пирамидального фильтрования. Кроме того, для этой функции размеры текстуры могут и не являться степенями двойки.

ок.

int main ( int argc, char ** argv )
{
// initialise glut glutlnit ( barge, argv );
glutlnitDisplayMode ( GLUTJDOUBLE | GLUT_RGB | GLUT_DEPTH ); glutlnitWindpwSize ( 400, 400 );
// create window int glwin = glutCreateWindow { "OpenGL example 7" ),
initO ,-
// register handlers glutDisplayFunc ( display ); glutReshapeFunc ( reshape ) glutKeyboardFunc ( key ); glutldleFunc ( animate ) ,-
// load texture localTexture = auxDIBImageLoad ( "block.bmp* );

т

glGenTextures ( 1, &textureld ); glBindTexture ( GL_TEXTURE_2D, textureld ),-
II set 1-byte alignment glPixelStorei ( GL_UNPACK_ALIGNMENT, 1 );

⇐ Предыдущая| |Следующая ⇒