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


Автор: OlegIT 28.5.2018, 20:42
Есть 3D объекты, пример в прилагаемом файле, нарисован OpenGL шейдарами. Как сгладить грани не увеличивая их количество?

Автор: BorisVorontsov 12.6.2018, 18:04
Если я правильно понял вопрос, glShadeModel(GL_SMOOTH);

Автор: OlegIT 13.6.2018, 19:43
Нет в моей версии OpenGL такой функции

Код

D:\Work\Test_STL\build-Test_STL-Desktop_Qt_5_10_1_MinGW_32bit-Debug\debug\it_gl_widget.o:-1: In function `ZN12IT_GL_Widget7paintGLEv':
D:\Work\Test_STL\SRC\it_gl_widget.cpp:683: ошибка: undefined reference to `_imp__glShadeModel@4'

Автор: OlegIT 20.6.2018, 09:29
Недодумал я сначала. glShadeModel(GL_SMOOTH); вызываю так
Код

    QOpenGLFunctions_3_0 *Func;
..............................
    Func = context()->versionFunctions<QOpenGLFunctions_3_0>();
    if (Func)
        Func->glShadeModel(GL_SMOOTH);

Функция вызывается, но эффекта нет.
И ещё, есть несколько версий QOpenGLFunctionsXXXX и функция glShadeModel есть в нескольких, но не во всех версиях. Как определится с версиями?

Автор: OlegIT 20.6.2018, 10:49
Недодумал я сначала. glShadeModel(GL_SMOOTH); вызываю так
Код

    QOpenGLFunctions_3_0 *Func;
..............................
    Func = context()->versionFunctions<QOpenGLFunctions_3_0>();
    if (Func)
        Func->glShadeModel(GL_SMOOTH);

Функция вызывается, но эффекта нет.
И ещё, есть несколько версий QOpenGLFunctionsXXXX и функция glShadeModel есть в нескольких, но не во всех версиях. Как определится с версиями?

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