【OpenGL】学习笔记#1

摘要:
然后,OpenGL会将这些数据组装成图元,把他们变成真正可用的数据。接下来OpenGL会对图元进行光栅化,把他们从图元变成一个个片元,接着片元着色器将会发生作用,对每一个片元进行处理,把没有颜色的片元变成五颜六色的像素。

没事干总要学点东西,这个系列的文章既是我的笔记,又是一篇教程(给我自己的教程),主干内容参考一篇国外教程,教程很粗略,但是代码不错,所以我借着它的脉络,补充网上的资料来扩充内容,每一句话都要理解是什么意思,还有实现的原理。不定期更新,国外教程网址在文末,有兴趣的同学可以去看看。

一、OpenGL简介

OpenGL是一套开放图形库API(的标准),因此可以跨平台,主要应用领域有医疗、工程、AR、电子游戏等领域,主要竞争对手是DirectX。

二、OpenGL环境配置

For Linux

由于种种原因,国内访问不了官网的网址,因此采用开源软件库Mesa,它的API与OpenGL兼容,只需要确保安装了下列库和软件:

cmake make g++ libx11-dev libxi-dev libgl1-mesa-dev libglu1-mesa-dev libxrandr-dev libxext-dev libxcursor-dev libxinerama-dev libxi-dev

(使用aptitude将会更智能的替你解决依赖关系)


For Windows

有glut软件包下一个即可

另外,无论是哪个平台,CMake都是绝佳的构建项目的工具,Qt Creator有内置的CMake支持!

三、OpenGL的渲染流程

1.VAO(Vertex Array Object顶点数组对象)和VBO(Vertex Buffer Object顶点缓冲区对象)

很久以前,OpenGL是只有VBO的......(才怪,OpenGL3.0就引入VAO了!)

简单的来说,VAO“高于”VBO,是VBO和OpenGL之间的一个抽象层,其中保存了顶点的颜色,深度,位置......属性,可以更便捷的操纵VBO而不用进行繁琐的重复操作。

2.Shader(着色器)
分为顶点着色器(Vertex Shader)和片元着色器(Fragment Shader
顶点着色器处理VBO(和VAO)提供的顶点信息,每一个VBO(VAO)都会执行一次顶点着色器。
然后,OpenGL会将这些数据组装成图元(prmitive),把他们变成真正可用的数据。
接下来OpenGL会对图元进行光栅化,把他们从图元变成一个个片元,接着片元着色器将会发生作用,对每一个片元进行处理,把没有颜色的片元变成五颜六色的像素。

3.交给GPU和CPU


学习笔记更新到#6+GLSL笔记

教程:http://www.opengl-tutorial.org/beginners-tutorials/

免责声明:文章转载自《【OpenGL】学习笔记#1》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇STM32一键下载电路设计原理转载:c++获取本机IP地址下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Drozer渗透测试工具(使用篇)

一、前言 这里主要以sieve.apk为测试应用,来展示Drozer的功能点,起到一个抛砖引玉的作用 二、获取所要测试的apk的完整包名 命令:run app.package.list -f 包名关键字示例:run app.package.list -f sieve 可见,sieve.apk的完整包名为:com.mwr.example.sieve,可为后面...

Windows 7 封装与定制不完全教程

Windows 7 封装与定制不完全教程 从定制Win7母盘到封装详细教程 手把手教你定制WIN7小母盘 Windows 7 封装与定制不完全教程 [教程] Windows 7 封装与定制不完全教程(一)(20110809)  ZS规则 发表于 2010-7-13 19:48:41 https://www.itsk.com/forum.php?m...

IOS内购支付服务器验证模式

IOS 内购支付两种模式: 内置模式 服务器模式 内置模式的流程: app从app store 获取产品信息 用户选择需要购买的产品 app发送支付请求到app store app store 处理支付请求,并返回transaction信息 app将购买的内容展示给用户 服务器模式的流程: app从服务器获取产品标识列表 app从app s...

苹果APP上架App Store审核被拒常见问题解释

苹果APP的审核是一道大难关,遇见被拒是很正常的事情,如果被拒就根据反馈问题,和下面提供的思路去寻求解决方案。 苹果审核大体分为三部分,预审、机审和人工审核。 ipa包上传后首先进入的是预审,会被扫描API等,预审通过后会在https://itunesconnect.apple.com/后台活动那出现构建版本,然后才可以提交审核(如果没通过,会有反馈...

QGIS的编译 (Windows)

一、资源 https://github.com/qgis/QGIS https://github.com/qgis/QGIS/blob/master/INSTALL.md 二、编译需求 Following a summary of the required dependencies for building: Required build tools:...

CI-持续集成(1)-软件工业“流水线”概述

CI-持续集成(1)-软件工业“流水线”概述 1   概述 持续集成(Continuous integration)是一种软件开发实践,即团队开发成员经常集成它们的工作,通过每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽早地发现集成错误 [1]。 持续集成 相当于将传统工...