visual stdio 2022 搭建OpenGL环境

环境

时间:2024年11月19日

环境:windows 11 基于visual stdio 2022开发 64位

提前新建 visual stdio项目 假设opengl-2

建好这三者目录dll include lib 

下载glfw

        GLFW是一个专门针对OpenGL的C语言库,它提供了一些渲染物体所需的最低限度的接口。它允许用户创建OpenGL上下文、定义窗口参数以及处理用户输入,对我们来说这就够了。

一定要根据系统选择x64还是x32,vs x86 = x32

下载 |GLFW --- Download | GLFW

头文件和库

 cp include 选择2022 cp lib和dll

 GLAD

GLAD 是一个开源的 OpenGL 加载器库,它可以帮助我们加载 OpenGL 函数的地址,使我们能够在运行时调用 OpenGL 函数。

GLAD 的主要作用是:

  1. 跨平台: GLAD 能够适应不同的操作系统和 OpenGL 版本,帮助我们编写跨平台的 OpenGL 代码。

  2. 动态加载: GLAD 可以在运行时动态地加载 OpenGL 函数的地址,而不需要在编译时链接 OpenGL 动态库。这使得程序更加灵活和可移植。

  3. 统一接口: GLAD 提供了一个统一的接口来加载 OpenGL 函数,隐藏了底层的复杂性,使我们可以专注于 OpenGL 的使用而不必关心具体的加载过程。

glad.dav1d.de

配置

cp include到项目中include,src/glad.c加入到项目中

#include <glad/glad.h> 

vs项目配置

链接库和导入头文件

glfw3.lib
opengl32.lib

 最终项目配置

测试程序

#include<iostream>
#include<glad/glad.h>
//#include<GL/glew.h>
#include<GLFW/glfw3.h>

using namespace std;
int main(int argc, char** argv[])
{
	glfwInit();
	glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
	glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3);
	glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
	//glfwWindowHint(GLFW_RESIZABLE,GL_FALSE);

	GLFWwindow* window = glfwCreateWindow(800, 600, "LearnOpenGL", nullptr, nullptr);
	if (window == nullptr)
	{
		cout << "Failed to create GLFW window" << endl;
		glfwTerminate();
		return -1;
	}
	glfwMakeContextCurrent(window);
	if (!gladLoadGLLoader((GLADloadproc)glfwGetProcAddress))
	{
		cout << "Failed to create GLFW window" << endl;
		return -1;
	}
	while (!glfwWindowShouldClose(window))
	{
		glClearColor(0.2f, 0.3f, 0.3f, 1.0f);
		glClear(GL_COLOR_BUFFER_BIT);
		glfwPollEvents();
		glfwSwapBuffers(window);

	}
	glfwTerminate();
	return 0;
}

学习资料分享

0voice · GitHub

<think>嗯,用户想了解计算机图形学与Visual Studio的关系以及如何使用VS Studio进行开发。首先,我需要明确计算机图形学和VS Studio各自的定位。计算机图形学是研究如何在计算机中表示和处理图形的科学,而VS Studio是一个强大的集成开发环境(IDE),主要用于编写、调试和部署代码。用户可能想知道如何在VS Studio中搭建图形学开发环境,或者有哪些具体的项目示例。 接下来,我应该结合用户提供的引用内容。引用[2]提到了使用MFC进行三维图形开发,而引用[3]和[4]分别涉及MFC示例和OpenGL环境搭建。这说明用户可能对不同的图形库和框架感兴趣,比如MFCOpenGL。需要比较这些技术在VS Studio中的应用方法。 用户的问题包括两者之间的关系和使用方法。首先,计算机图形学在VS Studio中通常通过特定库或API实现,如OpenGL、DirectX或MFC。需要分步骤说明如何配置环境,比如安装必要的库、设置项目属性等。例如,引用[4]提到OpenGL的跨平台性,可以指导用户如何在VS Studio中配置OpenGL项目。 此外,用户可能需要具体的示例,比如使用MFC绘制基本图形或使用OpenGL渲染3D对象。引用[2]和[3]提供了MFC的相关资源,可以建议用户参考这些示例代码。同时,引用[4]中的开发环境搭建步骤也是关键,需要详细说明安装NuGet包、包含头文件等操作。 还需要考虑用户可能的困惑点,比如库的配置、项目设置错误等。应该提示常见问题及解决方法,例如确保库路径正确、链接器设置等。此外,区分不同技术栈的适用场景,比如MFC适合Windows桌面应用,而OpenGL更适合跨平台3D渲染。 最后,生成相关问题时要围绕开发环境搭建、库的选择、调试技巧和性能优化等方面,帮助用户进一步探索。例如,如何调试图形程序,或者如何提升渲染效率。</think>### 计算机图形学与Visual Studio的开发方法与示例 #### 一、计算机图形学与VS Studio的关系 计算机图形学的开发需要依赖编程语言(如C++)和图形库(如OpenGL、DirectX)。Visual Studio(简称VS)作为集成开发环境(IDE),提供代码编辑、调试和编译工具,是计算机图形学开发的常用平台。例如,在VS中可以通过MFC框架实现二维图形变换[^3],或使用OpenGL开发跨平台三维应用[^4]。 #### 二、开发方法 1. **环境搭建** - **安装VS Studio**:选择C++开发工作负载,确保包含Windows SDK和NuGet包管理器。 - **配置图形库**: - **OpenGL**:通过NuGet安装`nupengl.core`包,或手动链接`glut32.lib`和`glu32.lib`[^4]。 - **MFC图形开发**:在创建项目时选择“MFC应用程序”,使用`CDC`类实现绘图功能[^3]。 2. **代码示例(MFC图形绘制)** 以下代码演示在MFC视图类中绘制一个红色三角形: ```cpp void CMyView::OnDraw(CDC* pDC) { CPen pen(PS_SOLID, 2, RGB(255, 0, 0)); pDC->SelectObject(&pen); pDC->MoveTo(100, 100); pDC->LineTo(200, 100); pDC->LineTo(150, 200); pDC->LineTo(100, 100); } ``` 3. **OpenGL示例** 使用OpenGL在VS中渲染立方体需以下步骤: ```cpp #include <GL/glut.h> void display() { glClear(GL_COLOR_BUFFER_BIT); glutWireCube(0.5); // 绘制线框立方体 glFlush(); } int main(int argc, char** argv) { glutInit(&argc, argv); glutCreateWindow("OpenGL Demo"); glutDisplayFunc(display); glutMainLoop(); return 0; } ``` #### 三、关键技术与调试技巧 - **图形管线调试**:使用VS的图形调试器(Graphics Debugger)分析DirectX/OpenGL渲染流程。 - **数学库支持**:通过`<glm/glm.hpp>`实现矩阵变换,例如模型视图投影矩阵计算: $$ MVP = Projection \times View \times Model $$ #### 四、典型应用场景 - **MFC开发**:适合工业设计软件中的二维图纸编辑[^2] - **OpenGL开发**:适用于游戏引擎、三维建模工具
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值