Уроки, алгоритмы, программы, примеры

Материалы по разделам

Построения
на плоскости (2D)
Графика
в пространстве (3D)
Вычислительная
геометрия
Физическое
моделирование
Фрактальная
графика

Новые комментарии

У меня проблема вот с этим: gl.Clear(OpenGL.GL_COLOR_BUFFER_BIT | OpenGL.GL_DEPTH_BUFFER_BIT);. Вылезает ошибка: CS1061 "object" не содержит определения "GL_COLOR_BUFFER_BIT", и не удалось найти доступный метод расширения "GL_COLOR_BUFFER_BIT",...
Большое спасибо. Единственный код который прошел без каких либо ошибок. Ура!!!
Скажите пожалуйста, подскажите алгоритм по которому по заданным точкам можно определить тип многогранника, скажем это куб или прямоугольный параллелепипед. Нашел теорию по этим фигурам: https://www.mat... https://www.mat... Акцентировать внимание...
Всем у кого не работает. файл wizard.script Ещё одно упоминание Glut32 в строке "if (!VerifyLibFile(dir_nomacro_lib, _T("glut32"), _T("GLUT's"))) return false;" меняем на "if (!VerifyLibFile(dir_nomacro_lib, _T("freeglut"), _T("GLUT's"))) return...
Не получается, емаё

Счетчики и рейтинг

Рейтинг@Mail.ru Яндекс.Метрика
Скриншот к примеру
Среда программирования: 
Microsoft Visual C++2008 Express Edition
Статья по теме: 

В этой работе выполняется освещение фигуры при помощи основных функций Open GL

Код программы: 

#include <stdlib.h> // подключение библиотек 
#include <GL\glut.h> 
 
void look();
void square(){ // отстраивается одна грань кубика 
 
glBegin(GL_QUADS);  
glVertex3f(-1,-1,0); 
glVertex3f(1,-1,0); 
glVertex3f(1,1,0); 
glVertex3f(-1,1,0); 
glEnd(); 
glColor3b(0,0,0);
glBegin(GL_LINES);
glVertex3f(-0.4,1,0);
glVertex3f(-0.4,-1,0);
glVertex3f(0.4,-1,0);
glVertex3f(0.4,1,0);
 
glVertex3f(-1,0.4,0);
glVertex3f(1,0.4,0);
glVertex3f(-1,-0.4,0);
glVertex3f(1,-0.4,0);
glEnd();
 
} 
 
void cube(){ 
 
 
 
//glColor3ub(0xFF, 0x00, 0x00); //цвет грани (рисует три пары , с помощью смещения )
glPushMatrix(); 
 
glTranslatef(0, 0, -1); 
square();
//glColor3ub(0xFF, 0x00, 0x00);
glTranslatef(0, 0, 2); 
square(); 
glPopMatrix(); 
 
//glColor3ub(0x0, 0xff, 0x00); 
glPushMatrix(); 
glRotatef(90, 0, 1, 0); 
glTranslatef(0, 0, -1); 
square(); 
glTranslatef(0, 0, 2); 
//glColor3ub(0x0, 0xff, 0x00); 
square(); 
glPopMatrix(); 
 
//glColor3ub(0x00, 0x00, 0xff); 
glPushMatrix(); 
glRotatef(90, 1, 0, 0); 
glTranslatef(0, 0, -1); 
square(); 
glTranslatef(0, 0, 2); 
//glColor3ub(0x00, 0x00, 0xff); 
square(); 
glPopMatrix(); 
} 
 
float cangle = 0.02; // угол вращения 
 
void onRender(){ 
	glClearColor(100,0,1,0);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); //очистка буферов (двойного и глубины )
glMatrixMode(GL_MODELVIEW);
 
glPushMatrix();
glLoadIdentity();
look();// работа с освещением 
float l_diffuse[] = {0.4, 0.7, 0.2};
float l_pos[] = {-1.5, -1.5, 1.5, 1};
float s_dir[] = {1, 1, 0, -1};
glLightfv(GL_LIGHT0, GL_DIFFUSE, l_diffuse);
glLightfv(GL_LIGHT0, GL_POSITION, l_pos);
glLightf(GL_LIGHT0, GL_CONSTANT_ATTENUATION, 0.0);
glLightf(GL_LIGHT0, GL_LINEAR_ATTENUATION, 0.2);
glLightf(GL_LIGHT0, GL_QUADRATIC_ATTENUATION, 0.4);
glPopMatrix();
 
glRotatef(cangle, 0, 0, 1); // поворот
cube();
glutSwapBuffers(); // стандартная функция двойной буферизации , для измены буфера 
} 
 
 
void look(){
	glMatrixMode(GL_MODELVIEW);
gluLookAt(-4, -4, 2, // установление точки обзора 
0, 0, 0, 
0, 0, 1); 
}
void onReshape(int w, int h){ //вызывается когда происходит изменение окна 
glViewport(0, 0, w, h); 
glMatrixMode(GL_PROJECTION); 
glLoadIdentity(); 
gluPerspective(120, w/h, 1, 100); 
 
 // переключение на матрицу моделей 
look();
 
} 
 
void initScene(){ // создаёт глубину 
glEnable(GL_DEPTH_TEST); 
} 
 
 
 
int main(int argc, char **argv){ // стандартная функция 
 
glutInit(&argc, argv); 
glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH | GLUT_RGBA); 
glutInitWindowPosition(100,100); //позиции 
glutInitWindowSize(500,500); //размер 
glutCreateWindow("Sqear"); //название 
 
initScene(); 
 
glutDisplayFunc( onRender); // функция отрисовки 
glutIdleFunc(onRender); //когда не событий 
glutReshapeFunc(onReshape); 
 
glEnable(GL_LIGHT0);
glEnable(GL_LIGHT1);
 
glDisable(GL_CULL_FACE);
glEnable(GL_LIGHTING);
 
 
glutMainLoop(); //функция выполнения 
return 0; 
}

Комментарии

lakdemon аватар
Опубликовано lakdemon в 4. Май 2017 - 14:21.

Ну..кажется что то пошло не так
http://pp.usera...