我的opengl学习进阶之旅学习opengles3.0的实战awsomedemo(中)

字节卷动 字节卷动     2022-11-29     545

关键词:

上一篇文章 【我的OpenGL学习进阶之旅】学习OpenGL ES 3.0 的实战 Awsome Demo (上) 介绍了一下项目和部分案例效果展示,这篇接着介绍其他的案例效果展示。

三篇完整版链接:

一、介绍

最近在学习OpenGL ES 3.0 相关技术,写了一个Demo工程,记录学习。

1.1 项目地址:

1.2 项目介绍

主要是将下面来源的特效,自己手动敲一遍,熟悉OpenGL ES相关API和GLSL语法以及C++语法

  1. 《OpenGL ES 3.0编程指南》 这本书
  2. 【Learn OpenGL ES】 网站的一些示例
  3. 字节流动的 NDK_OpenGLES_3_0 项目代码
  4. 部分ShaderToy网站和 GLSL SANDBOX 网站上的特效移植到android端
  5. 转场动画GLTransitions网站上的特效移植到android端

1.3 相关链接

关于 OpenGL ES的相关知识,
可以参考下面的博客查看:

  1. 字节卷动 的 OpenGL ES 专栏
  2. 字节流动 的 Android OpenGLES 3.0 专栏
  3. 【Learn OpenGL ES】
  4. ShaderToy
  5. GLSL SANDBOX
  6. 转场动画 https://gl-transitions.com/gallery

二、案例效果展示

接下来几个案例都是ShaderToy上的案例,移植到Android端来展示

40 展示一段 ShaderToy的特效:跳动的心

41 展示一段 ShaderToy的特效:不断漂浮的云朵

42 展示一段 ShaderToy的特效:时光隧道

43 展示一段 ShaderToy的特效:燃烧的旋转的主序星

44 展示一段 ShaderToy的特效:天路

45 展示一段 ShaderToy的特效:A Day

46 展示一段 ShaderToy的特效:Atmosphere system test

47 展示几段 贝塞尔曲线 绘制的曲边扇形 混合而成的效果

学习如何绘制 贝塞尔曲线

48 展示一个随着时间变化逐渐放大眼睛的效果

学习如何实现 大眼效果

49 展示一个随着时间变化逐渐瘦脸的效果

学习如何实现 瘦脸效果

50 展示 一个随着时间变化头部逐渐放大的效果

学习如何实现 大头效果

51 展示 一个随着时间变化头部跟着晃动的效果

学习如何实现 头部晃动效果

52 展示 一个 可视化实时音频 的效果

学习如何实现 可视化实时音频 效果

53 展示 一个 刮刮卡 的效果

学习如何实现 刮刮卡 效果

54 展示 一个 3D 阿凡达(Avatar)效果

学习如何实现 3D 阿凡达(Avatar)效果

55 展示 动态(水波纹)涟漪 效果

学习如何实现 动态(水波纹)涟漪 效果

  • 实现效果1
  • 实现效果2

56 又见MRT

再一次学习 MRT(多重渲染目标) 技术

57 OpenGL ES 帧缓冲区位块传送(Blit)

学习 FBO Blit 技术

58 使用uniform 缓冲区对象,即UBO来展示图片

学习uniform 缓冲区对象,即 UBO技术

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

学习 OpenGL实现RGB到YUV的图像格式转换技术

60 展示 OpenGL ES 共享上下文 多线程绘制 技术

学习 MULTI THREAD RENDER 技术

61 展示 OpenGL 使用 FreeType 渲染文字

学习 OpenGL ES 文字渲染 技术

62 展示 人像留色

学习 人像留色技术:人体区域保留彩色,人体区域之外灰度化。

63 展示 3D模型

学习如何使用模型加载库Assimp来加载3D模型

未完待续。。。

我的opengl学习进阶之旅学习opengles3.0的实战awsomedemo(中)

上一篇文章【我的OpenGL学习进阶之旅】学习OpenGLES3.0的实战AwsomeDemo(上)介绍了一下项目和部分案例效果展示,这篇接着介绍其他的案例效果展示。三篇完整版链接:【我的OpenGL学习进阶之旅】学习OpenGLES3.0的实... 查看详情

我的opengl学习进阶之旅学习opengles3.0的实战awsomedemo(下)之图片转场和轮播特效专场

前面两篇文章【我的OpenGL学习进阶之旅】学习OpenGLES3.0的实战AwsomeDemo(上)【我的OpenGL学习进阶之旅】学习OpenGLES3.0的实战AwsomeDemo(中)介绍了一下项目和部分案例效果展示,这篇接着介绍其他的案例效果展... 查看详情

我的opengl学习进阶之旅学习opengles3.0的实战awsomedemo(下)之图片转场和轮播特效专场

前面两篇文章【我的OpenGL学习进阶之旅】学习OpenGLES3.0的实战AwsomeDemo(上)【我的OpenGL学习进阶之旅】学习OpenGLES3.0的实战AwsomeDemo(中)介绍了一下项目和部分案例效果展示,这篇接着介绍其他的案例效果展... 查看详情

我的opengl学习进阶之旅opengles3.0新功能

...设备的游戏、应用程序和用户接口中获得了广泛的成功。OpenGLES3.0扩展了OpenGLES2.0,支持许多新的渲染技术、优化和显示质量改进。下面我们来概述一下OpenGLES3.0中新增的主要功能。原文:【我的OpenGL学习进阶之旅】OpenGLES... 查看详情

我的opengl学习进阶之旅opengles3.0和向后兼容性

一、OpenGLES3.0和向后兼容性1.1OpenGLES3.0是向后兼容OpenGLES2.0的OpenGLES3.0是向后兼容OpenGLES2.0的。也就是说使用2.0编写的应用程序是可以在3.0中继续使用的。后续版本的一些很小的修改可能会影响少数应用程序的向后兼容性。帧缓冲... 查看详情

我的opengl学习进阶之旅opengles3.0实现了具有可编程着色功能的图形管线(代码片段)

OpenGLES3.0图形管线的各个阶段1.0固定功能管线和可编程管线1.1顶点着色器1.2图元装配1.3光栅化1.4片段着色器1.5逐片段操作附图说明OpenGLES3.0实现了具有可编程着色功能的图形管线,由两个规范组成:OpenGLES3.0API规范和OpenGLES... 查看详情

我的opengl学习进阶之旅基本状态管理(代码片段)

在博客【我的OpenGL学习进阶之旅】OpenGLES3.0实现了具有可编程着色功能的图形管线中我们介绍了OpenGLES3.0中管线的各个阶段。每个管线阶段都有一个可以启用或者禁用的状态,每个上下文维护相应的状态值。状态的例子有混合... 查看详情

我的opengl学习进阶之旅opengles3.0实现了具有可编程着色功能的图形管线(代码片段)

OpenGLES3.0图形管线的各个阶段1.0固定功能管线和可编程管线1.1顶点着色器1.2图元装配1.3光栅化1.4片段着色器1.5逐片段操作附图说明OpenGLES3.0实现了具有可编程着色功能的图形管线,由两个规范组成:OpenGLES3.0API规范和OpenGLES... 查看详情

我的opengl学习进阶之旅opengles2.0和3.x系列的apireferenceguide参考卡片地址

OpenGLES3.2APIReferenceGuide参考卡片地址,一时半会找不到,这里做个备份,地址如下所示:进入下面的网站【reference-cards】然后选择对应的OpenGLES版本的参考卡片【OpenGLES2.0APIReferenceGuide】【OpenGLES3.0APIReferenceGuide】【Op... 查看详情

我的opengl学习进阶之旅解决ndk使用opengles3.0的api报错:error:undefinedreferenceto‘glunmapbuffer‘(代码片段)

一、错误描述今天在写一个OpenGLES3.0的demo的时候,编译报错,如下所示:D:/GitLabSource/OpenGLESDemo/app/src/main/cpp/triangle/NativeTriangleMapBuffers.cpp:162:error:undefinedreferenceto'glUnmapBuffer' 查看详情

我的opengl学习进阶之旅学习opengles3.0的实战awsomedemo(上)

一、介绍最近在学习OpenGLES3.0相关技术,写了一个Demo工程,记录学习。1.1项目地址:https://github.com/ouyangpeng/OpenGLESDemo1.2项目介绍主要是将下面来源的特效,自己手动敲一遍,熟悉OpenGLES相关API和GLSL语法以及C+... 查看详情

我的opengl学习进阶之旅opengles3.0新功能

...设备的游戏、应用程序和用户接口中获得了广泛的成功。OpenGLES3.0扩展了OpenGLES2.0,支持许多新的渲染技术、优化和显示质量改进。下面我们来概述一下OpenGLES3.0中新增的主要功能。原文:【我的OpenGL学习进阶之旅】OpenGLES... 查看详情

我的opengl学习进阶之旅opengles3.0和向后兼容性

一、OpenGLES3.0和向后兼容性1.1OpenGLES3.0是向后兼容OpenGLES2.0的OpenGLES3.0是向后兼容OpenGLES2.0的。也就是说使用2.0编写的应用程序是可以在3.0中继续使用的。后续版本的一些很小的修改可能会影响少数应用程序的向后兼容性。帧缓冲... 查看详情

我的opengl学习进阶之旅解决着色器编译错误:#versiondirectivemustoccuronthefirstlineoftheshader(代码片段)

...,发现报了如下错误:2021-11-1515:09:07.40626065-26107/opengles3.book.hello_TriangleE/ESShader:ERROR:0:2:'':#versiondirectivemustoccuronthefirstlineoftheshaderERROR:0:9:'in':storagequalifiersupportedinGLSLES3.00only完整日志如下:2021-11-1515:09:07.39326... 查看详情

我的opengl学习进阶之旅解决着色器编译错误:#versiondirectivemustoccuronthefirstlineoftheshader(代码片段)

...,发现报了如下错误:2021-11-1515:09:07.40626065-26107/opengles3.book.hello_TriangleE/ESShader:ERROR:0:2:'':#versiondirectivemustoccuronthefirstlineoftheshaderERROR:0:9:'in':storagequalifiersupportedinGLSLES3.00only完整日志如下:2021-11-1515:09:07.39326... 查看详情

我的opengl学习进阶之旅解决ndk使用opengles3.0的api报错:error:undefinedreferenceto‘glunmapbuffer‘(代码片段)

一、错误描述今天在写一个OpenGLES3.0的demo的时候,编译报错,如下所示:D:/GitLabSource/OpenGLESDemo/app/src/main/cpp/triangle/NativeTriangleMapBuffers.cpp:162:error:undefinedreferenceto'glUnmapBuffer'完整错误日志,如下所示:FAILUR... 查看详情

我的opengl学习进阶之旅opengles2.0和3.x系列的apireferenceguide参考卡片地址

OpenGLES3.2APIReferenceGuide参考卡片地址,一时半会找不到,这里做个备份,地址如下所示:进入下面的网站【reference-cards】然后选择对应的OpenGLES版本的参考卡片【OpenGLES2.0APIReferenceGuide】【OpenGLES3.0APIReferenceGuide】【Op... 查看详情

我的opengl学习进阶之旅基本状态管理(代码片段)

在博客【我的OpenGL学习进阶之旅】OpenGLES3.0实现了具有可编程着色功能的图形管线中我们介绍了OpenGLES3.0中管线的各个阶段。每个管线阶段都有一个可以启用或者禁用的状态,每个上下文维护相应的状态值。状态的例子有混合... 查看详情