![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Opengl ES
文章平均质量分 74
红-旺永福
我的架构师之路!!
展开
-
Opengl ES系列学习--FBO拷贝texture实现滤镜效果
Opengl ES系列学习--FBO实现滤镜效果本节我们原创 2020-11-08 21:00:15 · 1066 阅读 · 0 评论 -
Opengl ES系列学习--光照贴图
本节我们来学习一下光照贴图的知识,还是在之前的基础上不断完善,效果越来越真实,本节实现的效果如下。 一共四个效果,上面两个是只有漫反射贴图的效果,下面两个是漫反射贴图和光照贴图一起的效果,左侧两个是加了光源随时间变化的影响。大部分的代码都和上一节相同,修改比较小,可以看到作者的思路就是把所有能完善的细节一步步的完善,这样就能得到更好的效果。 本节的Render渲染类是GlLightMapRender,完整源码如下:package com.opengl.learn....原创 2020-09-06 23:00:30 · 343 阅读 · 0 评论 -
Opengl ES系列学习--蜗牛
今天的这个蜗牛真是太猛了,计算量超大,GPU直接拉到最高频,而且负载99%!!这是什么样的计算量,我们相机使用Opengl ES平时绘制的预览,GPU是最低频,而且负载也只有3%--10%左右,看来我们的技术还不够深,要能真正实现一个功能,正常使用GPU达到这样的频率的话,那才能突显出一定的水平。来看下蜗牛的效果。 GlSnailRender类的完整源码如下:package com.opengl.learn.aric;import android.content.Cont...原创 2020-08-31 23:06:30 · 1480 阅读 · 0 评论 -
Opengl ES系列学习--莫比乌斯带
一个莫比乌斯带的shader,效果如下: Java类为GlMobiusRender,完整源码如下:package com.opengl.learn.aric;import android.content.Context;import android.opengl.GLES32;import android.opengl.GLSurfaceView;import android.util.Log;import com.opengl.learn.OpenGLUtil...原创 2020-08-29 23:06:18 · 549 阅读 · 0 评论 -
Opengl ES系列学习--太阳
继续积累Shadertoy,大家也可去Shader女神的CSDN逛逛:Shader女神。使用别人写好的shader实现的一个太阳的效果,太漂亮了!!! 该效果实现是GlSunRender类,完整源码如下:package com.opengl.learn.aric;import android.content.Context;import android.opengl.GLES32;import android.opengl.GLSurfaceView;import ...原创 2020-08-29 22:52:51 · 443 阅读 · 0 评论 -
Opengl ES系列学习--3D大海
今天又发现一些非常赞的Opengl学习网站:Shadertoy、twinklingstar,看到这些资源,真是相见恨晚啊,里面的东西真是太赞了,上一幅图大家就知道了。 怎么样?我第一眼看到这样的效果,真是被震惊到了,我操,这是什么操作,居然还能搞出来这样的效果,我的十个大拇指不由得想伸出来表达一下内心的赞。...原创 2020-08-25 00:37:25 · 567 阅读 · 0 评论 -
Opengl ES系列学习--材质
本节我们一起来学习一下材质的知识,看完本节的内容后,我们应该总结到,最终实现的效果是在上一节的基础上,把所有影响因素慢慢都加进来,考虑的更细致得到的结果。上一节我们考虑的是光的反射因素,把环境光照、漫反射光照、镜面反射光照计算到最终效果上;本节继续把物体的材质、光源的环境光照分量、漫反射分量、镜面反射分量全部都考虑进来,这样就会越来越接近实际现象。 本节最终实现的效果如下: 为了方便对比,我们画了四个立方体,每次的视口坐标调用glViewport转换了一下,关于glVi...原创 2020-08-23 01:35:30 · 405 阅读 · 0 评论 -
Opengl ES系列学习--光照基础
本节我们来学习一下光照基础的知识,理解了原作者的讲解,我们就应该能提炼出本节的重点就是冯氏光照模型。之前我们已经说过了,后面的效果实现都是把前人总结好的原理计算出来。冯氏光照模型介绍如下: 上面的四张效果图看着就非常明显了,第一张是环境光,第二张是漫反射,第三张是镜面反射,第四张是所有效果的综合,也就是我们眼睛看到的效果。颜色的处理是在片段着色器中,分别把三部分反射因子相加,然后乘以物体本身的颜色就完成了,代码实现如下: 本节我们最终实现的效果图如下: ...原创 2020-08-22 00:24:30 · 340 阅读 · 0 评论 -
Opengl ES系列学习--颜色
本节我们来学习一下颜色的知识,在看完原作者讲解的颜色的知识的基础上,只要我们理解了,应该就能提取出重点,其实本节的重点就是下面这一句话。 所以我们要作的就是计算出物体颜色和光源颜色,然后把它们两个相乘,得到的就是目标颜色了。只有清晰的明确了目标,知道我们要干什么,这样效率才能更高,不至于被方向搞乱。本节我们实现的效果如下: 我们是仿照作者的实现,加了一个橙色的光源,而且在上一节的基础上,继续使用所有的纹理,作者是先去掉,后面的章节又加上的,我们索性就直接使用了。可以...原创 2020-08-18 00:11:11 · 419 阅读 · 0 评论 -
Opengl ES系列学习--摄像机
本节我们来学习一下摄像机,原文最后作者使用按钮对场景进行移动,我们其实也可以模拟touch事件,然后计算出相应的移动距离,作用在变换矩阵上,按照这样的思路也是可以实现移动的,有兴趣的朋友可以自己实现一下。 先来看一下本节的实际效果: 看着动画的感觉,不像是摄像机在转动,倒像是场景在绕着中心点转动,这是怎么回事?这是因为我们对每个立方体都进行了平移,而且我们的lookat矩阵的目标视点是对着场景的中心点的,所以,我们把摄像机逆时针转动时,相当于场景在顺时针转动,也就是我们...原创 2020-08-13 01:13:09 · 519 阅读 · 0 评论 -
Opengl ES系列学习--坐标系统
本节我们来学习一下坐标系统,坐标系统应该是很重要的一节知识,是学习Opengl的过程中必不可少的一节课,如果能深刻的理解坐标系统,就能在复杂的实际工作中正确的把握住各种坐标运算。如下几张截图是原作者特别说明的,在大家的实际工作中,肯定可以作为标准,如果碰到类似坐标运算的问题了,第一时间过画对比看一看,对坐标系统的认识应该就会更进一步。...原创 2020-08-08 14:36:29 · 445 阅读 · 0 评论 -
Opengl ES系列学习--变换
本节我们继续学习变换一章的内容,原作者在本章内容单面讲解了大量的矩阵变换的内容,非常清晰,大家如果有兴趣研究的话,可以自己计算一下,我们就不细看了。 先来看一下我们最终实现的效果: 本小节要实现的效果相对比较简单,我们就是在上一节的基础上,加了一个变换矩阵,让我们的纹理转起来。GlMatrixRender类的完整源码如下:package com.opengl.learn.aric;import android.content.Context;import a...原创 2020-08-02 17:11:57 · 289 阅读 · 0 评论 -
Opengl ES系列学习--纹理
有时间了,就学学Opengl,很久之前就发现了一篇非常赞的Opengl教程:LearnOpengl CN,不知道为什么,之前还是可以打开的,现在电脑上却访问不了了,只能在手机上看,真是资源浪费啊!! 活到老,学到老!技术积累到一定程度后,我们必须在某个方向不断的深挖,目的就是行业顶尖的水平,大家想想,我们自己的技术能力,哪个方面能达到行业顶尖??估计没有一个人敢自信的回答,所以,还是要不断的学习。 也是基于这样的思考,自己才想着不断的学习Opengl,把这个方面的能力掌握的...原创 2020-08-02 15:57:14 · 534 阅读 · 0 评论 -
Opengl ES系列学习--glBlendFunc API使用
本节我们来看一下glActiveTexture API的使用,对应的代码是OpenGL\learn\src\main\java\com\opengl\learn\GlBlendFuncRender.java文件。 所有实例均有提供源码,下载地址:Opengl ES Source Code。 API中文说明:GLES2.0中文API-glBlendFunc。 ...原创 2020-03-20 00:35:17 · 646 阅读 · 0 评论 -
Opengl ES系列学习--glActiveTexture API使用
本节我们来看一下glDrawElementsAPI的使用,对应的代码是OpenGL\learn\src\main\java\com\opengl\learn\GlActiveTextureRender.java文件。 所有实例均有提供源码,下载地址:Opengl ES Source Code。 API中文说明:GLES2.0中文API-glActiveTextu...原创 2020-03-16 00:25:32 · 896 阅读 · 0 评论 -
Opengl ES系列学习--glDrawElements API使用
本节我们来看一下glDrawElementsAPI的使用,对应的代码是OpenGL\learn\src\main\java\com\opengl\learn\GlDrawElementsRender.java文件。所有实例均有提供源码,下载地址:Opengl ES Source Code。API中文说明:GLES2.0中文API-glDrawElements...原创 2020-03-11 23:47:01 · 1432 阅读 · 0 评论 -
Opengl ES系列学习--glDrawArrays API使用
本节我们来看一下glDrawArrays API的使用,我们就讲一些常量的知识,生僻少用的就不看了。 所有实例均有提供源码,下载地址:Opengl ES Source Code。 API中文说明:GLES2.0中文API-glDrawArrays。 Opengl提供的两类绘制API就是glDrawArrays、glDrawElements,绘制三角形序...原创 2020-03-10 00:16:37 · 1306 阅读 · 0 评论 -
Opengl ES系列学习--glViewport API使用
去年有分析了一些Opengl ES的实例,但是后面在实际的工作中,发现根基不牢,工作中使用的一些复杂场景还是理解的不够透彻,所以回过心来,必须把基础把扎实。从这节开始,我们后面对一些非常基础普通的Opengl ES API进行实际使用介绍,万丈高楼平地起,必须把基础搞扎实,我们才能一步步向上。 所有实例均有提供源码,下载地址:Opengl ES Source Code。...原创 2020-03-08 20:50:11 · 1039 阅读 · 0 评论 -
Opengl ES系列学习--序
之前一直都想好好学习一下Opengl ES,因为自己想往图形界面处理方向集中发展,这样的目标对Opengl ES的要求也是不能少的,推荐两本书:《OpenGL ES应用开发实践指南 Android卷》和《OPENGL ES 3.0编程指南中文原书第2版》,CSDN上也有其他朋友分享的,但是都要四五十个积分,有点抠门了,另外自己把两本书的代码全部整理了下,Github下载链接:Opengl...原创 2019-04-19 11:25:58 · 546 阅读 · 3 评论 -
Opengl ES系列学习--点亮世界
本节我们在上一节的基础上继续添加光照,我们要分析的目标就是《OpenGL ES应用开发实践指南 Android卷》书中第13章实现的最终的结果,代码下载请点击:Opengl ES Source Code,该Git库中的lightingModule就是我们本节要分析的目标,先看下本节最终实现的结果。 在上一节的基础上,把天空盒换成了一个夜晚的天空盒,同时增加了光照,三个粒...原创 2019-04-29 18:17:13 · 400 阅读 · 0 评论 -
Opengl ES系列学习--用粒子增添趣味
我们本节开始分析《OpenGL ES应用开发实践指南 Android卷》书中第10章中的粒子系统的实现原理,搞清楚其中的代码逻辑,代码下载请点击:Opengl ES Source Code,该Git库中的particlesModule就是我们本节要分析的目标,先看下本节最终实现的结果。 最终运行在真机上的效果非常炫,三个红绿蓝粒子系统不断的发射新的粒子,所有粒子由于重力...原创 2019-04-19 20:20:06 · 521 阅读 · 0 评论 -
Opengl ES系列学习--增加天空盒
本节我们在上一节的基础上来分析一下天空盒的实现。我们要分析的目标就是《OpenGL ES应用开发实践指南 Android卷》书中第11章实现的最终的结果,代码下载请点击:Opengl ES Source Code,该Git库中的skyboxModule就是我们本节要分析的目标,先看下本节最终实现的结果,CSDN对GIF动画文件的大小有限制,所以只能录制三个文件来看效果。...原创 2019-04-22 18:15:50 · 1071 阅读 · 0 评论 -
Opengl ES系列学习--你好,三角形
看完了Opengl ES 2.0,我们再来看一下3.0的内容,PDF下载地址:OPENGL ES 3.0编程指南 原书第2版(中文版),3.0原书中的作者应该是搞C++开发的,所有的实现都是基于C++,当然也有Java语言的,原书所有代码下载地址:OpenGL ES 3.0中文版所有示例代码,我自己只是将Java语言整理了一下。我们还是对着书,一节一节的分析所有的内容。本节要看的就是该书...原创 2019-05-05 11:45:29 · 439 阅读 · 0 评论 -
Opengl ES系列学习--创建动态壁纸
本节我们在上一节的基础上继续完成动态壁纸功能,我们要分析的目标就是《OpenGL ES应用开发实践指南 Android卷》书中第14章实现的最终的结果,代码下载请点击:Opengl ES Source Code,该Git库中的livewallpaperModule就是我们本节要分析的目标,先看下本节最终实现的结果。 最终的效果,就是把我们上一节实现的结果作为...原创 2019-04-30 10:59:57 · 739 阅读 · 2 评论 -
Opengl ES系列学习--顶点属性、顶点数组和缓冲区对象
本节我们继续来看一下《OPENGL ES 3.0编程指南 原书第2版(中文版)》书中第6章的内容,PDF下载地址:OPENGL ES 3.0编程指南 原书第2版(中文版),代码下载地址:Opengl ES Source Code。本书中第3、4、5章讲解的是Opengl ES着色器语言的语法知识,没有实例,不过这些语法也是我们掌握Opengl ES的硬功底,万丈高楼平地起,只有基础扎实,...原创 2019-05-06 15:09:50 · 985 阅读 · 0 评论 -
Opengl ES系列学习--顶点着色器
本节我们继续来看一下《OPENGL ES 3.0编程指南 原书第2版(中文版)》书中第8章的内容,PDF下载地址:OPENGL ES 3.0编程指南 原书第2版(中文版),代码下载地址:Opengl ES Source Code。该书中好像没有对Demo的代码进行讲解,全书的重点全部都集中在Opengl ES本身,而实现出来的实例代码讲解的很少,作为初学者,理解起来确实比较费劲,这也是我...原创 2019-05-07 14:57:15 · 708 阅读 · 0 评论 -
Opengl ES系列学习--增加地形
本节我们在上一节的基础上继续添加地形图功能,我们要分析的目标就是《OpenGL ES应用开发实践指南 Android卷》书中第12章实现的最终的结果,代码下载请点击:Opengl ES Source Code,该Git库中的heightmapModule就是我们本节要分析的目标,先看下本节最终实现的结果。 可以看到,地形图中有高有低,是用绿色来表示的,最接近底部的颜...原创 2019-04-25 18:12:47 · 572 阅读 · 0 评论