文章 2023-12-19 来自:开发者社区

【Android App】三维投影OpenGL ES的讲解及着色器实现(附源码和演示 超详细)

需要源码请点赞关注收藏后评论区留言私信~~~一、OpenGL ES简介虽然OpenGL的三维制图功能非常强大,但是它主要为计算机设计的,对于嵌入式设备和移动端设备来说显得比较臃肿,所以业界又设计了专供嵌入式设备的OpenGL ES 它相当于OpenGL的精简版,因为嵌入式设备追求性价比,所以能不做的渲染操作尽量不做,以便优化整体的系统性能OpenGL ES将所有的渲染过程划分为若干着色器,每个着....

【Android App】三维投影OpenGL ES的讲解及着色器实现(附源码和演示 超详细)
文章 2023-04-22 来自:开发者社区

Opengl ES之LUT滤镜(上)

什么是LUT滤镜从今天开始我们开始进入Opengl ES的滤镜专题,提到滤镜就不得不提用得最多的LUT滤镜了。LUT全称LookUpTable,也称为颜色查找表,它代表的是一种映射关系,通过LUT可以将输入的像素数组通过映射关系转换输出成另外的像素数组。比如一个像素的颜色值分别是 R1 G1 B1,经过一次LUT操作后变为R2 G2 B2:R2 = LUT(R1) G2 = LUT(G1) B.....

Opengl ES之LUT滤镜(上)
文章 2023-04-22 来自:开发者社区

OpenGL ES 多目标渲染(MRT)

大家好,我又来啦!今天给大家介绍一个OpenGL ES 3.0中的新特性,多渲染目标(Multiple Render Target)。所谓的多渲染目标就是指将片元着色器中的输出对应到多个纹理上了,在之前的例子上我们的片元着色器都是只有一个输出,只能对应输出到一个目标上(FBO纹理或者屏幕),今天我们使用MRT特性,在片元着色器中定义多个输出,并且附着到多个纹理之上。首先我们来回顾一下之前在 Op....

OpenGL ES 多目标渲染(MRT)
文章 2023-04-22 来自:开发者社区

Opengl ES之纹理数组

这是Opengl ES入门系列的第17篇博文啦...今天的内容比较简单,给大家介绍一下纹理数组,它是OpenGL ES 3.0引入的一个新特性,它能让我们以数组的方式往shader中传递纹理。2D纹理数组是OpenGL ES 3.0开始支持的纹理类型。通过使用2D纹理数组,在同一个着色器中使用多个2D纹理的情况下可以简化开发。试想一下,如果没有2D纹理数组技术,当一个着色器中需要使用多个2D纹理....

Opengl ES之纹理数组
文章 2023-04-22 来自:开发者社区

Opengl ES之水印贴图

前言水印贴图又称画中画,这种功能在Opengl中是如何实现的呢?我们可以简单地理解成两张纹理的叠加,一个纹理作为背景,另外一个纹理通过调整顶点坐标作为一个小的前景。说到水印贴图的实现,很多朋友可能会想到通过mix混合函数实现,但是并不推荐这样做,抛开性能先不说,这种实现方式就不太方便后期拓展。今天我们就通过mix内建函数和多纹理绘制两种方式实现一个水印贴图的功能。mix混合贴图先来看看我们用到的....

Opengl ES之水印贴图
文章 2023-04-22 来自:开发者社区

Opengl ES之矩阵变换(下)

前言在上一节 《Opengl ES之矩阵变换(上)》 中,我们通过矩阵变换实现一个一些形变的效果。如果细心的童鞋们可能会发现,我们的运行结果渲染的图片宽高明显是有些变形了,特别是在手机屏幕旋转为横屏之后,变形更加的明显,那么如果希望无论是横屏还是竖屏都希望渲染的画面可以参照宽高等比拉伸显示该如何处理呢?同时这个需求也是播放器渲染视频画面时的一个基本需求,通过矩阵的正交投影就能够很好低解决这个问题....

Opengl ES之矩阵变换(下)
文章 2023-04-22 来自:开发者社区

Opengl ES之矩阵变换(上)

前言说到矩阵变换,我们第一时间想到的就是大学时代的线性代数这些复杂的东西,突然有了一种令人从入门到放弃的念头,不慌,作为了一个应用层的CV工程师,在实际应用中线性代数哪些复杂的计算根本不用我们自己去算,绝大部分情境下直接使用Matrix这个类或者glm这个库即可。关于矩阵与向量的相关知识,矩阵的加减乘除等规则,这里就不展开细说,感兴趣的同学自行查阅线性代数即可,不过这些规则忘记了也没关系,反正有....

Opengl ES之矩阵变换(上)
文章 2023-04-22 来自:开发者社区

Opengl ES之踩坑记

前因最近在尝试使用Opengl ES实现一些LUT滤镜效果,在实现这些滤镜效果的时候遇到一些兼容性的坑,踩过这些坑后我希望把这几个坑分享给读者朋友们,希望同在学习Opengl ES的朋友们能少走弯路。关于LUT滤镜相关的介绍,也是这个Opengl ES系列入门教程的一项内容,在后面的文章中会专门介绍,这里暂时不展开讲解,后续大家敬请期待。踩坑详情1、着色器编译报错有以下这个片元着色器,在其他手机....

文章 2023-04-22 来自:开发者社区

Opengl ES之RGB转NV21

前言在上一篇理论文章中我们介绍了YUV到RGB之间转换的几种公式与一些优化算法,今天我们再来介绍一下RGB到YUV的转换,顺便使用Opengl ES做个实践,将一张RGB的图片通过Shader的方式转换YUV格式图,然后保存到本地。可能有的童鞋会问,YUV转RGB是为了渲染显示,那么RGB转YUV的应用场景是什么?在做视频编码的时候我们可以使用MediaCodec搭配Surface就可以完成,貌....

Opengl ES之RGB转NV21
文章 2023-04-22 来自:开发者社区

Opengl ES之YUV数据渲染

YUV回顾记得在音视频基础知识介绍中,笔者专门介绍过YUV的相关知识,可以参考:《音视频基础知识-YUV图像》YUV数据量相比RGB较小,因此YUV适用于传输,但是YUV图不能直接用于显示,需要转换为RGB格式才能显示,因而YUV数据渲染实际上就是使用Opengl ES将YUV数据转换程RGB数据,然后显示出来的过程。也就是说Opengl ES之所以能渲染YUV数据其实就是使用了Opengl强大....

Opengl ES之YUV数据渲染

本页面内关键词为智能算法引擎基于机器学习所生成,如有任何问题,可在页面下方点击"联系我们"与我们沟通。