(第一章)OpGL超级宝典学习:配置和超级宝典相同的工作环境

news/2023/12/4 21:01:36

目录

  • 前言
  • 配套资源
  • 配置
    • 解压文件夹
    • 复制资源
  • HOWTOBUILD
    • 什么是CMake
    • 什么是GLFW
    • 安装CMake
  • 开始构建
    • build glfw
      • 生成debug和release的lib库
    • build sample
  • 推送
  • 结语

前言

最近发现学习好像到了一定的瓶颈,马上要到2023年了,想要在新的一年开始后对自己有一定的突破,加上想往TA上尝试发展一下,所以想要开始系统的学习OpenGL,遂新开一个专栏专门记录对OpenGL超级宝典,也就是蓝宝书的学习过程,预计第一遍的学习时间在3-5个月,加之过年,希望本专栏能够在来年6月份前能结束第一遍的学习记录,本文根据openGL超级宝典,配置和书中相同的开发环境,并成功的运行官方提供的演示示例

  • 注:学习本专栏需要拥有蓝宝书,电子版和纸质版均可,博主使用的第七版

配套资源

  • 下载地址

https://box.lenovo.com/l/Jonqdf

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ouATyLNu-1671767188526)(https://note.youdao.com/yws/res/11766/WEBRESOURCEdcb1942ce176eba1140ebb1eef958c21)]

  • sb7code-master

书中所有讲解的源码,可能和书中存在细微差距,基本相同

  • superbible7-media

示例用到的资源内容,shader、纹理等


配置

解压文件夹

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QORsjWWU-1671767188528)(https://note.youdao.com/yws/res/11778/WEBRESOURCE70549f1e8c7b12037df21a26b91fcce9)]

第一步解压两个文件夹


复制资源

在这里插入图片描述
在这里插入图片描述

将superbible7-media文件下的资源全部拷贝到sb7code-master目录下bin\media文件夹内


HOWTOBUILD

在这里插入图片描述

在源码根目录下有一个HOWTOBUILD文档,该文档描述了如何去构建项目,我们简单看一下

OpenGL SuperBible 7th Edition Examples - How to Build
=====================================================This source code archive uses CMake to build. The samples also use GLFW library, a
snapshot of which is included in the `extern` folder. It's also possible to use a different
copy of GLFW if desired, but that's an excercise for you. Instructions for each supported
platform are as follows:

开篇介绍了源码使用CMake去构建,并且使用了GLFW库


什么是CMake

  • 百度百科
https://baike.baidu.com/item/cmake/7138032?fr=aladdin

在这里插入图片描述

跨平台编译工具,可以编译源代码,制作程式库


什么是GLFW

  • 官方地址
https://www.glfw.org/

glfw是一个开源的openGL工具程序库

Windows / Microsoft Visual Studio 2013
--------------------------------------Install CMake. Windows binaries are available from http://www.cmake.org/.
Ensure that CMake is in your path.
Open a command prompt and change to the directory where you've checked out the code.### Build GLFWIf you are going to use the copy of GLFW included in the archive, enter the
GLFW directory in `extern/glfw-3.0.4`, and type:cmake -G "Visual Studio 12" .(Yes, that's not a mistake - Visual Studio 12 is 2013)Open the resulting GLFW.sln file in Visual Studio and build both the debug and release configurations.Copy and rename the resulting glfw3 libraries:* Copy `glfw-3.0.4/src/Debug/glfw3.lib` into the `lib` directory and **rename it to glfw3_d.lib**.
* Copy `glf3-3.0.4/src/Release/glfw3.lib` into the `lib` directory but don't rename it.### Build the samplesOpen a command prompt and change to the build directory in the source archive.
Type:cmake -G "Visual Studio 12" ..Open the resulting superbible7.sln project in Visual Studio.The examples will build into the `bin` directory.

这里我们是在windows上去做的测试,所以只看windows上和编译相关的内容即可


安装CMake

  • 官网
https://cmake.org/

在这里插入图片描述
在这里插入图片描述

博主选的版本是3.19.0,下载完成后一路安装,博主选择将CMake添加到环境变量里和创建了桌面图标

在这里插入图片描述

运行GUI后长这个样子


开始构建

build glfw

在这里插入图片描述

  • Browse Source

选择源码下的extern/glfw-3.0.4路径

  • Browse Build

选择源码下的extern/glfw-3.0.4/build路径,没有build文件夹就新建一个就行

依次点击Configure和Generate,生成解决方案


生成debug和release的lib库

  • 打开GLFW.slb

在这里插入图片描述

生成完毕后会在build文件夹生成sln的解决方案,打开GLFW.sln

  • 编译

![在这里插入图片描述](https://img-blog.csdnimg.cn/3d42c477694a43a49588640f33c24be5.png在这里插入图片描述

依次运行编译Debug和Release

  • 查看生成的lib

在这里插入图片描述

在build/src目录下会生成Debug和Release两个文件夹,目录下均有一个glfw3.lib文件

  • 拷贝

在这里插入图片描述

将两个glfw.lib拷贝到sb7code-master\lib目录下,根据HOWTOBUILD的要求,debug的lib重命名成glfw_d.lib


build sample

  • CMake构建

在这里插入图片描述

  • Browse Source

sb7code-master源码路径

  • Browse Build

sb7code-master源码路径下的build文件

和build Glfw类似,设置好source和build,依次点击Configure和Generate,生成解决方案

  • 查看生成的解决方案

在这里插入图片描述

构建完成后会在build文件下生成一大堆的文件,我们主要用的是superbible7.sln文件,这个文件是所有示例的入口文件

  • 编译示例

在这里插入图片描述

点开后直接点击运行,等待编译完成

  • 运行

在这里插入图片描述
在这里插入图片描述

编译完成后,选择右侧的其中一个例子,右键设置为启动项,然后运行,我们可以看到例子已经跑了起来


推送

  • Github
https://github.com/KingSun5

结语

若是觉得博主的文章写的不错,不妨关注一下博主,点赞一下博文,另博主能力有限,若文中有出现什么错误的地方,欢迎各位评论指摘。
本文属于原创文章,转载请著名作者出处并置顶!!


http://www.ppmy.cn/news/398985.html

相关文章

Toshiba笔记本运行FC5时屏幕亮度调节方法

自己用的NB是M30,当时为这个问题苦恼了几天,Toshiba是用软调节的方式来实现亮度调节的,而官网上也没有对应的linux程序可供使用,虽然有另一种方法是通过命令行来调节亮度, 显示当前亮度等级: cat /proc/acpi/toshiba/lcd 设置亮度等级:(我的机器默认是从0到7,一共8个等级,设高了…

办公大师系列经典丛书 诚聘译者

办公软件大家都用过,里边到底还藏着多少功能,估计只有看过办公大师系列经典丛书的人才能说得明白。CSDN博客频道携手清华大学出版社诚邀天才的你,翻译本书。 一、活动时间: 2013年11月25日至2013年12月25日(1个月&am…

年月日时分秒转时间戳C语言代码

测试记录 对比网站 https://tool.lu/timestamp/源文件 const uint8_t uDaysPerMonth[13] { 0,31,28,31,30,31,30 ,31,31,30,31,30,31}; uint32_t RTC_DecodeSec(DATE_STRUCT* pdate , int32_t offset ) {uint32_t Seconds;uint16_t uYear,usYear ;uint8_t uMonth;uint8_t f…

LaWGPT:你的私人法律顾问!

LaWGPT:你的私人法律顾问! LaWGPT 是一系列基于中文法律知识的开源大语言模型。 该系列模型在通用中文基座模型(如 Chinese-LLaMA、ChatGLM 等)的基础上扩充法律领域专有词表、大规模中文法律语料预训练,增强了大模型在…

【RH850/U2A】:GreenHills编译配置

GreenHills编译配置 GreenHills语法.gpj文件.opt文件示例GreenHills编译器在编译我们的文件时涉及它需要哪些文件及相关配置呢?带着疑问我们开始来梳理。 我们还是以具体示例来展开(硬件平台:RH850 U2A8) GreenHills语法 一般我们是需要查看它的帮助文档的,文档在哪里呢?…

云服务器搭建和连接

一、云服务器搭建和管理 1. 云服务器产品对比 云虚拟主机(Web Hosting)是一种网站托管服务。产品预装了常见网站开发语言的运行环境、数据库及管理工具,您可以通过云虚拟主机简单、低成本地发布托管网站。云服务器ECS(Elastic C…

apple pencil有买的必要吗?平板电容笔推荐平价

在当今时代,高科技已经成为推动电子产品发展的重要动力之一。无论是在工作上,还是在学习上,iPad平板的使用都很方便。iPad将会和我们的生活联系在一起,不管是现在还是未来。iPad配上一个简单的电容笔,不仅可以提高工作…

常用JVM命令

top 展示 进程运行的完整命令行的话可以用 top -c ,当命令行较长无法分辨是哪个程序,可使用键盘右键将窗口不断滑动至右侧查看。 uptime jps 查看当前正在运行的java进程 执行结果: pid 运行文件 [roottest1 ~]# jps 24001 rs-medical-rp…

JAVA并发十二连招

1、HashMap 面试第一题必问的 HashMap,挺考验Javaer的基础功底的,别问为啥放在这,因为重要!HashMap具有如下特性: HashMap 的存取是没有顺序的。 KV 均允许为 NULL。 多线程情况下该类安全,可以考虑用 Ha…

html相册代码大全

个人主页地址(含一些有趣的功能和一些效果的在线演示):皮小孩的个人主页 本文共有八个相册效果,照片可以替换成女朋友照片,背景音乐也可以换。可以去我的资源下载所有代码----->html相册代码大全 第一个代码有详细…

ai人工智能让女神_人工智能可能只会让你兴奋不已

ai人工智能让女神 The brain of a human being is far beyond what any machine is currently capable of. While it’s true that a computer can perform millions of calculation much faster than the human brain, humans can perform much more complex activities like …

prnnet 换脸

1070 256 一次需要 12s,效果没有美颜,有拼接痕迹。 import timeimport numpy as np import os from skimage.io import imread, imsave from skimage.transform import rescale, resize import argparsefrom api import PRN from utils.render import r…

Cache-主存效率问题

本文主要明确在软考中经常遇到的缓存效率问题。 第零,明确一个问题: 如果Cache不命中时,不同的系统有不同的应对策略。一是直接从主存中拿走待取数据,它的时间消耗仅仅是一个访问主存周期。二是把待取数据先拿回Cache&#xff0…

nc测试tcp/udp连通性

nc是netcat工具的命令&#xff0c;是一个很好用的网络工具。比如&#xff0c;可以用来端口扫描&#xff0c;文件传输等网络功能。实际命令是ncat。 参数说明&#xff1a; -g<网关> 设置路由器跃程通信网关&#xff0c;最多可设置8个。-G<指向器数目> 设置来源路由…

[开发|前端] dayjs获取月份和季度起始时间

获取季度起始日期 要获取季度的起始日期&#xff0c;可以使用Day.js的startOf方法结合quarter单位来实现。 下面是一个示例代码&#xff0c;演示如何使用Day.js获取当前季度的起始日期&#xff1a; const dayjs require(dayjs); require(dayjs/plugin/quarterOfYear); dayjs…

云平台 stm32连接阿里云2023最新版本保姆级别教学只看这一篇就够了~

注册账号 阿里云平台点击直达 点击控制台 鼠标悬浮会出现下拉栏 点击物联网 再点击物联网平台 点击公共实例 新用户需要开通 开通需要五分钟的时间 点击创建产品 蓝色显眼字体 参数设置 仔细比对下图 点击查看产品详情 蓝色显眼字体 点击功能定义 点击编辑草图 实际上就是定义…

Vue中如何进行图片识别与物体检测

Vue中如何进行图片识别与物体检测 随着人工智能技术的发展&#xff0c;图像识别和物体检测已经成为了很多应用场景的必备功能。在Vue中如何使用百度AI或腾讯AI等云服务实现图片识别和物体检测呢&#xff1f;本文将为您介绍一些基本概念和示例代码&#xff0c;帮助您快速入门。…

聚类分析(文末送书)

目录 聚类分析是什么 一、 定义和数据类型 聚类应用 聚类分析方法的性能指标 聚类分析中常用数据结构有数据矩阵和相异度矩阵 聚类分析方法分类 二、K-means聚类算法 划分聚类方法对数据集进行聚类时包含三个要点 K-Means算法流程: K-means聚类算法的特点 三、k-med…

超声波USS 温度补偿和降噪

车载超声波传感器主要用于测量与障碍物之间的距离&#xff0c;以辅助驾驶员进行停车或避免碰撞。然而&#xff0c;温度和噪声会影响超声波传感器的性能。为了获得准确的测量结果&#xff0c;需要对这些因素进行补偿和降噪。 温度补偿 温度会影响超声波在空气中的传播速度&…

HTML期末大作业:DIV简单的篮球网页制作期末作业 篮球明星科比js三级页面

&#x1f329;️ 精彩专栏推荐&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb; &#x1f482; 作者主页: 【进入主页—&#x1f680;获取更多源码】 &#x1f393; web前端期末大作业&#xff1a; 【&#x1f4da;HTML5网页期末作业 (1000套…
最新文章