OpenGL红宝书gl3库配置和其他一些内容

本文详细介绍了在本地电脑上编译gl3w、glfw等库的方法,强调了Python和网络连接的重要性。解析了红宝书中app_time()函数的使用,并提供了实例调试技巧。同时,警告了glad、glew、gl3w三者不可同时使用的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

gl3w, glfw之类的 这些都是必须本电脑编译出来的才可以正常使用

  • 只简要说下gl3w, 编译gl3w时必须要装有python, 试了很多次
    如果不联网启动 gl3w_gen.py
    用CMake编译一定会有问题
    即使编译过去了, 之后生成也会有问题

最新的gl3w库和红宝书的资源有一点点不一样, 只要改几个include的地方
就可以, 比如LoadShader.h LoadShader.cpp vbm.h vbm.cpp
使用gl3w 只要include<GL/gl3w.h>
include<gl3w.c>
gl3w.c只需要在main程序的cpp文件里包含就够了

之后就是关于红宝书示例里常用的app_time()函数
原型如下
unsigned int app_time(){
ULONGLONG currentTime = ::GetTickCount64();
return (unsigned int)(currentTime - m_appStartTime);
}
其中 m_appStartTime
声明是 unsigned long long m_appStartTime;
只要在使用app_time()之前将它赋值就和原书里的效果一样了
m_appStartTime = ::GetTickCount64();

如果试验到第三章instance的实例时, 什么都不显示
可以试一下把窗体的边框拉大或者拉小一点
如果有图像了, 只要’在渲染循环之前’ 初始化以下aspect
因为投影矩阵里算上了这个参数

再还有glad glew gl3w 这3个库只能同时选择其中一个, 功能是差不多的
无论哪两个同时包含了都会报一大堆的错误,
而且必须include在glfw之前
比如 #include<GLFW/glfw3.h>这个不能先包含
#include<glad/glad.h>
#include<glad.c>
这样是会有错误的

  • 红宝书还是有点难的, 很多地方讲得有点深, 比如管理缓存得策略, 比如用block传递数据 spir-v, instance,
    不过耐心学下去, 一定会有不少收获

希望能给别人带来点点帮助

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值