Читаем Введение в OpenGL полностью

 //--Построение цилиндра (кольца), расположенного параллельно оси z----//

 //--Второй и третий параметры задают радиусы оснований, четвертый-----//

 //--высоту,последние два-число разбиений вокруг и вдоль оси z---------//

 //--При этом дальнее основание цилиндра находится в плоскости z=0-----//

 gluCylinder(QuadrObj,RingRad,RingRad,RingHeight,30,2);

}

void TextureInit() {

 char strFile[]="texture.bmp";

 //--Выравнивание в *.bmp по байту-------------------------------------//

 glPixelStorei(GL_UNPACK_ALIGNMENT,1);

 //--Создание идентификатора для текстуры- ----------------------------//

 glGenTextures(1,&TexId);

 //--Загрузка изображения в память-------------------------------------//

 AUX_RGBImageRec *pImage = auxDIBImageLoad(strFile);

 int BmpWidth= pImage->sizeX;

 int BmpHeight = pImage->sizeY;

 void* BmpBits = pImage->data;

 //--Начало описания свойств текстуры----------------------------------//

 glBindTexture (GL_TEXTURE_2D,TexId);

 //--Создание уровней детализации и инициализация текстуры ------------//

 gluBuild2DMipmaps(GL_TEXTURE_2D,3,BmpWidth, BmpHeight,GL_RGB,GL_UNSIGNED_BYTE,BmpBits);

 //--Разрешение наложения этой текстуры на quadric-объекты-------------//

 gluQuadricTexture(QuadrObj, GL_TRUE);

 //--Задание параметров текстуры---------------------------------------//

 //--Повтор изображения по параметрическим осям s и t------------------//

 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_MIN_FILTER,GL_NEAREST);

 glTexParameteri (GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_NEAREST);

 //--Совмещать текстуру и материал объекта-----------------------------//

 glTexEnvi (GL_TEXTURE_ENV,GL_TEXTURE_ENV_MODE,GL_MODULATE);

}

void Init(void) {

 InitVertexTetr();

 InitNormsTetr();

 MakeTetrList();

 //--Определение свойств материала-------------------------------------//

 glMaterialfv (GL_FRONT_AND_BACK,GL_AMBIENT,mat_amb);

 glMaterialfv (GL_FRONT_AND_BACK,GL_SPECULAR,mat_spec);

 glMaterialf(GL_FRONT,GL_SHININESS,shininess);

 //--Определение свойств освещения-------------------------------------//

 glLightfv(GL_LIGHT0, GL_DIFFUSE, light_col);

 glEnable(GL_LIGHTING);

 glEnable(GL_LIGHT0);

 //--Проводить удаление невидимых линий и поверхностей-----------------//

 glEnable(GL_DEPTH_TEST);

 //--Проводить нормирование нормалей-----------------------------------//

 glEnable(GL_NORMALIZE);

 //--Материалы объектов отличаются только цветом диффузного отражения--//

Перейти на страницу:

Похожие книги

Adobe InDesign CS3
Adobe InDesign CS3

Книга посвящена верстке и макетированию в программе Adobe InDesign CS3. Помимо того что в ней описываются возможности программы, рассматриваются также принципы и традиции верстки, приводятся примеры решения типичных задач. Все это позволит читателю не только овладеть богатым инструментарием программы, но и грамотно применять его.Материал книги разделен на логические части: теоретические сведения, инструментарий программы, решение задач, – а также рассчитан на два уровня подготовки читателей – начинающих и опытных пользователей, что выгодно отличает книгу от других изданий. Это позволит применять ее как новичкам для знакомства с программой, так и пользователям со стажем для пополнения своих знаний.

Владимир Гавриилович Завгородний , Владимир Завгородний

Программирование, программы, базы данных / Программное обеспечение / Книги по IT
Программирование. Принципы и практика использования C++ Исправленное издание
Программирование. Принципы и практика использования C++ Исправленное издание

Специальное издание самой читаемой и содержащей наиболее достоверные сведения книги по C++. Книга написана Бьярне Страуструпом — автором языка программирования C++ — и является каноническим изложением возможностей этого языка. Помимо подробного описания собственно языка, на страницах книги вы найдете доказавшие свою эффективность подходы к решению разнообразных задач проектирования и программирования. Многочисленные примеры демонстрируют как хороший стиль программирования на С-совместимом ядре C++, так и современный -ориентированный подход к созданию программных продуктов. Третье издание бестселлера было существенно переработано автором. Результатом этой переработки стала большая доступность книги для новичков. В то же время, текст обогатился сведениями и методиками программирования, которые могут оказаться полезными даже для многоопытных специалистов по C++. Не обойдены вниманием и нововведения языка: стандартная библиотека шаблонов (STL), пространства имен (namespaces), механизм идентификации типов во время выполнения (RTTI), явные приведения типов (cast-операторы) и другие. Настоящее специальное издание отличается от третьего добавлением двух новых приложений (посвященных локализации и безопасной обработке исключений средствами стандартной библиотеки), довольно многочисленными уточнениями в остальном тексте, а также исправлением множества опечаток. Книга адресована программистам, использующим в своей повседневной работе C++. Она также будет полезна преподавателям, студентам и всем, кто хочет ознакомиться с описанием языка «из первых рук».

Бьерн Страуструп , Бьёрн Страуструп , Валерий Федорович Альмухаметов , Ирина Сергеевна Козлова

Программирование, программы, базы данных / Базы данных / Программирование / Учебная и научная литература / Образование и наука / Книги по IT