2024年10月18日
摘要: 一、概述 在OpenGL中,想要对物体(模型)进行操作,如:平移、缩放、旋转。其顺序不能错,不同的顺序会给出不同的结果 网上的博客大家看过后要慎重使用,好多都是错误的,在实际项目中使用前最好先写demo进行验证,不然一旦整合到项目中,排错成本将会非常高。 三者的顺序是: 理论:先缩放、再旋转、然后平 阅读全文
posted @ 2024-10-18 11:44 飘杨...... 阅读(20) 评论(0) 推荐(0) 编辑
  2024年9月24日
摘要: 一、概述 参考地址:https://www.cnblogs.com/eddyz/p/17869403.html 阅读全文
posted @ 2024-09-24 16:41 飘杨...... 阅读(6) 评论(0) 推荐(0) 编辑
  2024年9月20日
摘要: 一、概述 在使用android的jni能力的时候出现了编译错误 -DANDROID_STL=c++_static" does not exist. 产生这个异常的原因是找不到了STL静态库。 二、解决办法 使用动态库就行了 arguments "-DANDROID_STL=c++_shared" 阅读全文
posted @ 2024-09-20 15:25 飘杨...... 阅读(14) 评论(0) 推荐(0) 编辑
  2024年9月19日
摘要: 一、概述 使用场景:在音视频开发中,用YUV数据+OpenGL进行画面渲染。经常会将Y分量、U分量、V分量分开。分别上传到GPU,由GPU转换为RGB进行最终展示。 使用这种方式的原因是基于GPU计算效率高为前提的。 在这个过程中经常会用到一个c函数memcpy。将yuv数据分别copy到不同的内存 阅读全文
posted @ 2024-09-19 17:40 飘杨...... 阅读(7) 评论(0) 推荐(0) 编辑
  2024年9月18日
摘要: 一、概述 在AndroidStudio中集成opencv,使用其native函数时报的一个错误 二、解决办法 opencv提供的native文件夹中提供的是动态库 但是在gradle中的配置中,配置的stl是静态的,将其改为shared就行了 externalNativeBuild { cmake 阅读全文
posted @ 2024-09-18 17:41 飘杨...... 阅读(182) 评论(0) 推荐(0) 编辑
  2024年9月11日
摘要: 一、概述 在数字图像处理中,特别是视频播放领域。YUV转RGB或者RGB转YUV非常常用。 就目前来说有三个标准: 1.标准模式 BT601 2.高清模式 BT709 3.超清模式 BT2020 二、转换规则 转换公式如下 阅读全文
posted @ 2024-09-11 17:39 飘杨...... 阅读(65) 评论(0) 推荐(0) 编辑
摘要: 一、概述 问题现象: 在做NDK开发时,项目能正常运行。kotlin/java端不报错。ndk端(cpp)会出现找不到系统头文件的情况。如:<jni.h>文件都找不到。但是此时项目运行起来是一点问题没有。 此时的在ndk的cpp文件夹下写代码是没有智能提示的,那效率是相当的低,果断不能。 使用cma 阅读全文
posted @ 2024-09-11 09:51 飘杨...... 阅读(14) 评论(0) 推荐(0) 编辑
  2024年9月9日
摘要: 一、概述 介绍一下常用的标准坐标系 1.标准坐标系 2.屏幕坐标系 3.纹理坐标系 4.FBO坐标系 阅读全文
posted @ 2024-09-09 17:23 飘杨...... 阅读(16) 评论(0) 推荐(0) 编辑
摘要: 一、概述 上一节实践了,通过改变GLSurfaceView的宽高来解决图像变形的问题。 本节将通过正交投影的方式解决图像变形的问题。 分三步: 1.计算屏幕的宽高比及图像的宽高比 var screenRatio = screenWidth.toFloat() / screenHeight var i 阅读全文
posted @ 2024-09-09 16:51 飘杨...... 阅读(54) 评论(0) 推荐(0) 编辑
摘要: 一、概述 在使用OpenGL ES做纹理贴图的时候,图片有小有大。默认情况下纹理是撑满整个屏幕的。 这就导致大图会被压扁、小图会被拉伸。这种体验相当不好。 解决此问题的其中一种方式是:通过缩小GLSurfaceView的宽或高来解决问题。ps:公式可以看做是固定的,直接使用即可。 1.根据屏幕及图像 阅读全文
posted @ 2024-09-09 16:42 飘杨...... 阅读(21) 评论(0) 推荐(0) 编辑