自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

勥小透明

偶尔存一下技术笔记用~

  • 博客(127)
  • 资源 (1)
  • 问答 (1)
  • 收藏
  • 关注

原创 搭建 blender python api 的外部开发环境

首先,blender 的 python api 包叫 bpy,这个玩意很特殊,它要求你的python版本在 3.7 ~ 3.8 之间,也是没谁了,太奇葩了,所以我们需要用 conda 创建一个 python 3.7 的环境,专门用来给 blender 用。其实到这一步,已经够我们开发 blender 脚本的了,如果要执行的话,打开 blender,切到 Scripting 里,打开我们编写的 .py 文件,然后点运行就可以了。然后是 IDE 的选择,这个比较自由,vscode, PyCharm 看你高兴。

2024-02-15 13:38:56 602 6

原创 在 Unity 中获取 Object 对象的编辑器对象

现在不想挨个在 Inspector 上都点一遍按钮,所以就需要能获取到它们的编辑器对象。有这个需求的原因是,在编辑器的 Inspector 逻辑中,写了许多生成逻辑。如果我们想扩展 Unity 的原生组件,也可以借助这个方法来实现。

2023-12-27 17:07:12 807

原创 GLSL: Shader cannot be patched for instancing.

最近在 unity 里碰到了这么一个错误,只有这么点信息,让人看着挺懵逼的,后来发现,是因为 unity 的 terrain 组件在设置里勾了 Draw Instanced 选项导致的,感觉应该是 unity 的 bug。因为错出在 2021,2022就没这个问题,如果你也碰到了,且没法换版本的时候,可以尝试这么去搞一下。

2023-11-16 14:15:07 207

原创 Miniconda 使用进阶,把它添加到右键菜单中

因为最近有写 python 的需求,且我是用 Miniconda 来管理本地 python 环境的,所以就涉及到需要频繁的进入到环境的命令行中,每次都需要通过官方提供的快捷方式,然后还要一路设置环境和路径,好烦呀。这样,我们就可以创建多个右键菜单,并通过 conda activate 命令,直接打开预定环境了,节省了好几步的流程,舒爽了!在这之前我们需要创建一个新的 command “项”,默认值要填的就是启动命令了。打开 ico 目录下的相关 .json,我们就可以看到写启动命令所需要的相关代码。

2023-11-03 15:27:30 145

原创 解决Unity打包时,Android SDK 报错问题

CommandInvokationFailure: Failed to update Android SDK package list.和java.lang.UnsupportedClassVersionError: com/android/prefs/AndroidLocationsProvider has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version

2023-10-20 18:04:32 2671 1

原创 在 rider 里用配置 Perforce(P4)的注意事项

还是看人家旧版本的配发时反应过来的,我还纳闷只有 p4vc.bat 呀,没看到 .exe。1是连接形参的4个参数都得填,字符集看你项目的要求,这里。整个配置界面里,关键就配2处位置,但是都有些误导性。呢,搞得我一开始没填,还以为我没有工作区呢。不知道是不是写错了,指的其实是。2是P4的可执行文件位置,那个。

2023-10-17 19:09:48 873

原创 c# 用非递归的写法实现递归

最近写代码碰到了一个bug,就是递归次数太多爆堆栈了,然后就写了一个递归工具来解决这个问题。也很久没写文章了,顺手记录一下。

2023-10-12 19:21:01 251

原创 一些 Conda 的常用命令

首先是 Miniconda 的下载地址,比 Anaconda 轻量多了,用起来更舒服,就是没有图形界面。总结一些常用命令,省得每次需要用的时候都得一通查。-n 也可以写成 -name。设置搜索时显示通道地址。conda 可以不写。conda 可以不写。

2023-09-09 11:53:40 316

原创 github上下载的vscode extension报找不到“vscode“模块的问题

就会根据 package-lock.json 中的记录,把 node_modules 文件夹里需要的模块都按一遍了,就不会再报找不到模块了。主要是因为下载的源码工程里,没有 node_modules 这个文件夹,因为它本来就是需要被忽略的,所以需要我们给它重新生成回来。有问题的是这句,找不到 vscode 模块,错误代码 2307。问题来自于下载的 vscode 扩展源代码包。在终端中执行查看已安包的命令,如下。打开 vscode 的终端,执行。就可以看到当前工程所安装的包了。

2023-07-23 23:30:35 896

原创 记录一下解决 Unity A Native Collection has not been disposed 错误的要点

然后我们就可以发现,出错的地方在 UnityWebRequest 上,经过一通查询,发现最多的说法是,申请的 request 没有回收导致的内存泄露,解决方法很简单,就是添加一下 using 关键字。第一步先说怎么定位有问题的地方,Unity编辑器其实有一个隐藏的内存泄露检测模式的功能,可以把这个错误的所在堆栈给打印出来,这里提供一段代码来启用这个功能。我们有的时候,会设置自己的 uploadHandler ,但是不设时,request 自己原本也有一个的,它就不会被释放了,自然是要泄露了。

2023-07-11 10:57:37 924 1

原创 stable-diffusion-webui 设置双语本地化菜单的方法

首先我们打开webui的extensions目录,并用 git clone 命令克隆下来这2个库,这里选择克隆的原因是,其它的方法总是报连不上服务器,不如这个方法省事。刷新一下我们的webui,确保在扩展界面里选上了这2个插件,并点击 Apply and restart UI。然后切到设置里,选择双语扩展的设置,把本地化改成中文,保存设置并重启UI,搞定。如何在本地布的方法我们就直接跳过了,看这个博主就行,讲的非常的细致了。我们来说说怎么搞双语本地化,最终效果是这样的。

2023-06-01 15:40:03 1289

原创 怎么在手机上测试你的 .aab

2,既然涉及到手机连电脑了,不是新手的同学应该知道 android sdk 工具里有 adb 这么一个玩意,你也要确保自己的电脑上有它,且你也能呼出来,甚至最好在安装前用 adb devices 命令检查一下你的手机有没有被识别出来。都配置好以后,先执行 build_apks.bat ,成功后命令行会自动关闭,并在目录下发现多了一个 xxx.apks 文件,然后确保手机连着电脑,再执行 install_apks.bat ,就可以把你的程序安装到手机上去了。以上2点没做到的话,搞失败了就是大概率事件了。

2023-04-25 11:43:04 674 1

原创 Unity打包google play最新要求的aab文件的方法

一种叫 Play Asset Delivery,是上一种的进阶版,据说 google 会免费给你提供 CDN 功能,你不需要自己弄了,但是带来的问题是,你打的 ab 不能丢 StreamingAssets 里了,个数好像也不能超50,命名也有要求,底层加载时要换 api 等一系列问题。一种叫 Android App Bundle,这个应该算是一种过渡方式吧,就是允许你继续使用 unity 的 Asset Bundle 来更新资源的,你需要做的改动是最少的。现在aab这个东西有2种格式,叫人挺难受的。

2023-04-24 16:25:21 1661

原创 分享一个快速解决google play上架App时,要求你设置隐私政策声明的小工具

之前看别人的创意,然后自己也学着写了个小游戏,结果在往 google play 上架的时候发现还需要你自己准备一个隐私政策声明的网页,而且 google 还不帮你托管!正在头大的时候,发现了这么个小玩意,直接按着它给的填空方式一步步的填下去就可以自动帮你生成隐私政策声明了,最后还可以一键帮你托管到。这个地方,而且是免费的,然后我们再把托管的地址,粘贴到 google play 里就可以了,完美!

2023-04-24 15:54:50 1321

原创 把 Blender 视图的操作方式,改成和 Unity 的一样

用过 Unity 的朋友都知道,在Unity里,我们都是围绕一个物体进行旋转的,但是 Blender 里默认不是这样的,它是绕着你当前焦点的世界位置旋转的,所以也很变扭,像我就总是定位不到目标物体上。因为最近有用到 Blender 建个简单的碰撞器模型,所以需要在2个工具中同时进行操作,所以它们不用的操作键位,就着实的有些难受了,最后决定给改成一样的~这里它有好几个旋转视图,平移视图,不用慌,把 blender 当前的键位找到,改掉就可以了,其它的改不改看你的心情。

2023-02-16 10:13:28 1557 2

原创 聊一聊Unity的Test Framework应该怎么用

这2种模式在写代码上是没有差别的,主要区别在,PlayMode需要编辑器启动,单元测试的代码放的位置也比较自由,EditMode 则需要你先创建一个用来放单元测试代码的专用程序集出来。单元测试文件在编写上没有什么难度,需要关注的就是2个命名空间和2个测试方法的标签,其中[UnityTest] 方法和普通c#方法还有所不同,它是一个协程方法。如果你的目录中一个测试文件都没有的话,它还会贴心的给你一个按钮,帮你创建一个,有的话就直接显示执行列表了。第1步先安装它,或者给它升级到最新。第2步打开工具的主窗口。

2022-12-17 17:44:53 3394 1

原创 Anaconda 在使用时的问题汇总

首先我们知道 anaconda 是自带 conda 和 python 的,那为什么我们在 cmd 里调不到呢?当然是因为你没有配环境变量啦,参考下面这个帖子,它的环境变量是真的有点多。建议你先无视它给的报错,先44下面这2个帖子,很可能都是因为代理有问题,连不上官方服务器的原因。anaconda 有新版本,但是我无法更新?或者创建不出新环境?解决了它,这些问题自然就都解了,连不上服务器就是原罪~

2022-10-04 13:47:55 278

原创 renderdoc捕获的mesh,通过插件一键导出成fbx

起心动念于同事的一句话,后来也看到了很多种解决方案,但几乎都是要先从 renderdoc 里把 mesh 的 csv 导出去,然后在别的软件里,如 unity 中把数据重建成 fbx,感觉不是很丝滑,然后我就有了一个念头,为什么不能直接从 renderdoc 里导出 fbx 呢?别问我为什么不直接改 renderdoc 的源码,先不提c++代码难写的要命,哪天 renderdoc 作者大改版的话,代码还能不能用也不好说,以插件的形式存在,那是最安全的了~假期正好有时间,闲来无事就搞了一下这个工具。

2022-10-03 16:03:01 2943 2

原创 创建基于 fbx sdk 的 c++ 项目

打开链接库的常规选项,设置里面的附加库目录到你要引用的 .lib 目录下,debug就用debug版本的,release就用release的,其实debug,release互相混着用问题也不大,看你自己的。在常规里,附加包含目录,把它的位置指向我们安装的 sdk 目录下的 include 文件夹,进去看你就能发现,里面都是 .h 文件,这些就是我们在项目中使用时,要导入的头文件。选择md的话,就把带-md后缀的lib都搞上来,选的mt的话,就把-mt后缀的lib都搞上来。先从 c/c++ 开始。

2022-09-29 13:03:36 1152

原创 bat和shell中获取文件当前目录的方法

cd到bat文件当前所在的目录下。把路径当一个参数来使用。

2022-09-29 11:53:35 2526

原创 c# 泛型的静态成员

c#的这个特性,需要我们特别关注一下,不过基于这个特性,也可以写出很好用的代码工具。结果就是,不只是泛型成员本身,就连普通成员也是2份了。可以大胆的猜测一下输出结果。

2022-09-16 17:45:48 321

原创 怎么用 PyCharm + Anaconda 创建纯 Python 项目

使用 Anaconda 肯定主要是为了它创建虚拟环境的便利性了,相应的,对于我们创建项目来说,也就分为了是直接使用 Anaconda 自带的那个 Base 环境(里面有很多预装好的包),还是创建一个新的环境出来,我们自己从头开始安装自己需要的包。比较值得说的是 Conda 的位置,它在 Anaconda3 安装目录的 Scripts 目录下,比较难找,尤其是用 PyCharm 的这个菜单,我也是翻了好久。新建一个干净的就比较简单了,选择项目位置,环境的位置,python的版本。

2022-09-16 16:48:13 1636

原创 给 visual studio 和 vscode 都换上 JetBrains Mono 字体

因为使用 JetBrains 的工具干活习惯了,所以看系统字体就觉得各种不舒服,再加上 JetBrains Mono 这款字体确实有独到之处(号称转为编程设计的)。所以就有了一个新需求,就是把 visual studio 和 vscode 里的字体也都给它换成 JetBrains Mono。首先是要去官网下载字体文件,官方地址:JetBrains Mono: A free and open source typeface for developers | JetBrains: Developer Tools

2022-06-23 17:49:33 6058

原创 将一坨WinForm文件包装成一个exe

什么 .net core 3.1 新特性,ILMerge,Costura.Fody 都试了一遍,真心都不好使。还是 WinRAR 最实在~第一步选中 Release 或它的子文件夹,就是最终包含你所有执行文件的那个目录。右键 -> 添加到压缩文件起个你喜欢的名字,记得后缀改成 .exe打开自解压选项填入一个启动路径,原则就是假想你当前解压到的位置模式里,勾上解包到临时文件夹,安静模式选择全部隐藏完美解决,绿色小应用的福音!...

2022-06-16 15:35:10 905 4

原创 数值重映射方法(Remap)

数值重映射虽然不属于系统的 api,但在我们平时的工作中又是不可或缺的。0~1 之间其实很简单-1,1 -> 0,1 时,就是 x * 0.5 + 0.5 = y0,1 -> -1,1 时,就是 y * 2 - 1 = xx和y是具有可逆性的除了像上面这种确定的值外,比如我的范围是不固定的话怎么办?别慌,这也是有公式可以用的,要不说数学的世界很神奇呢~float Remap(float x, float t1, float t2, float s1, flo..

2022-04-21 15:07:06 5098 3

原创 在mac上安装独立的git和git lfs

用过mac的人都知道,mac是自带一个git的,但是像我们这么硬核的人,肯定是要装一个自己的,方便后续接着折腾它,或者拿它出气卸载它。这里为了后面方便管理,所以我选择用 brew 来装它。但是首先你得先装 brew ,这个咱就不说了,你自己解决吧。那我们要怎么用呢?如下命令即可brew install git就是这么的简单,安装过程中,可以靠看日志知道它的路径在/usr/local/Cellar/git/2.36.0因为现在我们的系统里有了2个git,所以我们需要把我们装的这个搞

2022-04-19 20:56:23 3998

原创 怎么在unity的linear颜色空间下,显示gamma颜色空间的ui

其实搞这个项目是没啥意义的,毕竟真把纹理从gamma转到linear下也是很容易的,但是。。。。。。我乐意呀!!!我就是想44能不能这么干,在ps里过渡纹理的颜色空间,可以看我上一遍的文章:怎么在 PhotoShop 里把在 Gamma 颜色空间画的图,转换到 Linear 颜色空间下_勥小透明的博客-CSDN博客​​​​​​每个项目总会有一些因为历史问题遗留下来的坑,就比如有一大批的 ui 贴图都是在 ps 的 gamma 颜色空间下画的,很多很多。。。。。。现在需要把工程转到 Linear 颜色

2022-04-06 16:30:45 2870

原创 怎么在 PhotoShop 里把在 Gamma 颜色空间画的图,转换到 Linear 颜色空间下

每个项目总会有一些因为历史问题遗留下来的坑,就比如有一大批的 ui 贴图都是在 ps 的 gamma 颜色空间下画的,很多很多。。。。。。现在需要把工程转到 Linear 颜色空间下,你不能让人家重画吧,不能吧。。。不能。。。不。。。额,听说好像有的团队比较猛,就真的重新画了一遍的。。。以上内容不谈,其实在 ps 里是有一个方法,可以直接把图过渡过来的,完全不用重画,今天讨论一下这个方法。首先我们讲讲,怎么把 ps 里的颜色空间切到线性里,因为未来我们也是要在线性空间下工作的。打开

2022-04-06 15:15:39 5870 5

原创 unity android 打包报错 Targeting S+ (version 31 and above)...

完整报错应该类似下面这样:Targeting S+ (version 31 and above) requires that an explicit value for android:exported be defined when intent filters are present]unity 配 Android Studio 2020.3 的版本是真滴难用,打包时竟是一些会卡你一下的小问题。。。这个是用 Android 12 SDK 打包导致的,是12的新特性,用来标记当前Activ

2022-03-29 12:03:21 10275

原创 unity shader 里的那些流程控制宏

// HLSL attributes#if defined(UNITY_COMPILER_HLSL) #define UNITY_BRANCH [branch] #define UNITY_FLATTEN [flatten] #define UNITY_UNROLL [unroll] #define UNITY_LOOP [loop] #define UNITY_FASTOPT [fastopt]#else #define .

2022-03-22 12:24:01 5210

原创 法线变换需要右乘矩阵,顶点变换需要左乘矩阵

最近写shader,需要用到tbn矩阵变换法线,突然注意到一个问题,那就是为啥法线都要左乘矩阵,但是顶点变换都是右乘呢?之前也用,但是没有深入思考一下这个问题,结果就是一通猛查。这里也不秀自己一瓶子不满,半瓶子晃荡的数学功底了,放上一些大佬们的说明讲解。模型视图变换时,法线向量要乘模型视图矩阵的逆转置矩阵【转】 - 3D入魔 - 博客园法线变换矩阵_lawest的博客-CSDN博客_法线矩阵4.7 法线变换的疑惑 · Issue #17 · candycat1992/Unity_Shad

2022-03-19 15:07:11 869 2

原创 查看全网 Android 设备图形 API 的支持情况

做渲染的,当然必须得时刻关注设备上图形 API 的分布情况,支持高版本的设备多了,我们就能有更多新特性用了。之前一直不知道怎么查这个玩意,结果发现其实官方就能看!https://developer.android.com/about/dashboards根据官方收集的数据,vulkan 55开,opengl 2 的破机器只剩下 12 了,所以大家 model 3.0 以上的特性可劲的用起来呀!...

2022-03-17 14:41:29 2994

原创 关于 Alpha is Transparency 到底需不需要勾的最终结论

结论当然是需要勾的!原因要从透明混合模式说起,我们知道 unity shader 里有2种透明混合模式Blend SrcAlpha OneMinusSrcAlpha // 传统透明度Blend One OneMinusSrcAlpha // 预乘透明度传统透明模式颜色混合正确是有前提的,就是做混合的目标,它是不透明的,也就是alpha=1。不透明物体的有效颜色即其颜色本身。如果有那种半透明的情况,就是 alpha 在 0~1 之间,其实结果可能是不正确的,最直接表现就是,在混合结

2022-03-17 12:34:14 4893

原创 最近在 mac 上装 brew 和 upx 的折腾经过

因为工作需要,所以想给 mac 装个 maya 用,一看正版钱,好家伙,一年8k+。马上秒怂,然后你懂的,就去下个了 xf-adsk20.app ,结果打不开,它现在也不报是为什么了,苹果挺鸡贼呀。4舍5入盲猜又是 big sur 之后要修复权限的那个问题。然后就打算去下个 upx ,然后强迫症心理,就打算顺便装个 HomeBrew。结果不装不知道,一装发现现在按这个玩意,坑好多,网络环境果然是瞬息万变呀。首先是常规的 ruby 安装命令已经过时了ruby -e "$(cu

2022-03-12 15:56:51 3473 2

原创 如何让 android 项目的 shader 可以被 RenderDoc 调试

这里只以我手上有的 android 手机举例,不排除不同版本的 android 系统,或是硬件有不一样的问题,当然解决这些问题,不正是干这一行的乐趣所在吗。首先我手上的这一台是 google 的 pixel3,android12大家一般都知道,一般要调试 android apk 有2种方式:1,apk AndroidManifest.xml 里面的 android:debuggable=”true”2,/default.prop 中 ro.debuggable=11相当于是解包再

2022-03-07 14:01:56 2767

原创 漫画中的速度线

偶然间看到的这个做法,当然不止可以用来表现速度线,甚至可以拿来当 Noise 用。效果如图Shader "Custom/ComicSpeedLine"{ Properties { _MainTex ("Texture", 2D) = "white" {} _LineCount ("线的数量", float) = 0 } SubShader { Cull Back ZWrite On

2022-02-26 23:16:08 675

原创 Unity GUI +缩进的方法

unity 自己新出了一套前后端的 ui 解决方案 UIElements ,所以 gui 慢慢的就要退出历史舞台了,当然是什么时候就不好说了。不过旧的 gui 方法难免也会用到,所以多学2招总是没错的。这是在看别人项目里的代码时发现的,一个给你要显示的内容+缩进的方法EditorGUI.indentLevel++;后面的元素则就都会往后缩进一下,在做一些勾选开关时,那是相当的好用呀。一般情况下,在你缩完的内容后面,需要再把它缩回来。EditorGUI.indentLevel--;...

2022-02-08 16:53:41 2670

原创 在 Unity 编辑器中,打开一个用来显示网页的工具窗

最近发现 unity 在底层库里,真的藏了好多有趣的功能呀,比如下面这个using System;using System.Reflection;using UnityEditor;public class TestEditorCode{ [MenuItem("Tools/测试用编辑器窗口开网页")] private static void OpenWindow() { string Url = "https://www.bilibili.com/";

2022-01-27 11:30:51 3911

原创 Windows跳过扫描阶段,直接删除文件

del /?显示操作命令信息del ‪D:\UnrealEngine-5.0.0-early-access-1.zip删除指定文件del D:\test\*.txt删除 test 目录下 .txt 后缀的文件del "*.txt" ".*tif"删除目录下指定后缀的文件del /a-r p\根据文件属性删文件实测用安静模式,可以跳过windows的删除扫描阶段,直接开干!...

2021-11-02 21:57:23 2058

原创 blender 中如何给 bpy.types.Operator 传值

最近因为需求,所以要用 python 在 blender 中写功能,甚至还得从 unity 那边通过 cmd 把 blender 的功能调起来,整的那叫一个酸爽,api查到飞起。虽然废了老鼻子劲,但是终于还是写完了功能。其中有一个坑就是,怎么给我们自己创建的 bpy.types.Operator 传递参数值的问题我们知道 bpy.types.Operator 本质上还是声明了一个新的类,class RecalculateVatUvForMeshOperator(bpy.types.Operator):

2021-10-11 15:45:57 516

Reflector-C#反编译工具

Reflector-C#反编译工具,就是反编译C#DLL文件用的,谁用谁知道

2010-05-05

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

TA关注的人

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