12月 25 2023
Categories: Tags:

前段时间摸鱼的时候把自研在Steam Deck上跑起来了,发现网上相关资料比较少,记录下过程中一些好玩的坑。ps. 花时间搞这个一方面是接入手柄之后,实体操作感逼格瞬间上来了 还有一个原因是我有这个设备。 ...

10月 18 2023
Categories: Tags:

这两天升级了下XCode 15,一开始遇到了Xcode 15 linking error、unary_function、NWEndpoint.hostPort(host: , port: ) crash in Xcode15几个都是小问题。结果打了个包发现Build时间暴增: 本来单次编译需要1小时左右,现在直接涨到2.5小时还不太够。 ...

6月 30 2023
Categories: Tags: ,

今天在等编译过程中,抽空了解了下一直出现的MSB8028(这个警告其实出现了应该有几年了orz),有点意思…从表现上来说非常简单,就是编译项目的时候有几个工程(后来发现其实是名字要长…)很容易报这个warning 4>C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Microsoft\VC\v170\Microsoft.CppBuild.targets(517,5): warning MSB8028: The intermediate directory (xxx\Engine\Intermediate\Build\Obj\x64\Hybrid\NvBlastExtSerialization\) contains files shared from another project (NvBlastExtSerialization.vcxproj). This can lead to incorrect clean and rebuild behavior. ...

6月 04 2023
Categories: Tags: ,

之前在angle折腾笔记里提到恢复angle作为ES3模拟器,方便PC上查BUG。当时为了模拟EXT_copy_image使用了Vulkan Backend,别的用起来都挺好,但是很蛋疼的一点是RenderDoc抓帧的API其实都是vlk的… 这礼拜查别的BUG的时候,索性痛定思痛尝试使用GLES Backend。 这里记录下补全功能以及修复了若干Angle/RenderDoc相关问题的笔记… ...

4月 03 2023
Categories: Tags:

本周版本的时候QA同学跑过来说iPhone 13进游戏闪退,而且没有抓到闪退的堆栈信息; 盲猜是内存问题,当时手头在忙就直接找人试了下低端一些的设备,结果没有翻车orz 就一时间有点摸不到头脑。后来腾出手直接XCode连着看了下,雀实是内存冲到2G之后被系统干了,在- (void)applicationDidReceiveMemoryWarning:(UIApplication*)application里打了行LOG也触发到了。 昨天在家终于有空仔细研究下这个问题,最后发现还是蛮少见的情况… 特意记录一下笔记。 ...

2月 12 2023
Categories: Tags: ,

几年前在公司内部KM分享过如何方便的将RenderDoc内嵌到内部版本中从而方便调试,以及如何向下兼容更低版本的Android系统(RenderDoc Android最低系统要求是6.0)。 手法其实非常简单: 直接将libVkLayer_GLES_RenderDoc.so这个打包进apk中然后手动加载下即可; 这样做额外的好处是不需要依赖其hook系统的机制,所以不需要interceptor-lib,进而压低系统版本要求。 ...

5月 07 2022
Categories: Tags: ,

时隔多年重新编译angle,主要是为了PC上能模拟ES3.1,特别是最好能支持VT相关操作。本来不抱希望,毕竟angle文档上写的很清楚,目前GL/GLES/Vulkan Backend都只支持到ES 3.1,ES 3.2还处于in progress。 但是突然发现EXT_copy_image这个扩展在Vulkan Backend上已经被支持Vulkan: Add support for EXT_copy_image,瞬间觉得有戏就折腾了下。 ...

5月 01 2022
Categories: Tags:

最近抽空研究了下Unity的SRPBatcher,根据官方文档说法这货能极大降低DrawCall代价,从而达到提升性能的目的,而且这个行为大多数情况下对于使用者是透明的。正好对这块比较感兴趣其实是最近在尝试优化这块,看看有什么思路可以白嫖,抓了帧稍微研究了下原理。 ...

4月 23 2022
Categories: Tags:

最近研究了一段时间的IL2Cpp编译出来的dll,整理下笔记记录下中间遇到的一些问题和解决方法。 ...

4月 22 2022
Categories: Tags:

最近看的一个问题,最后想通很简单但一开始自己狠坑了自己一把,简单记录一下。 为了实现运行时喷涂,直接动态RT解决问题: 喷涂时利用2uv直接绘制到一张RenderTexture 模型正常渲染的时候采样这张RenderTexture。 ...

1月 15 2022
Categories: Tags:

这个话题其实已经连着好几次了orz(之前博客分享过Metal 2.1中的新关键字invariant和奇妙的Shader精度),但昨天有朋友又遇到PreZ挂了的情况: D3D11下如果关掉Shader Optimize后PreZ和Shading Pass的深度又对不上,但打开Shader Optimize就显示正常。 ...

12月 12 2021
Categories: Tags: ,

周五的时候UX同学换了一批字体,然后无意间发现TextField的光标鬼畜定位了orz 今天终于有空跟进下这个问题 顺便弥补下太久没更博客 ...

3月 06 2021
Categories: Tags:

最近尝试利用UE4自带的功能生成物理简模,参考Setting Up Collisions With Static Meshes有几种模式: 直接生成简单的包围盒/球/胶囊体; 利用DOP(discrete oriented polytopy)即若干对齐轴平面向内挤压; Auto Convex自动生成。 此外可以将多个简模组合使用,这里不再赘述。我们一开始是批量Auto Convex,结果发现对于一些”规则”网格生成的结果非常诡异。例如题图中的一个长方形盒子,生成的Auto Convex似乎只有一个表面。 ...

3月 06 2021
Categories: Tags: ,

这次是有几个同事遇到的一个问题: release版本编译引擎没问题,但是debug下会在链接步骤挂掉: [arm64-v8a] SharedLibrary : libGame.soD:\SDK\android-ndk-r21\toolchains\llvm\prebuilt\windows-x86_64\bin/../lib/gcc/aarch64-linux-android/4.9.x/../../../../aarch64-linux-android/bin\ld: final link failed: File truncatedclang++: error: linker command failed with exit code 1 (use -v to see invocation) ...

3月 06 2021
Categories: Tags: ,

最近一段时间突然发现打包机上编译引擎安卓版本极慢,正好有现成的IncrediBuild所以研究下能不能用来加速。IB本身是商业软件,对Visual Studio的支持已经非常好了: 既可以使用Extension形式直接调用,又可以使用命令行传参sln。但是网上关于结合NDK使用的资料就非常少,这周花了大半天终于跑通流程,就此记录一下。 ...

12月 26 2020
Categories: Tags: ,

最近用RenderDoc调试的时候发现GLES的glCopySubImageData结果不太对,翻了下代码发现实现不是特别完整(只支持了整块拷贝的情况)。于是动手自己实现了一发,结果测试的时候居然卡在了一个编译安卓版本上。 之前我都是在Mac下编译的安卓,这次手头没有合适设备不得不研究了下如何在Windows上编译。关于这块网上资料比较少,CONTRIBUTING/Compiling.md也语焉不详,因此就在这里记录下步骤。 ...

8月 23 2020
Categories: Tags:

搬家之后重新折腾了下Kodi,结果第一步就卡死在小米电视上了……下载官方最新的Kodi 18之后发现“解析包错误”:搜了下发现从Kodi 17开始要... ...

2月 12 2020
Categories: Tags: ,

今天在查真机渲染问题的时候,突然发现神器RenderDoc无效了…Attach Process没问题但是始终抓不到有效Context。 ...

2月 01 2020
Categories: Tags:

最近在家闲的快发霉了,无聊之下花了点功夫把部分代码在OSX上跑起来(之前都是在Win上开发),遇到了一个很有意思的崩溃:目前定位出来是不同compiler下的memory layout区别。 ...

11月 30 2019
Categories: Tags:

老生常谈但是坑了我一把的问题……昨天有人吐槽为毛现在的UI质量好差,一圈狗牙什么鬼 ...

11月 28 2019
Categories: Tags:

前几天同事在PC(DX11)上遇到了一个很有意思的问题: 顶点属性经过插值之后从一个非常接近0的正值变成了负数…堪称有毒。 ...

9月 04 2019
Categories: Tags:

纯笔记。昨天尝试往Modes面板添加了自定义的AActor,直接参考[UE4] レベルエディタの配置ツールに独自の項目とアセットを追加する方法里的代码实现: ...

8月 24 2019
Categories: Tags:

之前翻Unity的更新日志时候发现Progressive Lightmapper里自带上了Lightmap seam stitching。正好之前研究过这个问题,出于手痒也在Unity里实现了一发,在这里也整理下这个问题的原因、现象及解决办法。 下图为Unity文档示例,红框为有Seam的错误效果,绿框为修复效果。 ...

3月 01 2019
Categories: Tags:

最近一段时间忙的天昏地暗,难得有空继续整理一发遇到的奇怪问题:iOS12设备上PreZ Pass出现了闪烁。这个问题也蛮有意思的,最后在同事的指导下找到了原因:Metal Shading Language Specification里面专门提到 ...

2月 26 2019
Categories: Tags:

最近帮忙解决了一个很奇怪的问题:在材质球里如何获得Instance模型(譬如Foliage)的坐标,其实也就是Foliage instance position in Material editor。TA需要的是模型原点的世界坐标。 ...

9月 26 2018
Categories: Tags:

之前在Android下利用Hook实现mono dll加密里提到了Unity3D研究院之Android加密DLL与破解DLL .SO这篇文章。今天看某个PC上游戏的时候发现用了一样的思路,掏出IDA看了下确实是修改了mono_image_open_from_data_width_name 来实现的。比较好奇有没有简单的方法绕开它而不是去跟汇编较劲,于是找到了一个比较通用的思路。 ...

9月 24 2018
Categories: Tags: ,

之前提到过利用Jenkins自动化出包流程分享,后来发现一个问题是每次iOS编译的时候都是全量编译,很奇怪。根据Incremental builds for IL2CPP里的说法只要选择Append应该已经支持了才对,但是发现还是每次触发了全量编译。 ...

8月 06 2018
Categories: Tags:

之前在利用shader_feature打造最小版本Shader提到shader_feature配合AssetBundle使用的BUG。当时是通过multi_compile绕开,现在在Unity 2017里通过ShaderVariantCollection可以完美解决,记录一下遇到的坑。 ...

7月 25 2018
Categories: Tags:

记录一个小技巧:dnSpy直接调试Unity Editor部分代码。 ...

7月 22 2018
Categories: Tags:

最近在Unity里重新校正了下Diffuse SH9和Specular IBL,全套对着cmft校正了下…发现不少坑,仅此记录。 ...

7月 16 2018
Categories: Tags:

最近半年赶项目的事情一直很忙,好不容易上周末的时候有空做点渲染的东西玩,于是尝试了一下Bent Normal Maps。 这是UE 4.17发布的功能之一,可以拿来解决间接光照漏光;工具部分Substaince Designer已经支持利用高模烘焙Bent Normal。效果图对比来自UE4文档: ...

7月 15 2018
Categories: Tags: ,

拖了很久,才发现只上传了ppt但是没放出下载链接(逃:Unity User Group 北京站(第十二期) ...

7月 15 2018
Categories: Tags: ,

在Bugly上恢复原生崩溃堆栈信息需要符号表文件,具体可以参考分析libunity.so Release崩溃。我们在升级2017之后发现引擎有些行为发生了变化,这里记录下。 ...

3月 10 2018
Categories: Tags:

又忙的好久没打理博客了…最近来回使用Unity/UE两个引擎,发现有个可视化UV/Normal的小功能不错,花了一晚上在Unity 5.6里面山寨了下: ...

2月 07 2018
Categories: Tags: ,

最近在查一些渲染上的问题,发现RenderDoc这货非常好用,而且引擎原生支持用起来也很方便。 ps. 这个工具是从DX层去抓取真实绘制信息,和引擎内置的工具会有一定的区别。而且像纹理状态、寄存器变量甚至调试Shader上会方便非常多。 ...

11月 18 2017
Categories: Tags:

之前其实在C#反射——掀起Unity Editor面纱里提到过Profiler的增强;后来官方提供了更加方便的MemoryProfiler,上周末的时候顺手用类似的思路增加了diff功能并进行了一定的优化。原来那个ProfilerDiff就直接废弃,毕竟当时懒了没做序列化 ps. 本来我想直接用gulu大大的PA_ResourceTracker,不过仔细研究了下代码发现需要接入的东西比较多(很多数据信息是通过网络传输的),嵌入我们自己的项目不是特别方便。最后自己动手弄个山寨版,也就半个多小时搞定… ...

10月 26 2017
Categories: Tags:

今天正好和朋友聊到嵌套Prefab这个话题,发现这个其实是一个很多项目都需要但是Unity并没有提供内置支持的功能。在过去的项目中我们也实践过不同的解决方案,也了解过其他团队的一些做法,在这里正好整理一下,供大家参考/吐槽。 其实还有一个原因是又好久没更新博客了… ...

8月 30 2017
Categories: Tags:

虽然说UGUI已经开源,但是最核心的几个文件是c++实现的因此依然不可知。这几天好好的研究了下,整理出了一些自己的理解。这部分说实话是连蒙带猜出来的,如有理解不当的地方欢迎沟通交流。 ps. 后面的代码都以Unity 5.x为例分析。 ...

8月 04 2017
Categories: Tags:

最近读了利用GPU实现大规模动画角色的渲染有感,终于想起来把一个两年前的坑FFT Ocean Part 1给填啦(我又一次战胜了拖延症)。之前做的时候思路有点问题,只考虑了用Scale/Offset来序列帧的情况,搞的自己很繁琐;现在开阔脑洞直接用vertex ID就方便多了。 ...

7月 20 2017
Categories: Tags: , , ,

这其实是一个常见的问题:Unity中使用P/Invoke调用原生代码的时候如何更高效的传参数和获取返回值的问题。一般来说简单的直接写在函数声明里,遇到复杂的情况譬如变长、数组等情况我基本都是直接上JSON的。但是最近性能测试的时候发现这么写也是一个非常可观的消耗: ...

7月 20 2017
Categories: Tags: ,

这两天在群里看到有人问过这个问题,也有朋友小窗问我:Unity中导出Gradle工程然后打包出来的apk会加载AssetBundle慢很多。 于是联想到了之前遇到的一个有意思的现象:我们的出包流程是在打包出来apk之后,利用apktool解包再进行加密和资源处理再打回去。但我发现这个步骤导致apk大小变化很多(有时变大有时变小,毫无规律),非常奇怪;但是解压出来的内容确实又是一样的。后来我仔细比对之后终于找到玄机:Streaming Assets下的东西默认是不压缩的。 ...

7月 07 2017
Categories: Tags:

最近抽了点业余时间从Jekyll转到了Hexo(没错,我就是这么爱折腾…之前我又回来啦就从Hyde转Jekyll)。其实最早的出发点是我想换掉Disqus,墙的有点麻烦。好不容易找到网易云更贴之后,最后发现是更大一坑,说实话我两周都没搞定历史数据导入。不过在折腾过程中发现大家最近用Hexo很多,吸引我的有两点: 生成网站速度贼快+网页模板异步加载。 ...

5月 29 2017
Categories: Tags:

最近闲来无事,研究了一下V社的资源格式,发现真是『开放』啊。 ...

5月 15 2017
Categories: Tags:

感谢Daisy和蓓蓓提供机会,能和xiaoxiao一起在Unite上分享一些使用经验(slides),希望有所帮助。 ...

3月 26 2017
Categories: Tags:

很高兴有机会和大家分享一些PBR使用过程遇到的问题和经验,其实我们团队试水这个也才半年左右,依然还在不断的磨合过程中,希望有机会与大家多多交流。 ...

3月 20 2017
Categories: Tags:

之前在群里看到有人提到Profiler Memory Plus这个插件,相当不错~在原来Profiler功能上扩展出了diff功能 非常实用。 ...

3月 02 2017
Categories: Tags:

最近在做一些奇怪的事情…主要是老项目太大导致sourcetree卡,想了想用一个鸡贼的方法就是直接归档历史然后另起一个新项目。 ...

3月 01 2017
Categories: Tags: ,

依然UUG活动Unity User Group 北京站图文报道:《Unity3D VR游戏开发以及插件》,这次代替雨松主持了下活动,有点紧张… ...

1月 29 2017
Categories: Tags:

关于Resources和AssetBundle优劣之前已经提过很多次了(参考官方教程The Resources folder),正好最近@张迪在做框架AssetBundle部分的优化,特此整理一下两个特常见的坑及对应解决办法。之前在关于Unity中的资源管理,你可能遇到这些问题里有有人提到过这个问题: ...

1月 08 2017
Categories: Tags: ,

最近倒腾了很久新的抓包工具: ...

1月 04 2017
Categories: Tags: ,

咳咳,去年圣诞参加的一个活动Unity User Group 北京站图文报道:《AssetBundle与工作流》,感谢雨松嘿嘿。 ...

12月 29 2016
Categories: Tags:

最近的一个项目用了云风的skynet,之前是只有linux/osx版本,非官方版本有一个mingw。 ...

12月 23 2016
Categories: Tags:

工作压力大,太久没写shader了要换换脑子解压…今天晚上整了下Planar Shadow玩 ...

12月 03 2016
Categories: Tags:

优化Unity项目编译速度后续篇...感谢@wxp提供的非常有用的反馈!之前在优化编译速度的时候,我试图dll化遇到的一个障碍是不同平台需要编译用宏区分的代码,但是guid/fileID不一致。结果发现我是完全**想当然**了,Unity竟然已经自动做好了映射(下面均为Unity 5.3.6测试结果,尚未找到相关文档...)! ...

12月 02 2016
Categories: Tags:

填坑向…之前和群里一个朋友讨论HIT的影子是咋实现的,后来验证了下发现自己之前想错了(逃。后来还看了下它的Bloom做法,效果还是挺好的。这里大力感谢@Hinatia和@LeLe给予的帮助和点拨,嘿嘿 ...

12月 01 2016
Categories: Tags:

记录用…之前在Customized Adreno Profiler里修改过dll来修BUG…最近又捡起这个工具(我下的最新版本是4.0.5511.5192),修了一个崩溃错误。 更新:最近好几个朋友问我要,然后我发现我从Jekyll换到Hexo的时候有些文档归档掉了…这里放出我手头修改的最新版本的QXProfilerControlsCS.dll ** 申明: 我不会回答任何关于资源导出方面的问题。博客内容我单纯作为技术分享,并不想以此盈利,也不想惹麻烦。如果读者有志于学习渲染方面内容,我很乐意与大家交流学习,但是就本话题就此打住。 ** ...

11月 28 2016
Categories: Tags: , ,

上周有半天在调整shader fallback,主要测试了下texCUBElod和tex2Dlod在GLES 2/3下是否能正常表现。 ...

11月 27 2016
Categories: Tags:

这个是最近一段时间带着子川一起做的一个小东西:如何优化大项目C#编译速度。这个idea主要是因为使用了slua之后,每次修改C#部分编译实在是太慢了… 下面将介绍两个不同的思路,心急的朋友可以直接看第二个解决方案及实战,因为这个说穿了其实就一句话,写第一部分只不过是因为折腾了非常久的MonoImporter/PluginImporter/MonoScript结果发现没用上而不爽(逃 ...

11月 14 2016
Categories: Tags:

最近守护要上GP,G家要求最好支持Android 24的targetSDK。然后硬生生周末被坑了两天…主要有两个问题需要强烈注意! ...

11月 14 2016
Categories: Tags:

很早之前想整理的一篇内容,之前守护的时候利用Projector实现了动态的阴影(见Teaser),接下来的几个项目目前也会用这个思路继续做下去。 ...

11月 12 2016
Categories: Tags: ,

Unity的代码加密是一个有点麻烦的事情,相对iOS的IL2CPP,安卓里直接存放的dll很容易被ILSpy这种工具打开。网上有一些资料,如Unity3D研究院之Android加密DLL与破解DLL .SO,常见的思路都是修改mono源代码后重新编译;但是这样有一个麻烦的地方在于每次升级Unity版本之后都需要重新编译对应版本的libmono.so出来… ...

10月 21 2016
Categories: Tags:

今天大黄在群里提出了一个非常奇怪的问题: ...

10月 18 2016
Categories: Tags:

RectMask2D在Unity 5.1/5.2里有个BUG(现在已修复),今天又有朋友在群里提到了:ScrollRect里的元素有时候不显示,需要拖动一下才好 ...

9月 25 2016
Categories: Tags:

这个月终于腾出手为新项目做了一些Shader调整和优化工作,不知不觉就整出一个功能略多的”肥”Shader。所以我就在思考这么一个事情:如何维护这个Shader,以及如何在运行时尽可能减少无用的消耗。 ...

8月 25 2016
Categories: Tags:

目前我司所有Unity项目已经全部部署在Jenkins服务器上,实现一键自动出包+自动上传Test Flight。 ...

8月 14 2016
Categories: Tags:

仅用来记录一个小细节…这两天KlayGE升级了CMake版本要求3.4+,但是默认Ubuntu源或ppa上最多才到3.2,因此需要自己编译。下载源码之后直接编译安装没问题,但是遇到了如下错误 ...

7月 31 2016
Categories: Tags:

之前由于项目需要,我比较了下Unity常见的几个lua解决方案;最近应鑫哥约稿,整理了一下。 ...

6月 10 2016
Categories: Tags: ,

实现一个简单的漫画效果(在物体周围描边)是非常简单的事情。多年前在Games Academy上,制作漫画风格冒险游戏Tummy Trundle的开发人员研究如何实时的实现这个效果。Falk提出了一个解决方案:复制3D模型本身,扭转法线方向,将其设为黑色的材质球并沿着法线挤压其表面。 ...

4月 13 2016
Categories: Tags:

可以扫一眼,也许有用得上的 ...

4月 12 2016
Categories: Tags: ,

讲真反射效果对我来说挺常见的,但是在我印象里Divine Divinity是唯一一个实现了反射的2D游戏…像兔子这种很小的物体都会产生镜像 ...

4月 12 2016
Categories: Tags: ,

实际上这个效果并不是很特殊,但是我非常好奇暴雪是如何在这里使用广告板的。很多老游戏有时候会整个物体都使用广告板(Billboard)表现,所以比较容易被看穿。但这个魔兽3的建筑做的非常真,因此我很好奇暴雪是如何结合2D和3D的。最让我惊艳的地方在于,球形广告板会随着相机角度变化亮度。 ...

4月 11 2016
Categories: Tags:

今天参加Unite 2016听下来最有收货的一个talk,虽然一半以上都是老生常谈…我个人觉得比较有价值的在于资源审查这一部分,关于各类资源的常用方法都提出了一些很有实用价值的建议和规范 ...

4月 10 2016
Categories: Tags: ,

某次我看到暗黑3一张截图里的树,我立刻注意到此处必有蹊跷(元芳你怎么看)。树的轮廓非常细腻,而且和场景中的其他物件相比,树甚至没有出现有锯齿的边。 ...

4月 09 2016
Categories: Tags: ,

如果你在Teleglitch中使用传送门,会出现一个很有意思的特效。我仔细看了下,感觉他们就是在RGB通道分别扭曲(distort)了下画面。我相当喜欢这个看上去有点硬件坏了的效果… ...

4月 09 2016
Categories: Tags: ,

Nox有一个很有意思的特性: 动态视锥(view cones)!当玩家移动的时候,可见区域会动态更新,很吸引眼球~ ...

4月 02 2016
Categories: Tags: ,

前言:Game Art Tricks是我在知乎上看到某个回答里提到的一个网站,里面分析了很多游戏用到的精彩技巧。原谅我见识少…反正很多美术技巧我是第一次学到,简直6的飞起~我与原作者Simon联系之后,得到了翻译授权,之后我慢慢会将这个系列翻译出来。为了避免出现潜在问题,第一次遇到术语时我会注上对应英文单词。对于原文中提到的一些其他文章,我也会挑选性的翻译一些,减少阅读难度。 ...

3月 30 2016
Categories: Tags:

做本地化的时候,一方面我们要完成游戏内的文本多语言,另一个不可忽略的细节是App名字的本地化。就前者而言,Unity的Asset Store里有一个很好用的插件I2 Localization;但后者在网上的相关资料不多。下面就分享一下具体在Android和iOS下分别如何本地化应用名。 ...

3月 15 2016
Categories: Tags:

之前写过一篇Unity中光照贴图一二坑及解决办法,最近帮朋友看了些与AssetBundle结合的时候发现了一个新的问题…依然坑的飞起 ...

3月 05 2016
Categories: Tags:

最近新项目快上线了,专门抽了一天做性能优化。不开锁帧情况下,在Nexus 5和Nexus 6上始终稳定在60fps(恩刚开始写的时候就比较注意细节,嗯嗯)。在红米测试的时候发现了一个奇怪的现象:战斗界面维持60fps没问题;进入UI界面之后瞬间掉到45fps,甚至有的复杂界面掉到30fps。 ...

3月 05 2016
Categories: Tags:

这也是最近在做的另一个优化:如何在有限的图中压缩更多的Sprites。最近的Unity和Texture Packer都导入了一个新的特性 Polygon Mode,也就是说将原来的矩形Sprite用更加紧致的Polygon来描述,从而能更有效的利用空白空间,如下图中的胜利标志(红线圈出部分): ...

3月 05 2016
Categories: Tags: , ,

本文是Assembly Manipulation and C# / VB.NET Code Injection的翻译,已得到作者授权。该教程作者(亦工具作者)现在在微软开发UnityVS… ...

2月 12 2016
Categories: Tags:

突然发现这个主题已经用了快两年了,又手痒了,所以换一个主题=w= ...

1月 23 2016
Categories: Tags:

压缩纹理能够节约不少内存空间,因此目前项目中UI全都是用Texture Packer打包出大图之后压缩。Unity导入纹理的默认设置是compress,在符合条件的情况下会优先使用PVR或ETC、否则会降为RGBA4444。从程序的角度来说,当然是1/4大小的压缩纹理更好啦~但是,毕竟是有损压缩,会带来一定的损失,有时候还是挺郁闷的。 ...

1月 03 2016
Categories: Tags:

Unity中的烘焙(不管是老的Beast还是新的Enlighten)有一个非常恼火的功能缺失:无法利用Culling Mask。不管是否设置了Baking为Realtime,还是修改了Culling Mask都没有作用,貌似只有整个设置光源物体的Active才有效。 ...

12月 25 2015
Categories: Tags: ,

最近一直在和Crash做斗争,一开始用了Bugsnag相当不错,后来经朋友推荐转用腾讯的Bugly,后台查询简直6。 ...

12月 05 2015
Categories: Tags: ,

之前一段时间项目到了一个节点,忙于出包和应付渠道,没太多时间业余充电…最近空下来之后终于有空继续折腾KlayGE。这次是把字体部分kfont读了下,感受到了SDF(Signed Distance Field)的厉害之处。 ...

11月 15 2015
Categories: Tags:

最近在折腾Ocean Simulation,业余时间快搞了半个月了,数学功底太差TAT… ...

11月 15 2015
Categories: Tags:

昨天和美术折腾了一天,好好的理解了一下Unity里UV/2UV的设置,主要是理解很多程序的概念在美术上的理解是怎么一回事儿… ...

10月 09 2015
Categories: Tags:

之前Trace翻译过西川善司「实验做出的游戏图形」「GUILTY GEAR Xrd -SIGN-」中实现的「纯卡通动画的实时3D图形」的秘密系列,后来问他要了份Rip,对照着在Unity里山寨了份。 ...

10月 09 2015
Categories: Tags:

最近升级XCode 7之后发现xuporter在Jenkins上跪了,对做的修改稍作记录。 ...

9月 04 2015
Categories: Tags: ,

之前在Adreno Profiler分析任意安卓游戏特效+抓取资源中提过,对泰坦黎明的效果很感兴趣。现在终于等到安卓版本了,分析了一下它的几个效果,感觉有不少收获: ...

9月 02 2015
Categories: Tags:

Recently I found an interesting bug with Adreno Profiler: this cannot work correctly with glVertexAttribPointer(indx=2, size=4, type=GL_HALF_FLOAT_OES, normalized=False, stride=32, ptr=0xC). For example, texcoords in half type are presented as strange numbers: ...

8月 28 2015
Categories: Tags: ,

KlayGE的基础库,就挑看到觉得有意思的地方整理下,主要是有不少c++0x的花样很有趣。 ...

8月 25 2015
Categories: Tags:

周末的时候分析了一下炉石的特效Shader ...

8月 24 2015
Categories: Tags:

之前有人给我发了一个NormalMap-Online,在线从任意图片生成法线纹理。这个功能还是挺常见的,专业工具如CrazyBump,或者Unity之类的引擎都自带。不过既然有Javascript版本,就可以看看到底是怎么实现的,然后用C++实现了下。 ...

8月 15 2015
Categories: Tags:

最近忙于性能优化,深切体会到二八法则真是指导高(tou)效(lan)工作的有力武器。这个礼拜花了几天解决了一个实际问题:UGUI的ScrollRect加载太多物体的时候,第一次弹出界面会非常卡顿,而且不在界面里的内容依然会参与绘制(毫无意义的浪费…)。 ...

7月 27 2015
Categories: Tags:

Lightmap(光照贴图)是Unity里很常用的一个功能,毕竟移动设备上实时光照不靠谱,要出效果还是得烘焙。但是在使用中发现了几坑的地方,通过自己写了个两个脚本就轻松搞定,这里分享下。 ...

7月 25 2015
Categories: Tags:

最近新装了Windows 10 preview,蛋疼的发现装不上Visual Studio 2013,只能先用Visual Studio 2012凑合…昨儿在编译KlayGE develop分支的时候发现挂在wpftoolkit上了,一开始还试图回滚+二分定位,但是发现毫无意义-。- ...

5月 16 2015
Categories: Tags: , ,

最近发现了一个非常好用的工具Adreno Profiler,可以用来分析安卓手机上OpenGL ES绘制过程。这个东西牛的地方在于可以抓取任何可以运行的App,而且使用起来非常方便、没有额外限制。这个工具本质上是一个OpenGL ES Draw Call Replay;如果你用过PIX或者GPA,就会感到很非常熟悉了。下图是贵易的魔天记,挂起来毫无压力233 ...

3月 28 2015
Categories: Tags:

(准备慢慢把之前移植KlayGE过程中的笔记整理出来,估计先梳理完几个子项目,然后按照模块和例子写个系列吧…主要记录思路和一些学习体会~) ...

3月 07 2015
Categories: Tags:

As I posted in 山寨SSSSS before, I cannot find a way to take advantage of stencil buffer in OnRenderImage. This makes the post effect full screen all the time. Other guys have come up with the same question in the formu or AnswerHub. After several days hard work, I finally find a way to use stencil. ...

2月 25 2015
Categories: Tags:

这个东西是trace在群里提到的,然后我看了一些相关资源Filtering Approaches forReal-Time Anti-Aliasing(很多sig course好棒好棒)、High Quality Temporal Supersampling、CryENGINE3 Graphics Gems。在这么多资料(其实是现成代码…)的帮助下,我主要参考CryEngine里的SMAA 1TX山寨了下,UE4的那个有点过于麻烦了。 ...

2月 21 2015
Categories: Tags:

在移植UE4的Temporal AA到Unity过程中,计算Camera Motion、Jitter等遇到了若干坑,记录一下。其实这些问题其实主要是……文档不全造成的 ...

1月 19 2015
Categories: Tags:

昨儿吹酱在群里发了一个WebGL 雪地的例子,里面雪地的交互挺有意思。还好它的源代码只是压缩了一下,没有加密;大概扒拉着看了一下,它其实就是不断利用createRadialGradient绘制Bump Map来实现的。 ...

1月 13 2015
Categories: Tags:

最近发现一个逗比知识,osx下设置垂直同步貌似靠代码是无效的 ...

1月 10 2015
Categories: Tags:

主要参考了KlayGE里的SSSSS实现,在Unity里山寨了一下: ...

1月 07 2015
Categories: Tags:

这个其实是我很早之前遇到的一个问题,见Cannot resume from video play 然后今儿有人发邮件来问当时是怎么解决的-.- ...

12月 28 2014
Categories: Tags: , ,

这个帖子估计持续更新时间会很长…记录移植KlayGE到iOS中的坑ing~不少坑之前在KlayGE移植到OSX的尝试的时候已经踩过了,这里就不再赘述。 ...

12月 27 2014
Categories: Tags:

Profiler是3D引擎中一个非常重要的工具之前为了测试Unity在手机上的性能,做了一系列测试,然后发现了一个有点奇怪的现象:同样是若干旋转模型+一个光源,在Nexus 5运行到30fps时,有俩Test Case面片数相差的非常多(都故意没开Dynamic/Static Batch DrawCall)。 ...

12月 26 2014
Categories: Tags: ,

这个和我之前在贵易实习的内容相关,当时是参考了SIGGRAPH 2013 Course里的材料,主要是UE4和COD9两节;以及KlayGE博客上的系列介绍游戏中基于物理的环境光渲染。 ...

12月 24 2014
Categories: Tags: ,

之前桌子跟我讲了一个很冷的小知识:对于3D美术来说,做贴图的时候如果想要做50%灰,应该用186/255而不是127/255。这个很有意思,稍微想了下应该是和Gamma校正有关,然后算了下确实是这样的。后来我分别在Unreal里和Unity里试了下,谨以此文记录。 ...

12月 21 2014
Categories: Tags: ,

上周业余时间除了搞了搞KlayGE之外,还尝试用Unity山寨UE4的PBR,在对比的时候发现两个引擎各种细节还是差距挺大的。同样是材质的预览窗口,UE4自带了HDR、Tone Mapping和环境贴图:下图左边是UE4材质编辑器的预览,可以看到有比较清晰的天空反射;右边是山寨货在Unity里的效果(参数还得再调,边缘fresnel有点过强了,可能是后处理带来的)。 ...

12月 21 2014
Categories: Tags: ,

这个其实是源自KlayGE移植OSX上的一个需求:在OSX上希望使用d3dcompile,配合DXBC2GLSL来生成OpenGL Shader。之前移植的时候是使用的NVidia Cg凑合,但是Cg Profile在OpenGL 3.x开始不支持Multi-vendor,而且也发现对于tex2DLOD之类的函数支持的有问题。 ...

12月 20 2014
Categories: Tags: ,

之前一直有准备在研三的业余时间深入学习一套引擎: ...

12月 02 2014
Categories: Tags:

基于cocos2d-x 3.x版本修改的Assets Manager,加几行代码就能实现断线续传功能…so easy ...

11月 15 2014
Categories: Tags:

昨儿有人给我发了一个神秘网址,表示希望能获得资源施法 ...

11月 15 2014
Categories: Tags:

前段时间体验了下Zen Garden之后,觉得两个效果很有意思:漫天飞舞的花瓣和可以点点点的水波,于是准备在Unity里面山寨一下。 ...

11月 15 2014
Categories: Tags:

花时间看了下毛发效果,苦于囊中羞涩没能买QuickFur、furFX等插件,最后找到了Fur Shader学习了一下。 ...

11月 08 2014
Categories: Tags:

一下午随手写了一个环境捕捉器,山寨了一下unreal的scene capture cube。结果后来发现unity3d pro自带了一个Camera.RenderToCubemap函数真是哈哈哈哈啊…… ...

11月 08 2014
Categories: Tags:

一般在渲染中,是使用cubemap来预计算环境反射,但是怎么玩好这个东西,我之前并没有考虑太多。最近和桌子讨论了挺多环境贴图的使用方式,在这里记录一下想法(偷懒起见,示意代码都是surface shader)。 ...

11月 07 2014
Categories: Tags:

出于学习的目的(认真脸),想拆解下别人家的作品的包,看下他们的美术资源是怎么布局、整理的,所以花了一晚上尝试了下,并记录如下。 ...

10月 29 2014
Categories: Tags: , ,

** This is depecrated since pomelo is only supporting libpomelo2 with various bindings. I’ve removed the github repo and you may find the archive here(Download).** ...

9月 15 2014
Categories: Tags: ,

最近被pomelo的一个bug搞的心力憔悴,之前本地开发和阿里云环境上都是好好的,但是在另一套环境下时不时就挂。为了这个问题加起来折腾了好几天,今天终于算处理掉了(虽然还没从根子上解决)。写篇文章记录一下思路和解决方案。 ...

8月 31 2014
Categories: Tags: , ,

Recently I need compile libcurl for different platforms, since cocos-2dx 3.0 ships with libcurl 7.26.0 and there are several fixes in newer versions according to changelog. There are several blogs describing how to build libcurl with android source, such as porting-of-libcurl-to-android-os-using, How_to_compile_libcurl and Android ndk下编译libcurl. However, they are all out dated, especially android source has changed a lot! ...

8月 29 2014
Categories: Tags:

为了编译libcurl,必须下载android系统源代码,结果发现被某墙弄的基本不能下。我手头只有一个性能很弱的vps,最后没办法走上了双重代理不归路~最后使用了ssh端口转发,然后socks5代理转http代理(其实也可以拿来干别的事情,如上上网什么的) ...

8月 29 2014
Categories: Tags:

最近升级了人人v7,发现人人网改造器挂了,想下个相册都没办法。后来找到一个专门下载人人相册的工具,试了下也不灵,应该是HTML结构变化所致,就稍微改了改代码,使得在新版人人上也能用了。 ...

4月 14 2014
Categories: Tags: ,

This extension plugin is able to load images from system photo library. Native calls for Android, iOS(iPhone+iPad) & Win32. More details can be found here ImagePicker. ...

3月 29 2014
Categories: Tags: ,

最近尝试了一下在Visual Studio 2012中编译Unreal 4,记录一下其中踩的坑 (其实这个纯粹是我蛋疼才这么干的,讲真还是升级VS比较方便…) ...

11月 05 2013
Categories: Tags: ,

I was blocked by word ladder II in last two days. ...

10月 24 2013
Categories: Tags: ,

I encountered a very strange problem these days: can’t link glew in C++ code. I’ve tried this code but failed, my post in SO: ...

8月 15 2013
Categories: Tags:

这其实是我大四时一门课配套大作业,当时配环境折腾很久~后来发人人网共享,结果昨天学长给我留言有人不带名字抄袭。虽然很冷这个都有人搞,但总归还不如给自己骗流量呢哈哈哈哈…… ...

7月 31 2013
Categories: Tags: ,

这是@老赵写的一个js库本质是用eval函数实现的~我们写看起来是同步的顺序流程代码,但是实质异步执行 ...

6月 15 2013
Categories: Tags:

DEMO链接。手册主要为程老师撰写~具体内容见三维模型布尔运算网页版 ...

6月 14 2013
Categories: Tags: ,

本学期计算几何课程,选了三维模型布尔运算作为大作业选题。主要考虑到邓公的演示一向比较绚丽多彩,各种PDF和网页中的applet作为demo;我就想把我们最后的东西也搬到网页上来。 ...

6月 07 2013
Categories: Tags:

其实本来研究生阶段我是不准备做任何社工活动⊙﹏⊙b 上学期的时候忘了具体啥事,好像是在微博上和刘老师聊了几次,她表示“嗯下学期来做助教吧”,嗯然后我就成为了软工课的助教,负责整个大作业部分,嗯嗯坑帮助学弟义不容辞^_^ ...

5月 01 2013
Categories: Tags:

Windows 7, avast shields cannot be started. When uninstalling, it said: a setiface error has occurred: 2 ...

4月 27 2013
Categories: Tags:

我一直是用Eclipse+WTP,配合tomcat7以及mysql来写struts2网站的。今天开电脑以后遇到了一个很奇怪的问题:tomcat7始终在eclipse中启动不起来 ...

4月 08 2013
Categories: Tags:

JMeter是Apache开发的一款开源Java压力测试工具。一开始是针对Web应用开发的测试工具,后来扩展到了诸如数据库、LDAP、Mail等多个方面,总之就是很强大了。我曾经用过其分布式测试的功能,虽然因为网速问题比较蛋疼,但总的来说还是很不错的(这个主要是为了避免压力测试的瓶颈出现在客户端导致结果的误差)。 ...

4月 05 2013
Categories: Tags:

嗯,这是拖了很久的一篇日志了上个暑假实习的时候做的事情是照片的自动增强,与iPhoto的enhance进行了比较。但是需要生成几千张照片的批量enhance比较麻烦 ...

4月 05 2013
Categories: Tags:

一直想搞个腕带,一个月前盯着Fitbit Wireless, Nike FuelBand和JawBone UP,挑来挑去: ...

4月 04 2013
Categories: Tags:

2012年更新过一段时间之后,忙的一直没有空管这个,直到GoDaddy发邮件通知域名要过期了才想起来⊙﹏⊙b汗 ...

4月 07 2012
Categories: Tags:

前段时间在帮着做一个网络模块,背景是一个actionscript的项目和后台服务器进行数据交换。最后选择了BlazeDS的解决方案,使用HTTP封装的AMF协议进行通信。交换的数据中有各种数组和自定义类,blazeDS基本上都能自动序列化和反序列化,因此用的比较舒服。但一开始配置环境的时候遇到了各种奇怪的问题,特别有一个问题网上搜索只有在一个post里提到,因此很值得记录。 ...

4月 07 2012
Categories: Tags: ,

清明的时候Gus找我做的一个安卓的UI,要拿去参赛-。-本质上是一个用手机控制家里的各种灯的开关、明暗、颜色等,需要一个过得去的界面。反正我只管搭空壳子。昨天晚上+今天早上突击搞了一下,发现android的各种view还是博大精深的,外加xml自定义各种强大。最后也算自我感觉不错,嗯~ ...

3月 29 2012
Categories: Tags:

去年做软工课的时候,实现了完整的OAuth验证和javascript/Android两种客户端,既然有人已经发过安卓的SDK了,那就做个pure JS的DEMO版本吧(话说万恶的调休害的我没啥空都=。=) ...

3月 29 2012
Categories: Tags: ,

Javascript跨域访问(Cross-Domain,主要可以看这个same origin policy),一直是个很纠结加蛋疼的问题(擦话说我又想到当时做flex时也遇到了跨域问题) ...

3月 28 2012
Categories: Tags:

Adobe After Effects是个很强大的工具!之前一直想学了拿来做MAD玩的,可惜貌似一直没空。这次正好毕业DV可以做点特效,一方面是正好不用露脸-。-还可以做点贡献嗯嗯。主要做了几个特效,一个是烟雾化切场,一个是老电视的开头效果,还有一个是山寨基友夏洛克YY时候的场景。 ...

3月 26 2012
Categories: Tags: ,

Homography单应,说的是投影的时候可以逆过来找,具体的可以戳wiki。 ...

3月 25 2012
Categories: Tags:

零零散散也做过一些海报,但说实话很业余……有个空间挂自己的东西,想想还是把有些不那么纠结的扔这里,想想十年以后看到这些是咋样一个心情( ﹁ ﹁ ) ~→ ...

3月 20 2012
Categories: Tags: ,

最近在做的一些工作都是基于opencv的,准备有空将部分代码拆分、整理好之后挂上来。 ...

3月 19 2012
Categories: Tags:

Hi, this is the very first blog for test! ...

3月 19 2012
Categories: Tags: ,

主要是讲述关于图片分割的内容,使用了Mean shift: A robust approach toward feature space analysis提出的方法,应该是目前效果最好的几个方法之一了。整个算法分为两步:Filter和Segmentation。这里简单说下实现,具体原理请自行阅读论文(¬_¬) ...