欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Visual Studio2019配置OpenGL

程序员文章站 2022-03-22 12:43:04
...

一、安装c++开发组件和NuGet包管理器

1、打开Visual Studio Installer软件进行修改:
Visual Studio2019配置OpenGL
2、点击修改:
Visual Studio2019配置OpenGL
3、勾选C++的桌面开发:
Visual Studio2019配置OpenGL
4、勾选NuGet包管理器:
Visual Studio2019配置OpenGL

二、配置OpenGL

下载地址:https://www.opengl.org/resources/libraries/glut/glutdlls37beta.zip
网盘链接:https://pan.baidu.com/s/1O0eFXG-EPDR_9PzD0se1qg 提取码:7dmk

下载压缩包解压后有如下文件:
Visual Studio2019配置OpenGL
只要将文件放入对应的文件夹即可:
①将glut.h放入C:\Program Files (x86)\Microsoft Visual Studio\community\VC\Tools\MSVC\14.24.28314\include\gl
②将glut.lib和glut32.lib放入…\Microsoft VisualStudio\community\VC\Tools\MSVC\14.24.28314\lib\x86
③将glut.dll和glut32.dll放入C:\Windows\SysWOW64

注:
①如果没有gl文件夹,就新建一个
②windows是64位的,按上述操作即可,如果是32位的,就将glut.dll和glut32.dll放入C:\Windows\System32

3. 新建OpenGL项目

1、打开Visual Studio2019,选择创建新项目:
Visual Studio2019配置OpenGL
2、选择Windows桌面向导:
Visual Studio2019配置OpenGL
3、勾选空项目:
Visual Studio2019配置OpenGL
4、选择“工具-NuGet包管理-管理解决方案的NuGet程序包”,并在浏览中搜索“nupengl”
Visual Studio2019配置OpenGL
5、nupengl.core和nupengl.core.redist都要安装:
Visual Studio2019配置OpenGL
这样就已经配置成功了,然后可以在刚刚创建的项目中新建.cpp文件进行代码测试。

下面附上demo:

#include <stdlib.h>
#include <GL/glut.h>
 
void init(void)
{	
    glEnable(GL_DEPTH_TEST);  	

    GLfloat position[] = {1.0, 1.0, 1.0, 0.0};	
    glLightfv(GL_LIGHT0, GL_POSITION, position);
    glEnable(GL_LIGHTING);	
    glEnable(GL_LIGHT0); 	

    GLfloat ambient[] = {0.0, 0.0, 0.0, 1.0};	
    GLfloat diffuse[] = {0.5, 0.5, 0.5, 1.0};	
    GLfloat specular[] = {1.0, 1.0, 1.0, 1.0};	
    glMaterialfv(GL_FRONT, GL_AMBIENT, ambient);	
    glMaterialfv(GL_FRONT, GL_DIFFUSE, diffuse);	
    glMaterialfv(GL_FRONT, GL_SPECULAR, specular);	
    glMaterialf(GL_FRONT, GL_SHININESS, 50.0);
} 

void display(void)
{	
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);	
    glNewList(1, GL_COMPILE);	
    glutSolidTeapot(0.5);	
    glEndList();	
    glCallList(1); 	

    glFlush();
}

void reshape(GLsizei w, GLsizei h)
{	
    glViewport(0, 0, w, h);	
    glMatrixMode(GL_PROJECTION);	
    glLoadIdentity();	
    glOrtho(-1.0, 1.0, -1.0, 1.0, -1.0, 1.0);	
    glMatrixMode(GL_MODELVIEW);
} 

int main(int argc, char** argv)
{	
    glutInit(&argc, argv);	
    glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB | GLUT_DEPTH);
    glutInitWindowPosition(0, 0);	
    glutInitWindowSize(300, 300);	
    glutCreateWindow(argv[0]);	
    init();	
    glutReshapeFunc(reshape);	
    glutDisplayFunc(display);	
    glutMainLoop();	
    return 0;
}