前言 在上一节《OpenglES之矩阵变换(上)》中,我们通过矩阵变换实现一个一些形变的效果。 如果细心的童鞋们可能会发现,我们的运行结果渲染的图片宽高明显是有些变形了,特别是在手机屏幕旋转为横屏之后,变形更加的明显,那么如果希望无论是横屏还是竖屏都希望渲染的画面可以参照宽高等比拉伸显示该如何处理呢?同时这个需求也是播放器渲染视频画面时的一个基本需求,通过矩阵的正交投影就能够很好低解决这个问题。 OpenGL中的坐标系及矩阵变换过程 下面这张图展示了OpenGLES中的坐标系及矩阵变换过程: [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OxRvjxKW-16...

最近忙于开发一款基于Camera2API的相机应用,部分功能涉及到广角镜头,因此踩了不少坑,在此与大家分享下以作记录交流... 经过查阅资料发现在安卓上所谓的广角镜头切换其实是用一个逻辑摄像头包含多个物理摄像头实现的,在zoom缩放的时候根据不同的缩放值切换不同的物理摄像头。参考:https://source.android.google.cn/devices/camera/multi-camera?hl=zh-cn 踩坑记录 CameraDevice.TEMPLATE_RECORD的兼容性问题一般在录制视频的时候为了获得比较稳定的帧率,我们可能会使用CameraDevice.TEMPLAT...

  ghK3nE6h3Oo7   2023年11月01日   147   0   0 Android开发

前言 在上一篇理论文章中我们介绍了YUV到RGB之间转换的几种公式与一些优化算法,今天我们再来介绍一下RGB到YUV的转换,顺便使用OpenglES做个实践,将一张RGB的图片通过Shader的方式转换YUV格式图,然后保存到本地。 可能有的童鞋会问,YUV转RGB是为了渲染显示,那么RGB转YUV的应用场景是什么?在做视频编码的时候我们可以使用MediaCodec搭配Surface就可以完成,貌似也没有用到RGB转YUV的功能啊,硬编码没有用到,那么软编码呢?一般我们做视频编码的时候都是硬编码优先,软编码兜底的原则,在遇到一些硬编码不可用的情况下可能就需要用到x264库进行软编码了,而此时R...

  ghK3nE6h3Oo7   2023年11月01日   57   0   0 Android开发

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

  ghK3nE6h3Oo7   2023年11月01日   373   0   0 Android开发

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

  ghK3nE6h3Oo7   2023年11月01日   123   0   0 Android开发
关注 更多

空空如也 ~ ~

粉丝 更多

空空如也 ~ ~