当前位置: 首页 > article >正文

C++/Opengl编程实践

一、OpenGL编程前提

图形编程是以来显卡的,其程序分为两部分,一部分是用C++/java语言编写运行在CPU上的,另一部分是使用着色器语言(GLSL)编写,运行在GPU上的。

1. 需要使用的编程语言及三方库

OpenGL是一个底层无关的图形库,也是一个标准,定义了图形API,用来操作系统底层的图形操作。

使用C++语言调用opengl库来进行图形编程,需要配置多个库,主要包括以下:

  • C++开发环境

  • Opengl/GLSL

  • 窗口管理库

  • 扩展库

  • 数学库

  • 纹理图像加载库

(1) C++开发环境

windows系统下推荐使用Visual Studio 2022;Linux 推荐使用VSCode/Clion;Mac上推荐使用Xcode.

VS2022安装:https://www.zhihu.com/zvideo/1463954977064001537?utm_id=0

(2) OpenGL/GLSL

进行opengl编程,需要确保安装显卡,且显卡驱动程序中的openg版本不低于4.3

可以使用GLView检测本机opengl版本,下载链接:https://www.geeks3d.com/dl/show/10097

使用教程:https://blog.csdn.net/qq_51355375/article/details/140570428

(3) 窗口管理库

OpenGL绘制的内容并不能直接显示在计算机屏幕上,而是渲染到GPU显存上的一个帧缓冲区上。因此从帧缓存区将绘制的内容显示到屏幕上需要借助第三方库。目前主流使用GLFW,其源码下载:https://www.glfw.org/,需要使用CMake进行本地编译.

(4) 扩展库

opengl包含基本功能和拓展功能,一般要使用扩展功能,需要调用opengl和心中一系列的命令来实现,逻辑太复杂,为了编译调用opengl的扩展功能,可以使用第三方库(我理解就是对opengl调用过程进行了封装的库)如Glee、GLLoader、GLEW、GLAD等,这里选择使用GLEW。

GLEW下载地址:https://glew.sourceforge.net/

(5) 数学库

3D图形编程会使用到大量的向量和矩阵运算,可以使用OpenGL Mathematics(GLM)库,它所有的定义及实现均在头文件中,引用头文件就可以使用

且GLM遵循和GLSL相同的命名惯例,使用起来更方便。

源码地址:https://github.com/g-truc/glm

(6) 纹理图像加载库

使用SOIL2加载纹理图像资源,其支持加载各种格式的图像文件,且跨平台

安装指南:https://blog.csdn.net/gitblog_07032/article/details/142225284

(7) 模型导入库

Assimp or tinyobiloader


http://www.kler.cn/a/376466.html

相关文章:

  • CDN加速实战:使用七牛云CDN加速阿里云OSS资源访问
  • 安卓内核内存回收
  • 什么是无限钱包系统?有什么优势?
  • 034_Structural_Transient_In_Matlab结构动力学问题求解
  • 【算法+C#】重写HashCode,去重相同坐标的二维点
  • Latex中Reference的卷号加粗的问题
  • 代码随想录一刷——350.两个数组的交集II
  • 024集——CAD 动态显示图形——ed.Redraw(ent)实现(CAD—C#二次开发入门)
  • 初探Flink的序列化
  • centos7 zabbix监控nginx的pv和uv和status_code
  • 无法启动此程序win10玩游戏找不到d3dx9_43.dll缺失的五种常用有效解决方法
  • el-table 修改高亮行样式
  • 基于 Flask 的 Python 应用程序,主要功能包括用户认证、文件上传(CSV 和图片)、图像文字识别(OCR)以及根据识别结果进行一些数据处理和比对
  • [MySQL]DQL语句(一)
  • SRS:构建实时免费视频服务器的全方位指南
  • 使用Nginx作为Web服务器和反向代理
  • Webserver(2.4)进程控制
  • 2024 手机解压缩软件评测与推荐
  • 【ROS2】文档、教程、源码汇总
  • Android——横屏竖屏
  • 视频怎么进行格式转换?6款视频转换MP4格式的免费软件!
  • 【sqlmap使用手册-持续更新中】
  • 安装xtrabackup备份mysql
  • python项目实战 查询手机号码归属地源码
  • Node.js:Express 服务 路由
  • 工控一体机行业前景:智能化、自动化与高效能