目录
- 一、相关书籍
- 二、相关博客
- 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.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
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++ Primer Plus第6版中文版》被誉为“开发人员学习C++的必备教程,没有之一”,可以说是一本面向从未学习过C语言甚至是从未学习过编程的人的入门书籍,它的首章从基础内容讲起,先介绍了传统编程的规则,后面才着重讲解有关面向对象——C++的精髓之一——的有关内容。
整个书的结构安排较为合理,难度爬升较慢。如果你是一个从未学过C语言(或者压根没学会C)的读者,那么,我相信这本书更适合你。当然如果有了C语言的基础,那学起来更是如虎添翼,效果更佳。
NDK
线性代数
《线性代数的几何意义》
二、相关博客
2.0 一些比较官方的链接
2.1 OpenGL着色器语言相关
- 【Shadertoy - 国外着色器(Shader)源码分享网站】
- 【GLSL SANDBOX】
- 【OpenGL着色器(Shader)和GLSL语言的简单介绍】
- 【OpenGL Shading Language】
- 【GLSL 中文手册】
- 【OpenGL日常-着色器】
- 【GLSL 中文手册】
2.2 【yfan】博主相关的链接
- 【Android OpenGL ES - 开篇】
- 【Android OpenGL ES - 环境搭建与简单三角形的绘制】
- 【Android OpenGL ES - 坐标系】
- 【Android OpenGL ES - GLSL基础篇】
- 【Android OpenGL ES - 纹理】
- 【Android OpenGL ES - GLSL高级篇】
- 【Android OpenGL ES - 反相、曝光、对比度、饱和度、色调滤镜】
- 【Android OpenGL ES - 卷积矩阵】
- 【Android OpenGL ES - EGL源码解析以及C++实现】
- 【Android OpenGL ES - EGL C++实现】
- 【相机/图片滤镜应用-InstagramXFilter来了】
2.3 【湖广午王】博主相关的链接
- 【Android OpenGLES 系列专栏】
- 【Android OpenGLES2.0(一)——了解OpenGLES2.0】
- 【 Android OpenGLES2.0(二)——绘制一个三角形】
- 【Android OpenGLES2.0(三)——等腰直角三角形和彩色的三角形】
- 【Android OpenGLES2.0(四)——正方形和圆形】
- 【Android OpenGLES2.0(五)——绘制立方体】
- 【Android OpenGLES2.0(六)——构建圆锥、圆柱和球体】
- 【Android OpenGLES2.0(七)——着色器语言GLSL】
- 【Android OpenGLES2.0(八)——纹理贴图之显示图片】
- 【Android OpenGLES2.0(九)——利用OpenGL进行图片处理】
- 【Android OpenGLES2.0(十)——OpenGL中的平移、旋转、缩放】
- 【Android OpenGLES2.0(十一)——利用OpenGLES做Camera预览】
- 【Android OpenGLES2.0(十二)——FBO离屏渲染】
- 【Android OpenGLES2.0(十三)——流畅的播放逐帧动画】
- 【Android OpenGLES2.0(十四)——Obj格式3D模型加载】
- 【Android OpenGLES2.0(十五)——利用EGL后台处理图像】
- 【Android OpenGLES2.0(十六)——3D模型贴图及光照处理(obj+mtl)】
- 【Android OpenGLES2.0(十七)——球形天空盒VR效果实现】
- 【Android OpenGLES2.0(十八)——轻松搞定Blend颜色混合】
- 【Android Camera API/Camera2 API 相机预览及滤镜、贴纸等处理】
- 【GLSurfaceView的简单分析及巧妙借用】
微型渲染器,了解OpenGL的工作原理
- https://github.com/ssloy/tinyrenderer
- https://github.com/ssloy/tinyraytracer
- https://github.com/zauonlok/renderer
2.4【zhxmdefj】博主相关的链接
- 【OpenGL入门1.0:环境搭建】
- 【OpenGL入门1.1:窗口】
- 【OpenGL入门1.2:渲染管线简介,画三角形】
- 【OpenGL入门1.3:着色器 GLSL】
- 【OpenGL入门1.4:纹理/贴图Texture】
- 【OpenGL入门1.5:矩阵与变换】
- 【OpenGL入门1.6:坐标系统,3D箱子】
- 【OpenGL入门1.7:摄像机】
- 【OpenGL光照1:颜色和基础光照】
- 【OpenGL光照2:材质和光照贴图】
- 【OpenGL光照3:光源】
2.5 【TwinklingStar】博主相关的链接
- 【OpenGL原理介绍】
- 【OpenGL雾简介】
- 【模板缓冲区】
- 【GLSL与RenderMan、ISL、Cg、HLSL的对比】
- 【OpenGL着色器介绍】
- 【多重纹理和纹理组合器】
- 【累积缓冲区】
- 【像素相关的操作】
- 【顶点数组】
- 【显示列表】
2.6【妈妈说女孩子要自立自强】博主相关的链接
- 【ShaderToy】开篇
- 【ShaderToy】水彩画
- 【ShaderToy】基础篇之再谈抗锯齿(antialiasing,AA)
- 【ShaderToy】跳动的心❤️
- 【ShaderToy】基础篇之谈谈点、线的绘制
2.7 【字节流动】 博主相关的链接
2.7.1 基础篇
2.7.2 应用篇
2.8 【蓬篙人】 博主相关的链接
2.9 其他
2.10 世界、视图和投影变换矩阵
三、Github
四、一些比较好的视频教程
B站是个好网站,上面有很多免费的教程
- 最好的OpenGL教程之一
- [傅老師/OpenGL教學 第一章] OpenGL自製3D遊戲引擎 (已更畢)
- [傅老師/OpenGL教學 第二章][10/16晚間更新] OpenGL自製3D遊戲引擎
- [傅老師/OpenGL教學 第三章] [01/08晚間更新] OpenGL自製3D遊戲引擎(已更畢)