Теми рефератів
> Реферати > Курсові роботи > Звіти з практики > Курсові проекти > Питання та відповіді > Ессе > Доклади > Учбові матеріали > Контрольні роботи > Методички > Лекції > Твори > Підручники > Статті Контакти
Реферати, твори, дипломи, практика » Курсовые проекты » Використання OpenGL

Реферат Використання OpenGL





LE | GLUT_RGB);

glutInitWindowSize (250, 250),

glutInitWindowPosition (100, 100);

glutCreateWindow (argv [0]);

init <);

glutDisplayFunc (display);

glutReshapeFunc (reshape),

glutMouseFunc (mouse);

glutMainLoop ();

return 0;}

Приклад програми, написаної на C, із застосуванням OpenGL.

Програма візуалізує обертовий куб. На куб накладені текстури, можливе включення альфа-прозорості під час візуалізації.

# include

# include

# include

int tex [1];

float xtr, ytr, ztr;

float rotx, roty, rotz;


float LightAmbient [] = {0.5f, 0.5f, 0.5f, 1.0f};

float LightPosition [] = {0.0f, 0.0f, 5.0f, 1.0f} ;//позиція освітлення

float LightDiffuse [] = {1.0f, 1.0f, 1.0f, 1.0f};// розсіювання


void LoadTexs ()// ініціалізація і завантаження текстур

{

AUX_RGBImageRec * tex1;

tex1 = auxDIBImageLoad ("droy.bmp");

glGenTextures (1, & tex [0]);

glBindTexture (GL_TEXTURE_2D, tex [0]);

glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR),

glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);

glTexImage2D (GL_TEXTURE_2D, 0, 3, tex1-> sizeX, tex1-> sizeY, 0,

GL_RGB, GL_UNSIGNED_BYTE, tex1-> data);

}

void init ()

{

LoadTexs () ;//процедура завантаження текстури

glColor4f (1.0f, 1.0f, 1.0f, 0.5f);

glBlendFunc (GL_SRC_ALPHA, GL_ONE);// параметри змішування

glEnable (GL_TEXTURE_2D);

glClearColor (0.0, 0.0, 0.0, 0.0) ;//колір фону

glClearDepth (1.0);

glDepthFunc (GL_LESS);

glEnable (GL_DEPTH_TEST);// тест глибини

glShadeModel (GL_SMOOTH);

glTranslatef (0.0f, 0.0f,-5.0f);

glLightfv (GL_LIGHT1, GL_AMBIENT, LightAmbient);// Параметри освітлення

glLightfv (GL_LIGHT1, GL_POSITION, LightPosition);

glLightfv (GL_LIGHT1, GL_DIFFUSE, LightDiffuse); br/>

glEnable (GL_LIGHT1) ;//освітлення

glEnable (GL_LIGHTING);

glEnable (GL_COLOR_MATERIAL);

glColorMaterial (GL_FRONT, GL_AMBIENT_AND_DIFFUSE);

}

void display (void)

{

glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT) ;//очищення буфера глибини

glPushMatrix () ;//збереження матриці

glTranslatef (xtr, ytr, ztr);

glRotatef (rotx, 1.0,0.0,0.0);

glRotatef (roty, 0.0,1.0,0.0),

glRotatef (rotz, 0.0,0.0,1.0);

glBegin (GL_QUADS);

glNormal3f (0.0f, 0.0f, 1.0f) ;//Передня грань

glTexCoord2f (0.0f, 0.0f); glVertex3f (-1.0f, -1.0f, 1.0f);// Низ лево

glTexCoord2f (1.0f, 0.0f); glVertex3f (1.0f, -1.0f, 1.0f);// Низ право

glTexCoord2f (1.0f, 1.0f), glVertex3f (1.0f, 1.0f, 1.0f);// Верх право

glTexCoord2f (0.0f, 1.0f); glVertex3f (-1.0f, 1.0f, 1.0f);// Верх ліво

glNormal3f (0.0f, 0.0f,-1.0f) ;//Задня грань

glTexCoord2f (1.0f, 0.0f); glVertex3f (-1.0f, -1.0f,-1.0f);// Низ право

glTexCoord2f (1.0f, 1.0f); glVertex3f (-1.0f, 1.0f,-1.0f);// Верх право

glTexCoord2f (0.0f, 1.0f); glVertex3f (1.0f, 1.0f,-1.0f);// Верх ліво

glTexCoord2f (0.0f, 0.0f); glVertex3f (1.0f, -1.0f,-1.0f);// Низ ліво

glNormal3f (0.0f, 1.0f, 0.0f) ;//Верхня грань

glTexCoord2f (0.0f, 1.0f); glVertex3f (-1.0f, 1.0f,-1.0f);// Верх ліво

glTexCoord2f (0.0f, 0.0f); glVertex3f (-1.0f, 1.0f, 1.0f);// Низ лево

glTexCoord2f (1.0f, 0.0f); glVertex3f (1.0f, 1.0f, 1.0f);// Низ право

glTexCoord2f (1.0f, 1.0f); glVertex3f (1.0f, 1.0f,-1.0f);// Верх право

glNormal3f (0.0f,-1.0f, 0.0f) ;//Нижня грань

glTexCoord2f (1.0f, 1.0f); glVertex3f (-1.0f, -1.0f,-1.0f);// Верх право

glTexCoord2f (0.0f, 1.0f); glVertex3f (1.0f, -1.0f,-1.0f);// Верх ліво

glTexCoord2f (0.0f, 0.0f); glVertex3f (1.0f, -1.0f, 1.0f);// Низ ліво

glTexCoord2f (1.0f, 0.0f), glVertex3f (-1.0f, -1.0f, 1.0f);// Низ право

glNormal3f (1.0f, 0.0f, 0.0f) ;//Права грань

glTexCoord2f (1.0f, 0.0f); glVertex3f (1.0f, -1.0f,-1.0f);// Низ право

glTexCoord2f (1.0f, 1.0f); glVertex3f (1.0f, 1.0f,-1.0f);// Верх право

glTexCoord2f (0.0f, 1.0f); glVertex3f (1.0f, 1.0f, 1.0f);// Верх ліво

glTexCoord2f (0.0f, 0.0f); glVertex3f (1.0f, -1.0f, 1.0f);// Низ ліво

glNormal3f (-1.0f, 0.0f, 0.0f) ;//Ліва грань

glTexCoord2f (0.0f, 0.0f); glVertex3f (-1.0f, -1.0f,-1.0f);// Низ ліво

glTexCoord2f (1.0f, 0.0f), glVertex3f (-1.0f, -1.0f, 1.0f);// Низ право

glTexCoord2f (1.0f, 1.0f); glVertex3f (-1.0f, 1.0f, 1.0f);// Верх право

glTexCoord2f (0.0f, 1.0f); glVertex3f (-1.0f, 1.0f,-1.0f);// Верх ліво

glEnd ();

glPopMatrix () ;//виклик матриці

rotx + = 0.2 ;//обер...


Назад | сторінка 11 з 12 | Наступна сторінка





Схожі реферати:

  • Реферат на тему: Використання ВЕРХ в аналізі антибіотиків
  • Реферат на тему: Аналіз вмісту холестерину в жовтку курячих яєць методом обернено-фазової ВЕ ...
  • Реферат на тему: Право господарського відання і право оперативного управління як засоби Здій ...
  • Реферат на тему: Право на позов і право на пред'явлення позову
  • Реферат на тему: Право інтелектуальної власності цивільне право України