Как настроить OpenGL с Visual Studio 2019 в Windows 10?

Опубликовано: 2 Сентября, 2022

OpenGL — это API 2D- и 3D-графики, который предоставляет кроссплатформенный интерфейс прикладного программирования для самых разных компьютерных платформ. Он не зависит от операционной системы и имеет прозрачную сеть. Разработчики приложений используют его для разработки высокопроизводительных и привлекательных графических приложений.

Предпосылки :

  • Visual Studio 2019 (скачать)

Монтаж:

Теперь давайте перейдем к настройке OpenGL. Для этого выполните следующие действия:

Шаг 1: Сначала нам нужно загрузить Visual Studio 2019 для Windows 10.

Шаг 2: Теперь мы установили Visual Studio2019 из загруженного файла .exe с помощью установщика Windows.

Выберите сообщество Visual Stdio 2019 и нажмите «Изменить», теперь выберите необходимые компоненты, как показано на изображении ниже, и нажмите « Установить» во время загрузки :

После завершения установки потребуется некоторое время, после чего перезагрузите компьютер.

Шаг 3:

  • Теперь загрузите заголовочный файл GLUT, файлы .LIB и .DLL, предварительно скомпилированные для платформ Intel, вы можете просто загрузить файл glutdlls37beta.zip с веб-сайта.
  • Файл внутри папки выглядит так:

Шаг 4: После этого мы должны скопировать файл, как указано ниже:

  • Сначала вставьте файл glut.h в:
C:Program Files (x86)Microsoft Visual Studio2019CommunityVCAuxiliaryVSincludegl
  • Затем вставьте glut.lib в:
 C:Program Files (x86)Microsoft Visual Studio2019CommunityVCAuxiliaryVSlibx64
  • Затем вставьте glut32.lib в:
C:Program Files (x86)Microsoft Visual Studio2019CommunityVCAuxiliaryVSlibx86
  • Затем вставьте glut.dll и glut32.dll в:
 C:WindowsSysWOW64
  • Наконец, скопируйте glut32.dll в:
C:WindowsSystem32 

Посмотрите видео по установке ниже:

Вот один пример кода для запуска, чтобы проверить, работает он или нет.

C++




#include <GL/glut.h>
#include<iostream>
using namespace std;
int rx = 100, ry = 125;
int xCenter = 250, yCenter = 250;
 
void myinit(void)
{
    glClearColor(1.0, 1.0, 1.0, 0.0);
    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
    gluOrtho2D(0.0, 640.0, 0.0, 480.0);
}
 
void setPixel(GLint x, GLint y)
{
    glBegin(GL_POINTS);
    glVertex2i(x, y);
    glEnd();
}
void ellipseMidPoint()
{
    float x = 0;
    float y = ry;
    float p1 = ry * ry - (rx * rx) * ry + (rx * rx) * (0.25);
    float dx = 2 * (ry * ry) * x;
    float dy = 2 * (rx * rx) * y;
    glColor3ub(rand() % 255, rand() % 255, rand() % 255);
    while (dx < dy)
    {
        setPixel(xCenter + x, yCenter + y);
        setPixel(xCenter - x, yCenter + y);
        setPixel(xCenter + x, yCenter - y);
        setPixel(xCenter - x, yCenter - y);
        if (p1 < 0)
        {
            x = x + 1;
            dx = 2 * (ry * ry) * x;
            p1 = p1 + dx + (ry * ry);
        }
        else
        {
            x = x + 1;
            y = y - 1;
            dx = 2 * (ry * ry) * x;
            dy = 2 * (rx * rx) * y;
            p1 = p1 + dx - dy + (ry * ry);
        }
    }
    glFlush();
 
    float p2 = (ry * ry) * (x + 0.5) * (x + 0.5) + (rx * rx) * (y
        - 1) * (y - 1) - (rx * rx) * (ry * ry);
    glColor3ub(rand() % 255, rand() % 255, rand() % 255);
    while (y > 0)
    {
        setPixel(xCenter + x, yCenter + y);
        setPixel(xCenter - x, yCenter + y);
        setPixel(xCenter + x, yCenter - y);
        setPixel(xCenter - x, yCenter - y);
        if (p2 > 0)
        {
            x = x;
            y = y - 1;
            dy = 2 * (rx * rx) * y;
            p2 = p2 - dy + (rx * rx);
        }
        else
        {
            x = x + 1;
            y = y - 1;
            dy = dy - 2 * (rx * rx);
            dx = dx + 2 * (ry * ry);
            p2 = p2 + dx -
                dy + (rx * rx);
        }
    }
    glFlush();
}
void display()
{
    glClear(GL_COLOR_BUFFER_BIT);
    glColor3f(1.0, 0.0, 0.0);
    glPointSize(2.0);
    ellipseMidPoint();
    glFlush();
}
int main(int argc, char** argv)
{
    glutInit(&argc, argv);
    glutInitWindowSize(640, 480);
    glutInitWindowPosition(10, 10);
    glutCreateWindow("User_Name");
    myinit();
    glutDisplayFunc(display);
    glutMainLoop();
    return 0;
}

Выход: