Форум программистов, компьютерный форум, киберфорум
OpenGL
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 18.05.2012
Сообщений: 16
1

Создается поверхность, но освещение не работает

01.08.2012, 13:43. Показов 603. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Создается поверхность, но освещение никак не заработает...косяк возможно в нормалях, так ли они считаются?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
void RenderScene(void)
    {
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    for (i=0; i<10; i++)
    {
        for (j=0; j<10; j++)
        {
            g_matrix[i][j].x=50-(GLfloat)i*9;       //Заполнение массива вершин
            g_matrix[i][j].z=50-(GLfloat)j*9;
            //g_matrix[i][j].y=0;
            if ((i>4)&&(i<8)&&(j>4)&&(j<8))
            {
                g_matrix[i][j].y=2^(i*j);
            }
        }
 
    }
    glPushMatrix();
    yRot+=0.1f;
    glRotatef(xRot, 1.0f, 0.0f, 0.0f);          //Поворот осей
    glRotatef(zRot, 0.0f, 0.0f, 1.0f);
    glRotatef(yRot, 0.0f, 1.0f, 0.0f);
    glPointSize(2.00f);
    glColor3ub(128, 128, 128);
    //glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);
    glBegin(GL_QUADS);
    for (i=0; i<=9; i++)
    {
        for (j=0; j<=9; j++)
        {
        x=g_matrix[i][j].x;
        z=g_matrix[i][j].z;
        y=g_matrix[i][j].y;
 
        x1=g_matrix[i][j+1].x;
        y1=g_matrix[i][j+1].y;
        z1=g_matrix[i][j+1].z;
 
        x2=g_matrix[i+1][j].x;
        y2=g_matrix[i+1][j].y;
        z2=g_matrix[i+1][j].z;
 
        x3=g_matrix[i+1][j+1].x;
        y3=g_matrix[i+1][j+1].y;
        z3=g_matrix[i+1][j+1].z;
 
        g_matrix[i][j].nx=((y1-y)*(z2-z))-((z1-z)*(y2-y));
        g_matrix[i][j].ny=((z1-z)*(x2-x))-((x1-x)*(z2-z));
        g_matrix[i][j].nz=((x1-x)*(y2-y))-((y1-y)*(x2-x));
 
        g_matrix[i+1][j+1].nx=((y3-y1)*(z3-z2))-((z3-z1)*(y3-y2));
        g_matrix[i+1][j+1].ny=((z3-z1)*(x3-x2))-((x3-x1)*(z3-z2));
        g_matrix[i+1][j+1].nz=((x3-x1)*(y3-y2))-((y3-y1)*(x3-x1));
 
        
        length=(g_matrix[i][j].nx*g_matrix[i][j].nx+g_matrix[i][j].ny*g_matrix[i][j].ny+g_matrix[i][j].ny*g_matrix[i][j].ny);
 
        g_matrix[i][j].nx/=length;
        g_matrix[i][j].nx/=length;
        g_matrix[i][j].nx/=length;
 
        glNormal3f(g_matrix[i][j].nx, g_matrix[i][j].nx, g_matrix[i][j].nx);
        glVertex3f(x,y,z);
        glNormal3f(g_matrix[i][j].nx, g_matrix[i][j].nx, g_matrix[i][j].nx);
        glVertex3f(x1, y1, z1);
        glNormal3f(g_matrix[i][j].nx, g_matrix[i][j].nx, g_matrix[i][j].nx);
        glVertex3f(x3,y3,z3);
        glNormal3f(g_matrix[i][j].nx, g_matrix[i][j].nx, g_matrix[i][j].nx);
        glVertex3f(x2,y2,z2);
        }
    }
    glEnd();
    glPopMatrix();
    glutSwapBuffers();
    //glFlush();
 
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.08.2012, 13:43
Ответы с готовыми решениями:

Не работает освещение в новой сцене в Unity 2D
Всем доброго времени суток. И вновь у меня проблема )) Делаю игру в 2D с видом сверху на движке...

Не работает освещение при рестарте игры
Сделал так, чтобы при нажатии на кнопку R сцена загружалась заново. Проблема в том, что при...

Не работает освещение в OpenGL (библиотека OpenTK)
Начал изучать openGl ,и дело дошло до освещения .Сделал всё по туториалу ,но не робит. Это код...

TextBox. Binding отлично работает, если создается в code behind, но не работает, будучи описанным в XAML
Window1 : Window { private TestObject _testObj = new TestObject(); public Window1(){ ...

0
01.08.2012, 13:43
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.08.2012, 13:43
Помогаю со студенческими работами здесь

варочная поверхность Bosch pkf665EEU/01, зависает и не работает
при включении в разетку заработала . потом через день . начила сама включаться. загорается лампочка...

Варочная поверхность Electrolux EHD 60020 P, Разбита поверхность, залит один блок
Здравствуйте! Сама проблема в том, что после того как разбили стекло, пробовали на ней готовить....

Найти боковую поверхность и полную поверхность правильной пирамиды
помогите пожалуста нужно наити боковую поверхность и полную поверхность правельной пирамиды

варочная поверхность Siemens ET78550, не работает часть сенсоров
варочная поверхность Siemens не работает часть сенсоров, первые сенсора на два блина - все...

Индукцыонная варочная поверхность BOSCH FD 78 09, Работает только один блин
Работает только один блин . Остальные три не работают , но на посуду реагируют ( то есть если...

Вар. поверхность Gorenie SVK61SS, Индикация нагрева работает, а реле не включаются
Вар. поверхность Gorenie SVK61SS m;d 2600P2, s/N 73330046, art/N 125881/01. При включении в сеть на...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru