自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(120)
  • 资源 (1)
  • 收藏
  • 关注

原创 GPU 渲染管线与着色器 大白话总结 ---- 一篇就够

参考Android OpenGL ES 1.基础概念计算机组成原理–GPU计算机那些事(8)——图形图像渲染原理

2021-10-12 11:47:17 7975 13

原创 图像压缩原理

本文介绍了图像压缩的背景,原理。简单易懂,相信能让你有所收获。

2016-06-20 11:05:30 47142 10

原创 图形学中的抗锯齿讨论以及在unity中的应用

对图形学中的抗锯齿做了讨论,并给出unity中的使用方法

2023-05-22 21:46:12 3293

原创 叉乘在图形学中的几何意义 ---- 判断一个点是否在三角形内

讨论叉乘的几何意义,以及在图形学的一种使用例子

2023-05-15 15:16:46 2069

原创 Unity打AB包时,图片是如何被处理的

ETC2支持RGB和RGBA两种格式,并提供了多种压缩模式供选择,包括不透明压缩模式、预乘透明压缩模式和EAC压缩模式等。、PVRTC、ASTC和DXT等,这些格式在打包时也会被考虑进去,以便在不同平台上获得更好的性能和质量。Unity 会根据目标平台选择适合的压缩格式,例如在 Android 平台上使用 ETC2 格式,iOS 平台上使用 PVRTC 格式。Unity 会根据目标平台选择适合的分辨率,并根据需要自动缩放,例如在手机平台上,分辨率可能被缩放为原来的一半。格式存在的,而不是png图片哦!

2023-04-26 16:57:32 565

原创 Windows下Jenkins常见问题汇总

解决jenkins下,git命令找不到,或者git没有权限等问题

2022-12-23 17:07:09 816

原创 windows11执行python没有任何反应或拉起应用商店的解决办法

解决windows 10或11 执行python没反应或拉起应用商店的问题

2022-12-15 10:56:32 5127 2

原创 Unity 渲染YUV数据 ---- 以Unity渲染Android Camera数据为例子

Unity渲染Android的Camera YUV 裸数据,在shader中做YUV->RGB转换

2022-09-30 20:36:44 3089 2

原创 Unity 截取3D图像 与 画中画PIP的实现

基于Camera + RenderTexture,截取3D游戏世界中的部分图像,还实现画中画的功能。

2022-07-29 16:44:56 1270

原创 Unity shader 实现图片带圆角和边线border

unity shader实现圆角+ border

2022-07-18 21:43:03 4676 5

原创 Unity实现ScrollView并包含吸顶效果

用Unity实现一个滑动的view,子元素可以随意添加,不需要一样。可以上滑吸顶

2022-07-07 10:57:25 1636

原创 Unity实现 GridView 页面

Unity实现GridView,可滑动

2022-07-04 17:59:12 1257

原创 Unity AssetBundle的打包 发布 下载与加载

都2022了,为什么还讨论AB包?不是有`Addressables`了嘛!本文之所以讨论,是为了梳理一下AssetBundle的优缺点,方便跟Addressables做对比。本文分两部分,一是AssetBundle的介绍,以及不使用任何第三方插件,如何使用AssetBundle的API。二是,介绍第三方插件,即QFramework的ResKit如何封装AssetBundle API,做资源加载。

2022-05-16 16:54:17 3207

原创 VirtualStudio导入Unity的C#所有代码

问题背景用UnityHub安装好Unity和对应的VirtualStudio(本文Unity使用2020.3.13, VirtualStudio使用2019),打开Unity工程后,随便点击一个C#代码,可以用VS打开,但只有这个文件,没办法查看其引用的其他C#代码。目标把unity工程下的所有C#代码都默认导入。做法Unity打开Edit->Preference...

2022-05-06 12:21:36 1892

原创 Gradle compileDebugJavaWithJavac lambda 编译错误问题

问题背景导入其他项目的代码,遇到如上错误。也就是编译java的lambda表达式过不去。原因lambda是java新特性,可能要需要升级java版本到11。解决办法升级AndroidStudio到最新的4.2一般一个版本的AndroidStudio都会匹配一个JRE。比如我的电脑,安装最新的4.2后,对应的java版本就升级到11了。JDK目录如下:C:\Program Files\Android\Android Studio\jre可通过如下命令查看版本:C:\Program F

2022-05-06 11:45:38 1176

原创 一种GL error 501的原因和解决 ----no default precision defined引起

1 问题背景搞openGL,排查错误的一个好办法,是执行完一句GL调用,就加一句glGetError,如果有错误,这个函数会返回非0值!本文就是讨论,遇到了,glGetError返回0x501错误的问题。0x501一般代表,GL上下文环境、shader program等对象索引可能有问题。1.1 代码背景vertex shader:#version 300 eslayout (location = 0) in vec4 vertex;out vec2 TexCoords;uniform m

2022-03-09 18:44:13 3563 2

原创 Unity为人物模型 添加动效Animator

本文讨论如何让人物模型快速绑定多种动画,并运行起来。

2022-03-07 16:22:06 24183 2

原创 Android 权限动态请求

在Android M版本以后,权限就没办法Manifest声明就万事了,还需要动态请求。网上已经有不少例子,不过这里还是做一个简单的activity,把动态请求的方法,完整的实现一下,基本可以复制粘贴使用。首先,manifest还是声明一下,兼容老版本。 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <uses-permission android:name="an

2022-02-17 21:44:28 1477

原创 Android View保存为bitmap

基本流程是,先拿到view的宽高,然后创建一个bitmap和一个canvas,canvas使用bitmap作为buffer。然后,调用view.draw(canvas),把view的内容绘制到canvas上。

2022-02-17 21:26:42 2619 1

原创 Android OpenGL ES 渲染文本

介绍如何用OpenGLES 渲染文字。

2022-02-10 15:27:57 5756 2

原创 Unity 动态添加或移除预制件

具体而言,指的是在代码中,动态添加或删除预制件。这种功能,一般用于切换副本,地图等场景。例如,做两个预制件,一个是主城,一个是副本。那可以通过代码,来动态加载2个预制件,来切换场景。先把预制件放到Assets/Resouces目录下,如果文件多的话,可以再叠加个目录,如prefab。例如,绝对路径是Assets/Resouces/prefab/ExitZone.prefab。核心代码:GameObject.Instantiate

2022-01-13 17:29:48 6151

原创 一款简单好用的Unity任务系统

一款简单好用的任务系统,包括任务线定制,弹窗提示,对话框显示等功能。容易扩展,容易使用。

2022-01-13 15:19:24 9206 36

原创 一种signal 5 (SIGTRAP), code 1 (TRAP_BRKPT)的原因

`SIGTRAP` 的错误,指的是`函数没有返回值!`所以写C++代码,要小心,虽然没返回值能编译过,但是最终会运行崩溃。

2021-12-27 15:02:56 12569

原创 Android替换JSON转义字符

要替换json string的转义字符`\`,可以用`String.replaceAll("\\\\", "")`的方法。

2021-12-27 11:08:23 3170

原创 Unity导出Android工程

前言一个Unity游戏,要打包成android apk,有两种方式,一种是直接在Unity上编译出apk;一种是Unity导出android 代码,然后放到AndroidStudio工程编译。第一种很简单,本文不做展开,来聊一下第二种。本文基于Unity 2020.3.13f1c1版本来说明,不同的版本可能使用上稍微有点差异。1 导出首先,需要让工程支持arm v7和arm v8两种架构,否则在某些机型上,会运行失败。做法如下:File -> Build Settings,打开面板后,左下角的

2021-12-14 13:08:54 17213 1

原创 android OpenGL渲染带骨骼动画的3D模型

1 前言前面一篇文章android OpenGL渲染3D模型文件介绍了渲染3D模型的方式,但是,它还是静态的,模型本身不会动,还是不够炫酷。所以本文来讨论一下如何让模型自己动起来。想要动起来,就需要传说中的骨骼动画了。 一般大部分模型文件都支持带骨骼动画的数据,例如fbx, dae,但也有个别不支持,例如obj。本文分两部分讨论,一是捋一下骨骼动画的背景知识,二是在android上怎么用openGL ES渲染。当然了,渲染骨骼动画还是比较麻烦的,大部分场景下,还是走游戏引擎,例如unity。2

2021-12-10 11:54:10 12392 9

原创 signal 11 (SIGSEGV), code 2 (SEGV_ACCERR)的原因和解决办法

1 问题背景写好Android C++代码,运行起来崩溃,日志如下:11-25 15:07:25.546 24467 24527 E glesdemo: ReadMissingBones, m_BoneInfoMap address 0x7e70ed0f88, size 5211-25 15:07:25.554 24467 24527 E glesdemo: GetBoneIDMap, m_BoneInfoMap size 011-25 15:07:25.654 24718 24718 I

2021-11-25 15:39:39 35990 5

原创 android OpenGL渲染3D模型文件

1 前言大部分OpenGL示例代码,要么播放个视频,要么画个三角形,有点简单了,就无法理解游戏中那么复杂的人物,是怎么渲染出来的。所以这里写一片文章,来讲讲openGL怎么加载一个复杂的3D模型。先上一个效果,吸引一下大家的注意力:有关3D模型文件的介绍,请见:OBJ 模型文件与MTL材质文件 介绍制作3D模型的软件有很多,例如3D max, Blender, Maya等。于是就有很多模型文件格式。这么多格式,怎么解析呢?答案就是开源的Assimp(Open Asset Import Libr

2021-11-19 17:12:11 10332 10

原创 OBJ 模型文件与MTL材质文件 介绍

制作3D模型的软件有很多,例如3D max, Blender, Maya等。于是就有很多模型文件格式。 例如.obj、.max、.fbx .3ds。 其中obj最简单,关键是,还可以文本方式打开,对窥探3D模型的数据格式比较有用。所以,我们这里用obj格式来说明3D模型文件。obj由Wavefront公司为3D建模和动画软件"Advanced Visualizer"开发的一种标准,各大3D建模软件都支持,也很适合用于3D软件互相做格式转换。obj文件需要搭配一个附属文件,叫mtl。全称就是materia

2021-11-18 15:51:56 20354 4

原创 Unity 3D对象显示有透明度的纹理(图像或视频) ---- 靠谱可用

1 问题背景有一个3D游戏对象(再次强调,是3D对象,不是2D的UI喔),如Cube, Plane啥的,需要贴上一张图,图中有部分区域是透明的。比如酱紫:然后,如果直接贴图片,则透明区域会显示黑色。例如:2 解决方案2.1 场景搭建首先,创建一个3D对象,如Cube。然后,把图像加入到工程的Assets目录下。Hierarchy面板选中Cube,然后把Project面板的图片,直接拖到Inspector面板。发现,Cube显示了图片。但是,透明区域是黑色的。这有2个问题需要弄清楚。

2021-09-01 11:19:47 1508 1

原创 Unity Android动态请求权限

前言在 Android 6(API 级别 23)及更高版本上,Android.Permission API 要求在需要时,动态请求使用某些常用系统功能(例如相机、麦克风或位置)的权限,而不是在应用程序启动时立即请求权限。Unity的Android版本,一样要遵守这个要求。这里介绍2种方法,一种是C#直接请求,一种是C#调用Android的java代码请求。1. Unity的C#直接请求Unity本身有动态权限的请求方法。但是这种比较局限,比如,无法获得权限请求的结果。anyway,这里还是介绍一下

2021-08-27 17:05:29 1444

原创 Unity同步或异步调用Android的方法

1 Unity如何使用Android插件很简单,把android的模块,打包成aar或者jar,放到Assets/Plugin/Android即可!2 同步方法如何调用2.1 例子1Android端假设Android有一个方法 public static String GetVideoParams() { MediaMetadataRetriever retriever = new MediaMetadataRetriever(); retriever.se

2021-08-26 20:24:14 1415

原创 Unity Android 错误 call to OpenGL ES API with no current context (logged once per thread) 解决办法

当你使用unity + Android 混合使用,且使用Android编译openGL相关代码,并作为插件给Unity使用,则可能遇到上面的错误:08-26 11:11:42.871 20717 20739 E libEGL : call to OpenGL ES API with no current context (logged once per thread)这可能和一个选项配置有关系:如上图,有个Multithreaded Rendering。把打钩去掉即可!这是一个多线程渲染的选项

2021-08-26 14:46:05 1510

原创 Unity 绿幕视频抠图算法&原理与实现 -- 效果极好

1 Unity播放视频1.1 把绿幕视频放到Assets中这个太简单了,直接视频拖到Assets下的某个目录,例如video目录1.2 创建播放视频的对象RawImageHierarchy面板,UI -> Raw Image。1.3 创建Render Texture这个将为视频播放的输出,也是RawImage的输入。在Project面板,你要的目录下,邮件,创建Render Texture建立好了,在Inspector面板,改一下纹理size,最好和视频源一样的宽高。1.4

2021-08-10 21:48:03 7846 16

原创 Unity 渲染 Android播放的视频画面

前言Unity本身可以直接播放本地视频或网络视频,网上有很多例子,例如:https://blog.csdn.net/cs874300/article/details/89294433这可以完全在Unity封闭完成。但是,有一种情况,是播放逻辑希望在Android的代码内完成(比如是直播的流,用的是android 的直播SDK),希望Unity只渲染我播放的画面就可以。这种情况怎么做呢?本文一一说来。首先,完成上面的工作,需要依赖FBO,所以先介绍FBO。FBO简介FBO,全名Frame Buf

2021-08-10 16:22:38 3193 5

原创 Unity Android 查看或修改AndroidManifest 如权限等等

首先,发布Android版本,可以查看这个文章:Unity发布版本(windows或Android)Unity自动帮你生成了Activity, AndroidManifest ,资源等Android基本文件。你啥也不需要管。但是,但是,如果你运行起来,发现没有权限,需要Manifest声明修改,怎么办?两种情况:1. 在Unity中使用了网络/存储/震动等调用,那Unity会自动列出权限,在编译时可以配置。例如,你用了网络,那File -> Build Settings -> Pl

2021-08-05 19:49:16 4298 3

原创 Unity发布版本(windows或Android)

1 PC发布版本Files -> Build Settings打开先Add Open Scenes把你需要的场景都加入发布列表。然后,Player Settings点击,到Inspector面板(不同版本,显示的可能不一样)Product Name 写一下游戏的名称;Default Icon,点击箭头区域,选择一个游戏图标。然后,点击Resolution and Presentation,根据需要设置画面的固定大小(不是必须)然后,Other SettingsColor Spac

2021-08-04 17:16:28 1560

原创 Unity游戏结构与引擎视图

游戏结构具体如下图:一个游戏由多个Scene场景组成。Sence类似于Android的activity。一个Scene场景,由多个GameObject游戏对象组成。GameObject类似于Android的各种Button呀,ImageView呀等等。一个GameObject游戏对象,由多个Component组件组成。Component类似于Android Button的LayoutParams。一个Component组件,由一些具体的属性值组成,类似于Android LayoutParams

2021-08-03 21:08:32 855

原创 Unity 为游戏对象设置标签

我们从【是什么】【为什么】【怎么用】三个问题,来讨论游戏对象的标签。1. 什么是标签标签 (Tag) 是可分配给游戏对象的参考词。例如,可为玩家控制的角色定义“Player”标签,为场景中的各种树木定义为“Tree”标签。具体到Unity中,比如,我们新建一个游戏对象,那么,Inspector面板,开头就是个Tag的坑位。值是Untagged,也就是没有具体标签值。2. 为什么要有标签标签不是必须的,它主要用于脚本,一个典型的例子是,你拿到了一个gameObject,但不知道这个是啥东西,就可

2021-08-03 17:54:51 3865

原创 Unity脚本调用其他GameObject游戏对象

不知道标题写的够不够清晰,意思就是,有个脚本,需要使用同一个Scene下的其他游戏对象。该怎么做呢?1. 脚本定义一个变量这个变量,不需要像java那样,需要自己去new,而是回到Unity软件中,去绑定一个对象。ps: 记得脚本要保存一下喔!Ctrl + S,动作很快,你忍一下^^2. Unity绑定到具体对象回到Unity软件,点击绑定这个脚本的游戏对象(GameObject),Inspector面板将会显示脚本的全局参数。而且,还自动把参数拆解了一下,写成Test Obj了,我也不知道

2021-08-02 11:29:24 5498 1

3D卡通人物模型,fbx格式

3D卡通人物模型,fbx格式

2022-03-04

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除