OpenGL运行环境搭建学习00篇【Related to https://learnopengl-cn.github.io/】
前情提要为什么是什么我主要实操的内容是Transformation几何变换3D 图形的基础操作就是把模型移动、旋转、放大缩小再调整相机视角让 3D 物体能正确、清晰地显示在屏幕上Illumination and Shading光照与着色模拟物体被光照亮的效果比如哪里亮、哪里暗、高光在哪里能让平面的模型瞬间变得立体、有真实质感Texture Mapping纹理映射给 3D 模型 “贴皮肤”比如木纹、图片贴纸、皮肤纹理不用手动画复杂的颜色就能让模型表面有丰富的细节Depth Transparency深度与透明效果前者解决 3D 物体前后遮挡错乱的问题后者实现半透明、叠加效果是让画面看起来真实、不穿帮的基础配置Ray Tracing光线追踪模拟真实世界里光线的传播、反射、折射能生成电影级别的逼真光影、镜面反射和透明效果使用的编译器/开发工具Visual Studio2022版链接:https://pan.baidu.com/s/1qU0JlTEJxXq7EfucDxW1ZQ?pwd1408 提取码:1408GLFW(Graphics Library Framework)_64位轻量级的跨平台库,主要用于创建OpenGL上下文、管理窗口和处理输入GLEW(OpenGL Extension Wrangler Library)_64位OpenGL扩展管理库,负责加载OpenGL规范中定义的扩展功能。GLM(OpenGL Mathematics)_1.0.3基于GLSL 语法风格的C数学库,提供线性代数计算功能注glm 是 header-only 库include 就能用不需要编译、不需要链接、不需要 CMake find_package。只要确保编译器能找到头文件路径就行。访问以下官网下载预编译库或源码自行编译GLFWhttps://www.glfw.org/GLEWhttp://glew.sourceforge.net/GLMhttps://glm.g-truc.net/我是用这种从GitHub获取最新Release版GLFWhttps://github.com/glfw/glfw/releasesGLEWhttps://github.com/Perlmint/glew-cmake/releasesGLMhttps://github.com/g-truc/glm/releases还有最重要的是搞清楚我们配置环境要怎么用方法一保存为项目模板推荐最省事步骤先把当前项目配置好包含目录、库目录、链接器都设好文件 → 导出模板选择项目模板→ 下一步模板名称填OpenGL_Project勾选自动导入到 Visual Studio→ 完成以后怎么用新建项目时plain文件 → 新建 → 项目 → 搜索 OpenGL_Project直接基于这个模板创建所有配置都自带。我主要是这样子用方法二保存属性表.props适合多个项目共享同一套配置但不想用模板。步骤视图 → 属性管理器或视图 → 其他窗口 → 属性管理器展开你的项目 → 右键Debug | x64→添加现有属性表...→ 没有就新建右键添加新属性表...→ 命名为OpenGL.props双击OpenGL.props打开在里面配置C/C → 常规 → 附加包含目录$(ProjectDir)include链接器 → 常规 → 附加库目录$(ProjectDir)lib链接器 → 输入 → 附加依赖项glfw3.lib;glew32.lib;opengl32.lib保存以后怎么用新建项目后视图 → 属性管理器右键Debug | x64→添加现有属性表...选择你保存的OpenGL.props配置自动生效方法三直接复制整个项目文件夹最简单粗暴适合作业把配置好的项目文件夹复制一份重命名文件夹和里面的.sln、.vcxproj用记事本批量替换文件名可选打开.sln直接改代码这个做作业会经常碰到别人或者老师给你直接发项目包我们起码要能看懂还有一个建议了解的环境配置文件属性软件安装和环境配置如何做同样我之前c盘空间富裕的时候下载过一次这次依旧找了一下有没有什么残留注册表总会伴随下载位置问题我也去查了一下安装前可以去删一下1.注册表按winR,输入regedit打开注册表输入或找到计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\Setup右键CachePath和SharedInstallationPath把这两个删除掉删除之后重新下载时可以修改“下载缓存和共享组件、工具和SDK”的位置。安装VS2022通过网盘分享的文件VisualStudio2022Setup.exe链接: https://pan.baidu.com/s/1w6dEONW2HeZAN23renKvXQ?pwd1408 提取码: 1408下载并打开setup应用程序这里我们继续这个setup将会安装一个installer软件通常会直接下载到C:\Program Files (x86)\Microsoft Visual Studio\Installer这个位置Installer是Visual Studio 安装程序的引导器和更新引擎它的路径被硬编码在注册表、Windows Installer 数据库和多个系统服务中。不推荐移动如果空间紧张Installer 目录里的packages缓存文件夹可以安全清理缓存。实在想移动可以考虑借助符号链接地址指向进入下方这个界面在工作负荷中找到“使用C的桌面开发”有其他需求斟酌下载安装位置我都修改到了D盘不过我没有全部修改到同一文件夹下如果想要更便捷的管理可以考虑统一路径文件夹比如标色建议同时省略下划线随便省略D:\Program Files\MicrosoftVisual Studio\2022\Community本体D:\Program Files\MicrosoftVisual Studio\2022\Packages缓存D:\Program Files\MicrosoftVisual Studio\2022\Shared共享修改完之后点击右下角下载时安装下载完成后弹出登录页面可以选择用GitHub或者微软账号登录。GitHub登录每次都都需要页面重定向会软件有点麻烦。选择喜欢的主题之后就进入项目创建页面了这里我已经打开过项目了配置OpenGl环境VisualStudio内紫色依赖蓝色创建一个VS空项目。“将解决方案文件与项目置于同一目录”这个根据自己需求勾选注勾选后解决方案文件.sln和项目文件.vcxproj放在同一层目录路径更短更清爽。单个项目建议勾选。单项目的解决方案就是一个包装纸里面只有一行地址指向真正的项目文件。它的存在是为了让 VS 的工程体系保持一致无论项目大小都能用同一套逻辑管理。这里地址也可以一并管理D:\Program Files\MicrosoftVisual Studio\2022\source\repos简单情况一个项目复杂情况多个项目简单情况勾选之后学 OpenGL 做单项目作业解决方案和项目几乎没区别。勾选放在同一目录就行在项目目录下新建文件夹 lib, include分别用于存放库文件和头文件。具体在哪就是与解决方案文件.sln同级别。OpenGL 本身不分 32/64 位但 GLFW、GLEW 等库分。由于GLFW64位预编译文件资料较少一般使用 32 位。我这里适应教学资源需求配置64位两者配置操作是一样的。准备依赖我这里先是下载编译好的后续会重新配置一次网盘也有以下安装文件压缩包可以考虑是否直接使用链接: https://pan.baidu.com/s/15SOEB-AYos73L0jHP27Wjg?pwd1408 提取码: 1408GLEWGLEW: The OpenGL Extension Wrangler LibraryGLFWDownload | GLFWGLM稍后配置把压缩包转移到项目目录下并解压内部结构如下左GLFW右GLEW可以看到解压后头文件需要的都复制在我们自己创建的头文件文件夹目录下解压后库文件需要的都复制在我们自己创建的库文件文件夹目录下转移好的文件夹长这样GLM也是一样的Releases · g-truc/glm下载最新版本的GLM源码库压缩包VS2022 默认是 C14如果用后续更新版本的glm可能需要调整C版本。解压之后只看到一个glm文件内部如下我们下载的是 GLM 源码仓库只需要glm/文件夹里的头文件。把整个glm/复制到项目的include/目录下就能用其他文件夹可以删掉。ok到这一步我们准备好了环境文件还需要把它们和项目进行链接和配置。项目配置用VS打开本项目右侧显示文件资源管理器。右击项目文件夹打开属性配置。配置VC目录此处的包含目录和库目录就是我们之前配置的“include”和“lib”文件我们需要进行行编辑添加添加不是覆盖添加新行即可选中点击右侧下拉菜单的编辑先添加新行然后选择对应文件夹即可链接库文件中的lib点击链接器打开输入目录看到附加依赖项同样操作添加项此处需要把所有lib文件名放进去glew32.libglew32s.libglfw3.libglfw3_mt.libglfw3dll.lib中间空的是shiftenter这里需要注意添加如图到这一步环境配置就结束了。那么我们如何使用或者后面怎么方便直接新建项目就可以用项目使用这里采用方法一保存为模板方便后续直接使用。存模板我们已经配置好环境接下来导出成模板。点击项目(P) → 导出模板(E)这里可以两种模板都保存各有各的用法。我选择了第一种项目模板唯一可惜的就是输出目录不能修改记得勾选自动将模板导入 Visual Studio。使用模板打开后新建项目就可以看到我们的模板了。项目针对使用模板依然有项目对应可以提前自查或者看是否有以下报错1.链接器错误LNK2019说明代码编译通过了但 VS 找不到 OpenGL 函数的库文件。核心原因是缺少opengl32.lib链接在之前的链接库列表添加即可2.运行时库冲突LIBCMT / MSVCRT(LNK4098)警告说明你的 GLEW 库和项目使用的运行时库类型不一致。如果 GLEW 是静态编译的/MT你的项目也要用/MT如果 GLEW 是动态编译的/MD你的项目也要用/MD所以我这个项目只需要1/2任选但是只能保留一个最后后续会使用2019或者2017配合cmake再次配置感谢观看使用顺利。