Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Мультимедия, OpenGL/DirectX > Свет для quadric объекта


Автор: bosscs 20.6.2013, 14:14
Когда я рисовал пирамиду с помощью GL_TRIANGLES, я использовал 
Код

GLTVector3 vPoints[3] = 
{{ 0.0f, 20.0f,  0.0f},
{ -10.0f,  0.0f, 10.0f},
{ 10.0f,  0.0f,  10.0f}};

Видимо это для создания вектора основываясь на точках в пространстве. Не уверен.
В общем я включал свет как-то так:
Код

    float specular[4]= {1.0f,1.0f,1.0f,1.0f};
    glLightModeli(GL_LIGHT_MODEL_TWO_SIDE, GL_TRUE);
    glEnable(GL_COLOR_MATERIAL);
    glColorMaterial(GL_FRONT, GL_AMBIENT_AND_DIFFUSE);
    glEnable(GL_LIGHT1);
    glLightfv(GL_LIGHT1, GL_POSITION, pos);
    glLightfv(GL_LIGHT1, GL_AMBIENT, am);
    glLightfv(GL_LIGHT1, GL_DIFFUSE, dif);
    glLightfv(GL_LIGHT1, GL_SPECULAR, specular);
    //ambient = am*glcolor                  //Цвет фона
    //difuse = dif*glcolor + ambient        //Освещение

И свет падал на пирамиду с той стороны, где он и расположен.
Но теперь мне нужно сделать свет для столбца 
Код

gluCylinder(quadric, column_width, column_width, y, 50, 50);

Сейчас свет есть, но он не действует на этот столбец. Видимо нужно так же сделать для него вектора...Или что еще.
Подскажите пожалуйста, что нужно сделать?

Автор: CosmoMan 29.7.2013, 13:23
Выложите весь код отрисовки объектов в сцене. 
Нужны скриншоты сцены с пирамидой и цилиндром. 
Скорее всего вы неправильно позиционируете объект в сцене или источник света. 
gluCylinder создает цилиндр с нормалями, он должен нормально освещаться. 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)