目录

  • 一、相关书籍
    • OpenGL 方面
    • C方面
    • NDK
    • 线性代数
  • 二、相关博客
    • 2.0 一些比较官方的链接
    • 2.1 OpenGL着色器语言相关
    • 2.2 [【yfan】](https://segmentfault.com/u/yfan)博主相关的链接
    • 2.3 [【湖广午王】](https://blog.csdn.net/junzia/category_9269184.html)博主相关的链接
    • 2.4【[zhxmdefj](https://www.cnblogs.com/zhxmdefj/)】博主相关的链接
    • 2.5 【[TwinklingStar](http://www.twinklingstar.cn/category/opengl/)】博主相关的链接
    • 2.6【[妈妈说女孩子要自立自强](https://blog.csdn.net/candycat1992/category_2912027.html)】博主相关的链接
    • 2.7 【[字节流动](https://blog.csdn.net/kennethdroid/category_9120765.html)】 博主相关的链接
      • 2.7.1 基础篇
      • 2.7.2 应用篇
    • 2.8 【[蓬篙人](https://www.jianshu.com/u/f10b6a288780)】 博主相关的链接
    • 2.9 其他
    • 2.10 世界、视图和投影变换矩阵
  • 三、Github
  • 四、一些比较好的视频教程
  • 五 、本人学习OpenGL的资料

PS: 加一个本人自己的专栏推荐:渲染技术:OpenGL ES、Filament
这个月在学习OpenGL方面的知识,这期间看过的一些书籍、一些博客、一些代码,在这里汇总一下。

原文地址为:【我的OpenGL学习进阶之旅】【持续更新】关于学习OpenGL的一些资料 (https://ouyangpeng.blog.csdn.net/article/details/120481319)

  • OpenGL ES(OpenGL for Embedded Systems) 是以手持和嵌入式设备为目标的高级3D图形应用程序编程接口(API)。

  • OpenGL ES是当今智能手机中占据统治地位的图像API,其作用范围已经扩展到桌面。

  • OpenGL ES支持的平台包括iOS,Android,BlackBerry、bada、Linux和Windows,它还是基于浏览器的3D图形Web标准WebGL的基础。

  • 实际上,使用Android 4.3以上版本的设备和使用iOS 7的iPhone 5s已支持OpenGL ES 3.0。

Android 可通过开放图形库 (OpenGL®)(特别是 OpenGL ES API)来支持高性能 2D 和 3D 图形。OpenGL 是一种跨平台的图形 API,用于为 3D 图形处理硬件指定标准的软件接口。OpenGL ES 是 OpenGL 规范的一种形式,适用于嵌入式设备。Android 支持多版 OpenGL ES API:

 *   OpenGL ES 1.0 和 1.1 - 此 API 规范受 Android 1.0 及更高版本的支持。*   OpenGL ES 2.0 - 此 API 规范受 Android 2.2(API 级别 8)及更高版本的支持。*   OpenGL ES 3.0 - 此 API 规范受 Android 4.3(API 级别 18)及更高版本的支持。*   OpenGL ES 3.1 - 此 API 规范受 Android 5.0(API 级别 21)及更高版本的支持。
  • OpenGL ES 3.0向后兼容OpenGL ES 2.0,也就是说,为OpenGL ES 2.0编写的应用程序在OpenGL ES 3.0中可以继续使用。

一、相关书籍

OpenGL 方面

  • 《OpenGL编程指南(原书第9版)》

  • OpenGL ES 3.0 Programming Guide

【OpenGL ES 3.0 Programming Guide 对应的源代码】

对应的中文版本: 《OpenGL ES 3.0编程指南(原书第2版) 》

  • 《OpenGL SuperBible》

《OpenGL超级宝典第七版》

  • Unity Shader入门精要


本书不仅要教会读者如何使用 Unity Shader,更重要的是要帮助读者学习 Unity 中的一些渲染机制以及如何使用 Unity Shader 实现各种自定义的渲染效果,希望这本书可以为读者打开一扇新的大门,让读者离制作心目中杰出游戏的心愿更近一步。

本书的主要内容为:
第 1 章讲解了学习 Unity Shader 应该从哪里着手;
第 2 章讲解了现代 GPU 是如何实现整个渲染流水线的,这对理解 Shader 的工作原理有着非常重要的作用;
第 3 章讲解 Unity Shader 的实现原理和基本语法;
第 4 章学习 Shader 所需的数学知识,帮助读者克服学习 Unity Shader 时遇到的数学障碍;
第 5 章通过实现一个简单的顶点 / 片元着色器案例,讲解常用的辅助技巧等;
第 6 章学习如何在 Shader 中实现基本的光照模型;
第 7 章讲述了如何在 Unity Shader 中使用法线纹理、遮罩纹理等基础纹理;
第 8 章学习如何实现透明度测试和透明度混合等透明效果;
第 9 章讲解复杂的光照实现;
第 10 章讲解在 Unity Shader 中使用立方体纹理、渲染纹理和程序纹理等高级纹理;
第 11 章学习用 Shader 实现纹理动画、顶点动画等动态效果;
第 12 章讲解了屏幕后处理效果的屏幕特效;
第 13 章使用深度纹理和法线纹理实现更多屏幕特效;
第 14 章讲解非真实感渲染的算法,如卡通渲染、素描风格的渲染等;
第 15 章讲解噪声在游戏渲染中的应用;
第 16 章介绍了常见的优化技巧;
第 17 章介绍用表面着色器实现渲染;
第 18 章讲解基于物理渲染的技术;
第 19 章讲解在升级 Unity 5 时可能出现的问题,并给出解决方法;
第 20 章介绍许多非常有价值的学习资料,以帮助读者进行更深入的学习。

本书适合 Unity 初学者、游戏开发者、程序员,也可以作为大专院校相关专业师生的学习用书,以及培训学校的培训教材。

下载地址:(建议阅读原文直接下载)

链接: https://pan.baidu.com/s/1eTGEMem 密码: 2bpw

  • 细说图形学渲染管线
    https://positiveczp.github.io/%E7%BB%86%E8%AF%B4%E5%9B%BE%E5%BD%A2%E5%AD%A6%E6%B8%B2%E6%9F%93%E7%AE%A1%E7%BA%BF.pdf

C方面

  • 《C Primer Plus (Sixth Edition) 》

对应的中文版 《C Primer Plus第6版》

《C Primer Plus第6版中文版》是一本经过仔细测试、精心设计的完整C语言教程,它涵盖了C语言编程中的核心内容。作为计算机科学的经典著作,讲解了包含结构化代码和自顶向下设计在内的程序设计原则。

作者把基础的编程概念与C语言的细节很好地融合在一起,并通过大量短小精悍的示例同时演示一两个概念,通过学以致用的方式鼓励读者掌握新的主题。每章末尾的复习题和编程练习题进一步强化了最重要的信息,有助于读者理解和消化那些难以理解的概念。

此书采用了友好、易于使用的编排方式,不仅适合打算认真学习C语言编程的学生阅读,也适合那些精通其他编程语言,但希望更好地掌握C语言这门核心语言的开发人员阅读。是学习C语言的必备书籍。

  • 《C++Primer Plus (Sixth Edition) 》

对应的中文版《C++ Primer Plus第6版中文版》

一本经久不衰的C++畅销经典教程
首本支持C++11新标准的程序设计图书

《C++ Primer Plus第6版中文版》被誉为“开发人员学习C++的必备教程,没有之一”,可以说是一本面向从未学习过C语言甚至是从未学习过编程的人的入门书籍,它的首章从基础内容讲起,先介绍了传统编程的规则,后面才着重讲解有关面向对象——C++的精髓之一——的有关内容。

整个书的结构安排较为合理,难度爬升较慢。如果你是一个从未学过C语言(或者压根没学会C)的读者,那么,我相信这本书更适合你。当然如果有了C语言的基础,那学起来更是如虎添翼,效果更佳。

NDK

线性代数

《线性代数的几何意义》

二、相关博客

2.0 一些比较官方的链接

  • 西川善司 3D图形技术 原文1-99回

  • GAMES101: 现代计算机图形学入门

  • 【OGL dev】

  • 【Learn OpenGL ES】

  • 【Learn Opengl -CN】

  • 【LearnOpenGL 源代码】

  • 【LearnCpp】

  • 【Android开发者-OpenGL ES 】

  • 【An Introduction to Modern OpenGL Programming】

  • 【OpenGL ORG】

  • 【OpenGL Registry】

  • 【OpenGL ES 2.0 API Quick Refrence Card】

  • 【OpenGLES 与 EGL 基础概念】

  • 【3D计算器】

  • 【OpenGL API Documentation】

  • 【OpenGL ES 2.0 API Reference Guide】

  • 【OpenGL ES 3.0 API Reference Guide】

  • 【OpenGL ES 3.1 API Reference Guide】

  • 【OpenGL ES 3.2 API Reference Guide】

  • The OpenGLRendering Pipeline

  • The Graphics Pipeline and OpenGL

  • 【OpenGL ES SDK for Android】

  • 【OpenGL】

  • 【opengl-tutorial】

2.1 OpenGL着色器语言相关

  • 【Shadertoy - 国外着色器(Shader)源码分享网站】
  • 【GLSL SANDBOX】
  • 【OpenGL着色器(Shader)和GLSL语言的简单介绍】
  • 【OpenGL Shading Language】
  • 【GLSL 中文手册】
  • 【OpenGL日常-着色器】
  • 【GLSL 中文手册】

2.2 【yfan】博主相关的链接

2.3 【湖广午王】博主相关的链接

微型渲染器,了解OpenGL的工作原理

2.4【zhxmdefj】博主相关的链接

2.5 【TwinklingStar】博主相关的链接

2.6【妈妈说女孩子要自立自强】博主相关的链接

2.7 【字节流动】 博主相关的链接

2.7.1 基础篇

  • OpenGL ES 3.0 开发(01):绘制一个三角形

  • OpenGL ES 3.0 开发(02):纹理映射

  • OpenGL ES 3.0 开发(03):YUV 渲染

  • OpenGL ES 3.0 开发(04):VBO、EBO 和 VAO

  • OpenGL ES 3.0 开发(05):FBO 离屏渲染

  • OpenGL ES 3.0 开发(06):EGL

  • OpenGL ES 3.0 开发(07):Transform Feedback

  • OpenGL ES 3.0 开发(08):坐标系统

  • OpenGL ES 3.0 开发(09):光照基础

  • OpenGL ES 3.0 开发(10):深度测试

  • OpenGL ES 3.0 开发(11):模板测试

  • OpenGL ES 3.0 开发(12):混合

  • OpenGL ES 3.0 开发(13):实例化(Instancing)

  • OpenGL ES 3.0 开发(14):粒子(Particles)

  • OpenGL ES 3.0 开发(15):立方体贴图(天空盒)

  • OpenGL ES 3.0 开发(16):相机预览

  • OpenGL ES 3.0 开发(17):相机基础滤镜

  • OpenGL ES 3.0 开发(18):相机 LUT 滤镜

  • OpenGL ES 3.0 开发(19):相机抖音滤镜

  • OpenGL ES 3.0 开发(20):3D 模型

  • OpenGL ES 3.0 开发(21):3D 模型加载和渲染

  • OpenGL ES 3.0 开发(22):PBO

  • OpenGL ES 3.0 开发(23):多重渲染目标(MRT)

  • OpenGL ES 3.0 开发(24):帧缓冲区位块传送(Blit)

  • OpenGL ES 3.0 开发(25):TBO(GLES 3.1)

  • OpenGL ES 3.0 开发(26):UBO(GLES 3.2)

2.7.2 应用篇

  • Android OpenGL ES 实现心动特效

  • Android OpenGL ES 实现瘦身大长腿效果

  • Android OpenGL ES 绘制贝塞尔曲线

  • Android OpenGL ES 实现瘦脸大眼效果

  • Android OpenGL ES 实现头部形变和头部晃动效果

  • Android OpenGL ES 实现实时音频的可视化

  • Android OpenGL ES 实现刮刮卡和手写板功能

  • Android OpenGL ES 实现 3D 阿凡达效果

  • Android OpenGL ES 实现动态(水波纹)涟漪效果

  • Android OpenGL ES 调试工具

  • Android OpenGL ES 传输超大数组给着色器程序

  • 面试中经常被问到的 OpenGL ES 对象,你知道的有哪些?

  • Android OpenGL ES 渲染图像读取哪家强

  • 利用 OpenGL ES 给视频播放器和相机做个字符画滤镜

  • 使用 OpenGL 实现 RGB 到 YUV 的图像格式转换

  • OpenGL ES 共享上下文时,可以共享哪些资源?

  • OpenGL ES 文字渲染方式有几种?

  • OpenGL ES 文字渲染进阶:渲染中文字体

  • OpenGL ES + 人像抠图实现人像留色

  • OpenGL ES + GLTranslations 实现各种图像转场效果

  • OpenGL ES 实现抖音传送带特效

2.8 【蓬篙人】 博主相关的链接

2.9 其他

  • 【opengl各个坐标系理解与转换公式】

  • 【OpenGL-坐标系】

  • 【视觉OpenGL、OpenGLES、Metal】

  • 【OPENGL ES 2.0 知识串讲(1)――OPENGL ES 2.0 概括】

  • 【当一个 Android 开发玩抖音玩疯了之后(二)】,对应的代码 【xue5455/VideoAudioDemo】

  • Android OpenGL Camera 2.0 实现 30 种滤镜和抖音特效

  • Android FFmpeg 音视频开发教程

  • 【专栏 - OpenGL ES 3.0实践】

  • 【专栏-opengl】

  • 【专栏-OpenGL ES 3.0实践】

  • 【专栏- OpenGL学习脚印】

  • 【OpenGL相关知识】


  • 【Android 绘制透明视频 TransparentVideo】
  • ANDROID IOS 播放透明视频 直播时炫酷的刷屏礼物的实现一种方式

  • Android OpenGL ES(八) - 简单实现绿幕抠图

  • opengl进行绿色屏幕抠图

  • Android OpenGLES Camera2绿幕抠图

  • 【glumes的OpenGL学习专题】

2.10 世界、视图和投影变换矩阵

  • https://open.gl/transformations

  • Article - World, View and Projection Transformation Matrices

  • 这次,彻底搞懂 OpenGL 矩阵转换

  • 卡通渲染(上):致从没看懂过着色器代码的你

  • OpenGL学习脚印: 坐标变换过程(vertex transformation)

  • 3D图形学中的矩阵变换(一)

  • 3D图形学中的矩阵变换(二)

  • 3D图形学中的矩阵变换(三)

三、Github

  • 【OpenGL ES 3.0 Programming Guide 对应的源代码】

  • 【Canber/OpenGL-ES-for-android】

  • 【learnopengles/Learn-OpenGLES-Tutorials】

  • 【LearnOpenGL-CN/LearnOpenGL-CN】

  • 【湖广午王的 doggycoder/AndroidOpenGLDemo】

  • 【markusfisch/ShaderEditor】

  • 【wshxbqq/GLSL-Card】

  • 【xue5455/VideoAudioDemo】

  • 【stevensona/shader-toy】

  • 【githubhaohao/NDK_OpenGLES_3_0】

  • 【JYangkai/MediaDemo】

  • 【andev009/AndroidShaderDemo】Android平台OpenGL SE Camera滤镜实现Demo

  • https://gitee.com/littlecorgi_twk/opengles-android

  • LearnOpenGL 源代码

  • CainCamera

  • LYFaceDetection

  • OpenGlCameraRender

四、一些比较好的视频教程

B站是个好网站,上面有很多免费的教程

  • 最好的OpenGL教程之一
  • [傅老師/OpenGL教學 第一章] OpenGL自製3D遊戲引擎 (已更畢)
  • [傅老師/OpenGL教學 第二章][10/16晚間更新] OpenGL自製3D遊戲引擎
  • [傅老師/OpenGL教學 第三章] [01/08晚間更新] OpenGL自製3D遊戲引擎(已更畢)

五 、本人学习OpenGL的资料

  • 【本人的Native实现OpenGL的Demo】
  • 【本人的Java实现《OpenGL ES 3.0 编程指南》书中使用 AndroidSdk API 编写的样板代码。】
  • 【本人的OpenGL ES博客】

【我的OpenGL学习进阶之旅】【持续更新】关于学习OpenGL的一些资料相关推荐

  1. 【我的OpenGL学习进阶之旅】解决关于在OpenGL ES开发中GLSurfaceView调用了onPause和onResume方法,然后息屏亮屏之后GLSurfaceView黑屏的问题

    目录 一.问题描述 二.分析问题 2.1 排查onPause和onResume方法 2.2 注释掉onPause和onResume方法 2.3 GLSurfaceView 关于Activity生命周期 ...

  2. 【我的OpenGL学习进阶之旅】介绍一下 绘制图元

    目录 一.绘制图元 1.1 `glDrawArrays` 1.1.1 `glDrawArrays`API说明 1.1.2 `glDrawArrays`API示例 1.2 `glDrawElements ...

  3. 【我的OpenGL学习进阶之旅】C++如何加载TGA文件?

    一.TGA文件相关介绍 通过前面的博客 [我的OpenGL学习进阶之旅]什么是TGA文件以及如何打开TGA文件? 地址:https://ouyangpeng.blog.csdn.net/article ...

  4. 【我的OpenGL学习进阶之旅】OpenGL ES 3.0新功能

    目录 1.1 纹理 1.2 着色器 1.3 几何形状 1.4 缓冲区对象 1.5 帧缓冲区 OpenGL ES 2.0 开创了手持设备可编程着色器的时代,在驱动大量设备的游戏.应用程序和用户接口中获得 ...

  5. 【我的OpenGL学习进阶之旅】着色器和程序(上)------着色器

    着色器和程序 一.前言 二.着色器和程序 2.1 创建和编译一个着色器 2.1.1 创建着色器 2.1.2 删除着色器 2.1.3 提供着色器源代码 2.1.4 编译色器 2.1.4 查询有关着色器对 ...

  6. Vue -- 指令【学习笔记】(持续更新)

    Vue – 指令[学习笔记](持续更新) 记录了Vue第三天的学习笔记 v-show 注意,v-show 不支持 <template> 元素,也不支持 v-else. 带有 v-show ...

  7. CTF MISC在我眼里各种奇奇怪怪的题学习思路总结(持续更新)

    系列文章目录 MISC:图片隐写简单题学习思路总结(持续更新) CTF Crypto简单题学习思路总结(持续更新) 文章目录 系列文章目录 前言 一.二维码 1.1 QR码 1.2 Maxicode码 ...

  8. CTF MISC图片隐写简单题学习思路总结(持续更新)

    系列文章目录 第一篇文章: CTF Crypto简单题学习思路总结(持续更新) 文章目录 系列文章目录 前言 一.JPG类隐写 1.1 JPG文件末尾添加字符串 1.2 JPG文件中添加字符串 1.3 ...

  9. 问道区块链_区块链学习_v1.0.0_持续更新。。。

    本系列内容参考图 创建 共识网络 调用 部署 挖矿 消耗 编写 超级链组件 节点 多节点 账号 智能合约 合约账号 燃料耗品代币 开发者 区块 尊重原创,转载请注明出处https://blog.csd ...

最新文章

  1. 编写高性能Java代码的最佳实践
  2. 简单介绍oracle重置序列的方法
  3. 我所理解cocos2d-x 3.6 lua --使用Cocos Studio
  4. 爬虫基础, 乱码问题, jupyter, urllib, requests, lxml, multiprocessing并发, session, beautifulsoup...
  5. 实战演示 Go 反射的使用方法和应用场景
  6. 高可用Eureka注册中心配置说明(双机部署)
  7. java 聚合函数_如何使用Java流计算两个聚合函数?
  8. WinForms C# :TabWebBrowser 多页面浏览器源码
  9. 【踩坑经历】一次Asp.NET小网站部署踩坑和解决经历
  10. [Robot Framework] 怎么写动态等待?
  11. 【C语言】——背包问题详解
  12. Java的三种技术架构是什么?
  13. 改造:Ueditor编辑器插入外链视频支持手机播放和上传本地音乐
  14. 2013,爱上暗色调
  15. 联想G40-70旧物改造小总结——替换固态硬盘电池光驱啥的
  16. 计算机配置单性价比高,钻研组装电脑高配置清单
  17. 如何批量将多个 PPT 文档按指定页分别拆分成多个文档
  18. 【EndNote小技巧 - 文档文献的导出 | 设定引文放置位置 | 文献引用设置超链接】
  19. oracle中修改用户密码
  20. 牛客oj---喆神装书

热门文章

  1. 【学习总结】VIO初始化学习1:Monocular Visual–Inertial State Estimation With Online Initialization and Camera–IMU
  2. 显示器的品牌型号和价格计算机,电脑显示器价格?选购电脑显示器注意什么?...
  3. 历史上的今天:苹果推出初代 iMac;谷歌收购摩托罗拉移动;Fuchsia 首次发布
  4. 获取多达 16GB 的 Dropbox 免费空间!
  5. 【资料分享】智能车比赛 - 硬件调教
  6. 计算机类论文摘要,★计算机应用类论文摘要范文计算机应用类论文摘要写
  7. python调用包的路径_Python3 模块、包调用路径详解
  8. 新概念二册 lesson 4 现在完成时
  9. dataTables国际化
  10. CISCN2022东北赛区复赛Writeup-MapleLeaves