Форум программистов, компьютерный форум CyberForum.ru

OpenGL и материалы - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Исправить класс сокращения дроби http://www.cyberforum.ru/cpp-beginners/thread553501.html
класс реализует сокращение дроби , но он не работает выводит теже числа помогите может сам алгоритм неправильный , или ещё что то #include <cstdlib> #include <iostream> using namespace std; class rational { private: int a,b;
C++ исправьте код #include <cstdlib> #include <iostream> using namespace std; class rational { private: int a,b; public: http://www.cyberforum.ru/cpp-beginners/thread553440.html
Определить тип соединения сопротивлений - последовательное или параллельное C++
Написать программу, выводящую на экран сопротивление участка электрической цепи, состоящей из двух сопротивлений. Основная программа запрашивает значения сопротивлений и тип соединения (1-последовательное, 2-параллельное). Вычисление и вывод на экран реализовать в виде функции. borland C++
C++ Определить значение k, при котором сумма |A[1]+A[2]+...A[k]-(A[k+1]+...+A[N])| минимальна
Задан массив А. Определить значение k, при котором сумма |A+A+...A-(A+...+A)| минимальна (т.е. минимален модуль разности сумм элементов в правой и левой части, на которые массив делится этим k).
C++ Как записать двумерный массив в файл? http://www.cyberforum.ru/cpp-beginners/thread553416.html
Здравствуйте. У меня есть такой код: #include <iostream> using namespace std; #include <conio.h> //Заголовочный файл conio.h необходим, чтобы использовать //функцию getch() int main() {
C++ необходим совет опытных программистов c++ ребят, помогите, пожалуйста, мне, новичку, если не сложно. вобщем есть у меня прога, которую я разбил на модули. В code.h и code.cpp объявлен и определён соответственно класс матриц mtrx. Есть ещё codeanalyze.h и codeanalyze.cpp где у меня объявлены и определены функции для анализа матриц. При запуске компилятор vs2008 выдаёт ошибку. Вот фрагмент кода из codeanalyze.cpp #include "code.h"... подробнее

Показать сообщение отдельно
veter48
0 / 0 / 0
Регистрация: 09.11.2008
Сообщений: 87
22.04.2012, 18:25  [ТС]     OpenGL и материалы
Ну, я что-то попытался настроить. Добавил параметры материала. Но я не совсем понял что значит
в массиве надо указывать 4 компонента, не 3
. Ну, в общем, я нашел параметры материала для стекла и указал их, но на стекло это ни как не похоже. Мне кажется, что с настройкой освещения у меня что-то не правильно, помогите, пожалуйста. Спасибо.
Код
#include <GL/glut.h> 

static int kv= 1;
static int kd = 1;

void reshape(int w, int h)
{
	glViewport(0, 0, w, h);
	
	glMatrixMode(GL_PROJECTION);
	glLoadIdentity();
	gluOrtho2D(0, w, 0, h);
	
	glMatrixMode(GL_MODELVIEW);
	glLoadIdentity();
}

static void key(unsigned char key, int x, int y)
{
    switch (key) 
    {
        case 27 : 
        case 'q':
            exit(0);
            break;

        case '+':
            if (kv < 75 & kd < 75) 
            {
             kv += 1;
             kd += 1;
            }
            break;

        case '-': 
            if (kv > -5 & kd > -5) 
            {
             kv -= 1; 
             kd -= 1; 
            }
            break;
    }

    glutPostRedisplay();
}


void display()
{
       

	glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
  
      
    GLfloat light0_diffuse[] = {1, 1, 0, 1.0};
    GLfloat light0_direction[] = {0.5, 1, 1, 0.005};
 
    glEnable(GL_LIGHT0);
    glLightfv(GL_LIGHT0, GL_DIFFUSE, light0_diffuse);
    glLightfv(GL_LIGHT0, GL_POSITION, light0_direction);
    
    
    GLfloat spec[] = {0.9, 0.9, 0.9, 1.0};
    GLfloat ambient[] = {0.0, 0.0, 0.0, 1.0};
    GLfloat dif[] = {0.588235, 0.670588, 0.729412, 1.0};
    GLfloat emis[] = {0.0, 0.0, 0.0, 1.0};
	glMaterialfv(GL_FRONT, GL_SPECULAR, spec);
	glMaterialf(GL_FRONT, GL_SHININESS, 96);
	glMaterialfv(GL_FRONT, GL_AMBIENT, ambient);
    glMaterialfv(GL_FRONT, GL_DIFFUSE, dif);
    glMaterialfv(GL_FRONT, GL_EMISSION, emis);
    

    glBegin(GL_POLYGON);
	glVertex2i(150 - kv,300);
	glVertex2i(200, 250-kv);
	glVertex2i(300+kv, 300);
	glVertex2i(275, 350+kv);
	glVertex2i(200, 350+kv);
	glEnd();
	
	
	glDisable(GL_LIGHT0);
	
	glutSwapBuffers();
}



int main (int argc, char * argv[])
{
	glutInit(&argc, argv);
	glutInitDisplayMode(GLUT_RGBA | GLUT_DOUBLE);
	glutInitWindowSize(800, 600);
	glutInitWindowPosition(100,100);
	glutCreateWindow("Glass");
	glutKeyboardFunc(key);


     glClearColor (1, 1, 1, 1);

     glEnable(GL_LIGHTING);

     glLightModelf(GL_LIGHT_MODEL_TWO_SIDE, GL_TRUE);

     glEnable(GL_NORMALIZE);
     
     glEnable(GL_LIGHTING);
     
     glDisable(GL_COLOR_MATERIAL);
     
     float global_ambient[] = { 0.0, 0.0, 0.0, 1.0 };
glLightModelfv(GL_LIGHT_MODEL_AMBIENT, global_ambient);

	
	glutReshapeFunc(reshape);
	glutDisplayFunc(display);
	
	glutMainLoop();
	
	return 0;
}
 
Текущее время: 11:17. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru