自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

danee的博客

你要不努力,只能开夏利

  • 博客(20)
  • 收藏
  • 关注

原创 手游逆向专题<英雄联盟手游>: Unity内还原亚索渲染效果

前言LOL手游出来之后,我也是连续肛了一个月的排位,成功到达了黑铁一,特意逆向还原了我的本命英雄亚索庆祝一下。言归正传,先看下还原效果以及原作真机上的表现:图一为手游中的截图,图二是逆向后在unity中的效果,角色位置和摄像机的FOV是我自己调整的(是不是更帅一点)分析工具选择比较常用的有Intel GPA和Renderdoc,这都是目前主流的分析工具,对比之下: 模型:GPA抓取的模型只能存obj格式,uv和切线数据需要另外从VBV顶点缓存中导出再进行与模型合并,..

2022-01-07 11:11:46 2377

原创 [技美]Renderdoc确认线性or伽马空间工作流

判断工程颜色空间方法:通过renderdoc查看贴图输入格式以及framebuffer里当前屏幕缓存的格式:判断工程颜色空间方法:通过renderdoc查看贴图输入格式以及framebuffer里当前屏幕缓存的格式:参考依据:1.通过传入贴图属性设置:1.1 在gama空间下,不管勾不勾选srgb,传入的贴图格式都是GL_COMPRESSED_RGB8_ETC21.2 线性空间下,如果勾选了srgb的图,会以GL_COMPRESSED_SRGB8_ETC2格式存在2.在fra

2021-10-27 18:58:01 462

原创 [技美]反编竞品shader过程

Renderdoc下载地址:https://renderdoc.org/Renderdoc截帧教程:https://zhuanlan.zhihu.com/p/80704313GPA下载地址:https://software.intel.com/content/www/us/en/develop/tools/graphics-performance-analyzers.htmlGPA截帧教程:https://zhuanlan.zhihu.com/p/68741433竞品游戏模型破解流程:htt

2021-02-24 11:45:51 5863 9

原创 [技美]renderdoc扒模型教程

分享一个项目组中运用来解决上线项目从热更层解决阻断问题的方法。由于项目已经上线,修改C#代码会涉及到换包,那我们可以通过在lua这边进行异常捕获,绕开阻断的报错目前游戏中在玩家跳转场景的流程中,一旦发生任何C#或者lua的异常,均会导致场景跳转流程中断,玩家基本上只能杀游戏重进,导致体验非常差。导致这种情况的原因是 游戏中的协议处理都是由一个pcall包裹的OnSocket函数响应。在OnSocket函数执行的过程中,出现的任何未被捕捉的逻辑异常(lua内部的错误或者lua调用C#的wrap.

2020-11-30 15:10:24 7999 14

原创 [unity tool]预设嵌套引用找回工具

unity中的预设体,如果开启了序列化资源设置,可以用文本编辑器形式打开,发现预设资源信息的引用绑定是用YAML格式编写的文件,所以我们通过它的YAML+meta文件,制作了这个预设找回工具,强烈建议先阅读TAML解析原理,下文有跳转链接demo工程github链接:https://github.com/TraineeDan/UnityToolKit腾讯文档实战链接:https://docs.qq.com/doc/DZWFJanZ2QkRsc29u?createTS=1603715324381&amp

2020-11-17 10:39:56 308

原创 [unity]调试Unity CSharp源码

分享一个调试unity原生API的方法,注意:只能调试外围C#包裹类,更里面还是用C++写的,还是被封装起来的首先确定目标接口所在的dll文件以调试Transform.localEulerAngels为例:由上图可知目标DLL文件为:UnityEngine.CoreModule.dll关闭所有unity项目和visual studio。注意以下所有命令使用cmd而不是powershell。dll转debug模式找到编辑器安装文件夹(D:\DevTools\Uni..

2020-11-17 10:15:26 1290 2

原创 [Unity]unity打开工程,导入资源时候奔溃闪退解决方法

前些天使用unity导入资源途中,unity奔溃了,随后我重启了电脑,再次打开工程,也是在导入资源中差不多相同的时间unity又奔溃了,查看了unityeditor的log,没有发现有用的线索,最后了解到这种导入资源时候的奔溃一般都是本地临时文件有问题。随即我删掉了本地临时文件夹即Libraty文件夹,重新导入资源,问题解决。需要重新编译,导入耗时会比较久,删掉的文件夹如下:...

2020-01-08 10:18:02 4011

原创 [NGUI]NGUI中的九宫格切图模式

选择UISprite中的Type切换Sliced模式即切片模式,可以保证我们UI图片四个角不进行拉伸然后点击右上角的Edit,进入我们切图视图接下来我们可通过改变Border中的数值,改变数值时候可以通过下方UICommonAtlas窗口实时查看切线的位置,限定了我们四个角的变形区域,最后我们调整结束后,直接点击hierarchy中其他物体就会自动保存切换到之前的属性面板。这种方式...

2020-01-07 23:59:33 1365

原创 [C]C语言中的常量指针和指针常量

常量指针:int *const q = &a; //q是const *q = 26; //OKq++; //ERROR指针是常量,初始化之后就不可以重新赋值 指针常量:直接说成指针常量其实不是很正确,应该是指针指向的常量const int *p = &i;*p = 26; ...

2020-01-07 17:19:14 112

原创 [C]C语言中指针和数组

数组就是一个常量指针,所以我们不能直接给另一个数组赋值int b[] = int *const b因为数组可以看作是一个指针,所以我们可以看到下面几个表达式都是等价的int sum(int *ar,int n);int sum(int* ,int);int sum(int a[], int n);int sum(int [],int);...

2020-01-07 17:13:05 60

原创 [C]C语言中使用const转换

void f(const int* x); int a = 15; f(&a); // ok const int b = a; f(&b); // okb = a + 1; // Error!作用:总是可以把⼀个⾮const的值转换成const的 当要传递的参数的类型⽐地址⼤的时候,这是常⽤的⼿ 段:既能⽤⽐较少的...

2020-01-07 17:09:52 521

原创 [C]C语言中什么是左值

一般左边需要运算出来的值,这种特殊的值,我们称为左值,所以*左值之所以叫左值,原因如下:是因为出现在赋值号左边的不是变量,⽽是值,是表 达式计算的结果,eg: a[0] = 2; *p = 3; ...

2020-01-07 17:06:54 965

原创 [Lua] 迭代器pairs与ipairs实际使用差异

最近写了一段代码,发现table有我们自定义索引时候,使用ipairs去遍历table是不行的,无法通过迭代器去拿到我们的数据,eglocal temp = {["one"] = "pathOne", ["two"] = "pathTwo"}for k,v in ipairs(temp) do --这里不管打印 k 还是 v ,都是空值 p...

2019-12-31 11:16:54 279

原创 [Lua] 函数的尾调用

含义:尾调用就是指函数最后只执行调用这个函数的一件事,如下:function f(x) return g(x)end函数return时候只调用了另一个方法g(x),所以它是尾调用,我们为什么要使用尾调用呢?因为尾调用不需要使用栈空间,那么尾调用递归的层次可以无限制的,不会导致栈溢出。为加深印象,以下例子都不属于尾调用return g(x) +1 --不是...

2019-12-31 10:52:03 275 1

原创 [Lua] lua中的匹配模式

字符型:%.任意字符 %a 字母 %c 控制字符 %d 数字 %l 小写字母 %p 标点字符 %s 空白符 %u 大写字母 %w 字母和数字 %x 十六进制数字 %z 代表 0 的字符模式修饰符:+ 匹配前一字符1次或多次 * 匹配前一字符0次或多次 - 匹配前一字符0次或多次 ? 匹配前一字符0次或1次 ^ 以^开头只匹配目标串的开始部分 $ 以$结...

2019-12-31 10:47:41 284

原创 [NGUI] 线性空间下,替换NGUI的Sprite的渲染shader

最近,项目组要替换新的一轮UI相关,但是由于是线性空间的问题,UI拖进来后打入图集后的显示效果差强人意,如下图所示一开始不知道如何去更改sprite所使用的shader,傻逼逼的全部使用texture挂载整个UI界面,draw call在燃烧。。。最后查阅了下资料,发现使用NGUI打出来的图集文件所对应的材质球可以去更改用于图集渲染的shader公司现在是自己写了一套ETC格式的...

2019-11-05 10:27:13 258

原创 [Unity] 半透的UI图在线性颜色空间下的显示问题

前几天遇到了新项目在线性空间下使用NGUI装载半透图显示问题,如下图所示,两张图片是同一张,上面的texture是经过了shader处理所以显示正常,但是我们可不可以在导出图片时候就已经把图片设置好呢?就这个问题咨询了公司新来的渲染专家,发现UGUI也有这个问题的,看了挺久还是使用了shader去转一下伽马,听得过程一脸懵逼,最后在我的坚持下,专家推荐了下面文章的链接,对我认识线性和伽马空...

2019-09-18 11:23:18 986

原创 [C#] 基础笔记

1.0 -VS中调试方法F11-逐语句调试F12-逐过程调试断点调试-程序运行到那里会终止(鼠标左键点击代码左边灰色地带),然后点F11一步一步执行,就是不用一步一步点前面,从断点那里开始调试2.0-for循环1-已知循环次数时候可以使用for循环2-输入完for后点击两次Tab创建for循环框架,输入for然后点击两次Tab创建倒序for循环3.0-随机数...

2019-06-30 22:01:48 348

原创 [C#] 字符串的性能优化

平时我们操作一个字符串时候都是直接对string进行操作,建议如果对一个字符串进行频繁的操作时,可以使用strinBuildder,下面通过堆栈中的内存占用进行对比解释一下。第一种是直接使用“+”将两个字符串相连接:这时候我们的字符串在堆栈中的引用关系就会变成:如果我们使用stringBuilder的话:因为在生命stringBuilder对象时候已经申请了100个字符...

2019-06-09 19:49:18 793

原创 [Unity] texture导入相关设置

当你想要使用texture去做背景或者搭建比较大块的UI显示图时候,导入时候要注意,注意修改texture的wrap mode属性为Clamp,否则图片的边缘会有线框,默认会选中第一个的Repeat,会有种图片拼接的感觉。...

2019-05-30 09:55:37 1445

空空如也

空空如也

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

TA关注的人

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