Я использую OpenGL с C ++ (но без шейдеров и GLSL) и рисую сферы (шарик пула) и цилиндры (биток), используя функции библиотеки glu для их рисования. я использую glBindTexture()
связать текстуру и загрузить текстуру, используя ПОЧВА библиотека.
Как вы можете видеть на скриншотах, на цилиндре и сфере имеются зазубренные края. Называя следующее glHint()
Как мне избавиться от зубчатых краев. gluSphere()
имеет 25 стеков и ломтиков, а gluCylinder()
имеет 100 стеков и ломтиков. Увеличение стеков и фрагментов не улучшает качество изображения.
Использование freeglut для остальной части рисунка
glHint(GL_POLYGON_SMOOTH_HINT, GL_NICEST); //Smooth polygons
glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST); //Best perspective corrections
glHint(GL_POINT_SMOOTH_HINT, GL_NICEST); //Smooth points
glHint(GL_LINE_SMOOTH_HINT, GL_NICEST); //Smooth lines
Прежде всего, ваш вопрос связан с наложения спектров Термин, это то, что происходит, когда трилеры и некоторые другие примитивы (это очень простые объекты, которые создают всю сцену) растеризуются (на основе геометрического описания некоторые пиксели на экране окрашены или нет).
Попробуйте поискать «Как включить сглаживание» — здесь много полезной информации об этой и некоторых смежных темах: http://www.glprogramming.com/red/chapter06.html.
В вашем случае это наверняка будет glEnable для GL_POLYGON_SMOOTH и GL_BLEND наверняка.
например.
glEnable (GL_POLYGON_SMOOTH);
glEnable (GL_BLEND);
glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glHint (GL_POLYGON_SMOOTH_HINT, GL_DONT_CARE);
Если вы планируете использовать строки, будут GL_LINE_SMOOTH и GL_LINE_SMOOTH_HINT.
В будущих проектах старайтесь не использовать столь сложные модели, если они находятся далеко от зрителя (делая столько срезов для сферы), это приведет к потере производительности.
Других решений пока нет …