返回顶部
首页 > 资讯 > 移动开发 >Android 通过OpenGl更新Unity图片
  • 181
分享到

Android 通过OpenGl更新Unity图片

openglunityAndroid 2022-06-06 13:06:23 181人浏览 薄情痞子
摘要

这个文章是针对Unity 制作的Android程序 java代码部分获取到图片数据,如果要传递到unity,应该怎么做呢? 首先说一下为啥会有这个需求: 如果Unity程序需要

这个文章是针对Unity 制作的Android程序

java代码部分获取到图片数据,如果要传递到unity,应该怎么做呢?

首先说一下为啥会有这个需求:

如果Unity程序需要外接一些图像设备,例如外接红外摄像头。Unity并不能直接获取到图像数据,首先需要需要在AndroidStudio中做好设备接入工作(驱动程序之类)。然后设备会通过Usb接口返回图像数据,这个数据然后通过java代码传递到unity。

如何传递这个图片数据:

一、图片肯定是字节数组,可以通过java回调,将字节数组传递到Unity。Unity收到数据,然后更新Texture2D的数据。具体交互方式可以看我之前的文章。

二、直接通过字节传递数据的方式,可以实现。但是大数据传递,加上Texture2D的赋值,这样肯定会造成一定延时。

之前一直想通过OpenGl传递,但是属实不会,看了很多资料也没搞通。今天巧合之下弄好了。

首先在Unity中定义一个Texture2D 或者 RenderTexture(主动调用Create,不然不会在硬件创建纹理)。然后可以通过GetNativeTexturePtr获取到Texture的指针。

将指针传递到java中,然后java就可以通过这个指针修改图片数据了

  if (!_update) {
            return;
        }
        int[] imageBuffer = new int[0];
        if (_conversionScript != null) {
            imageBuffer = _conversionScript.getOutputBuffer();
        }
        if (imageBuffer.length > 1) {
            GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, texturePointer);
            GLES20.glTexSubImage2D(GLES20.GL_TEXTURE_2D, 0, 0, 0, _previewSize.getWidth(),
                    _previewSize.getHeight(), GLES20.GL_RGBA, GLES20.GL_UNSIGNED_BYTE,
                    IntBuffer.wrap(imageBuffer));
        }

通过这段代码修改图片数据后,Unity里面的Texture也就更新了。

unity需要设置Graphicsapi为OpenGl,然后取消多线程渲染。

https://GitHub.com/robsondepaula/unity-android-native-camera

这个工程可以做一个参考。

工程中c++部分,我感觉是没有必要的,因此我去掉了,测试暂时没有遇到问题。

Unity 传递图片到java,参考这篇文章Https://blog.csdn.net/hongdameng/article/details/84835032


作者:笔端的年华


--结束END--

本文标题: Android 通过OpenGl更新Unity图片

本文链接: https://lsjlt.com/news/29466.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Android 通过OpenGl更新Unity图片
    这个文章是针对Unity 制作的Android程序 java代码部分获取到图片数据,如果要传递到unity,应该怎么做呢? 首先说一下为啥会有这个需求: 如果Unity程序需要...
    99+
    2022-06-06
    opengl unity Android
  • android通过bitmap生成新图片关键性代码
    1、关键性代码 代码如下: //R.drawable.test为当前工程里的一张图片 Bitmap bitmap = BitmapFactory.decodeResource...
    99+
    2022-06-06
    图片 bitmap 关键 Android
  • Android通过Movie展示Gif格式图片
    本文实例为大家分享Android通过Movie展示Gif格式图片的相关代码,供大家参考,具体内容如下 public class CommonGifView extends V...
    99+
    2022-06-06
    图片 Android
  • Android通过单点触摸移动图片
    本文实例为大家分享了Android通过单点触摸移动图片的具体代码,供大家参考,具体内容如下 编写布局资源文件 先准备一张图片放入drawable内 这里主要就是将图片显示出来并设置...
    99+
    2024-04-02
  • unity通过Mesh网格绘制图形球体
    本文实例为大家分享了unity通过Mesh网格绘制球体的具体代码,供大家参考,具体内容如下 接着上一篇文章说: 球体 public class 球体 : MonoBehaviou...
    99+
    2024-04-02
  • Android通过RemoteViews实现跨进程更新UI示例
    一、概述 前面一篇文章Android通过AIDL实现跨进程更新UI我们学习了aidl跨进程更新ui,这种传统方式实现跨进程更新UI是可行的,但有以下弊端: View中的方法...
    99+
    2022-06-06
    进程 Android
  • 详解android 通过uri获取bitmap图片并压缩
    详解android 通过uri获取bitmap图片并压缩很多人在调用图库选择图片时会在onActivityResult中用Media.getBitmap来获取返回的图片,如下:Uri mImageCaptureUri = data.getD...
    99+
    2023-05-30
    android uri bitmap
  • 通过jquery改图片路径
    随着网站的不断发展,动态效果的需求也越来越高,而jQuery作为一个快速、简单、方便的JavaScript库,极大地简化了前端页面的开发流程。本文将介绍如何使用jQuery来实现改变图片路径的效果。一、需求分析当我们需要多套不同的皮肤或主题...
    99+
    2023-05-14
  • 通过返回切片的值来更新 GORM 中的记录?
    有志者,事竟成!如果你在学习Golang,那么本文《通过返回切片的值来更新 GORM 中的记录?》,就很适合你!文章讲解的知识点主要包括,若是你对本文感兴趣,或者是想搞懂其中某个知识点,就请你继续往...
    99+
    2024-04-05
  • Android怎么实现通过单点触摸移动图片
    这篇文章主要介绍“Android怎么实现通过单点触摸移动图片”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Android怎么实现通过单点触摸移动图片”文章能帮助大家解决问题。编写布局资源文件先准备一...
    99+
    2023-06-30
  • Unity Shader实现动态过场切换图片效果
    本文实例为大家分享了Unity Shader实现动态过场切换图片的具体代码,供大家参考,具体内容如下 一、简单介绍 Shader Language的发展方向是设计出在便携性方面可以和...
    99+
    2024-04-02
  • 通过Yum更新MongoDB 2.6 to 3.0
    通过Yum更新MongoDB 2.6 to 3.0     由于之前使用的是yum安装的MongoDB 2.6(根据官网提示,如果你准备从2.4升级起来,需要先行升级至2.6版...
    99+
    2024-04-02
  • JavaScript如何通过更改图片的src来实现轮播图效果
    这篇文章给大家分享的是有关JavaScript如何通过更改图片的src来实现轮播图效果的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Js实现轮播图实现思路这可能是轮播图最简单点的...
    99+
    2024-04-02
  • html5如何更新图片颜色
    这篇文章主要介绍html5如何更新图片颜色,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!     代码如下:    &l...
    99+
    2024-04-02
  • unity如何通过Mesh网格绘制图形球体
    小编给大家分享一下unity如何通过Mesh网格绘制图形球体,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!球体public class 球体&...
    99+
    2023-06-25
  • Android 中通过实现线程更新Progressdialog (对话进度条)
    作为开发者我们需要经常站在用户角度考虑问题,比如在应用商城下载软件时,当用户点击下载按钮,则会有下载进度提示页面出现,现在我们通过线程休眠的方式模拟下载进度更新的演示,如图(这...
    99+
    2022-06-06
    进度条 progressdialog 线程 Android
  • Android 通过Base64上传图片到服务器实现实例
    Android 通过Base64上传图片到服务器之前做上传图片是采用HttpServlet上传,不过用了一下Base64上传图片后,感觉比HttpServlet方便很多,大家也可以跟着尝试一下。前台图片处理:(传Bitmap对象即可) pu...
    99+
    2023-05-31
    android base64 上传图片
  • Win10通过画图工具更改图片格式无需第三方工具
      我们知道,图片格式有很多种,在不同情况下适合使用不同格式的图片。不少用户更改图片格式都要借助第三方工具,其实通过Win10自带的画图工具即可轻松完成。下面我们来看看具体操作方法。   操作方法   1.打开要更改格...
    99+
    2023-06-13
    Win10 画图工具 图片格式 工具 画图
  • 通过hdblcm更新HANA组件版本
    1. 先在support.sap.com上下载最新的更新包IMDB_SERVER100_122_4-10009569.SAR2. SAPCAR -xvf IMDB_SERVER100_122_4-...
    99+
    2024-04-02
  • 利用nodeJS+vue图片上传实现更新头像的过程
    目录思路:1、前端准备2、node后端服务总结思路: 前端通过el-upload将图片传给后端服务,后端通过formidable中间件解析图片,生成图片到静态资源文件夹下(方便前端直...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作