前两天有台新打包机cook的时候疯狂闪退: 一开始以为是并行跑的job负载太高了,就去掉了并行job的部分; 改完发现负载跑不满了,依然高频闪退、且每次对应的资产还不一致,就重拉了一份SVN确认环境干净; 依然是2min左右闪退…和鸟哥查到一两点,整的怀疑人生了orz ...
最近忙于各种优化,有遇到PxScene::simulate()耗时很长的情况——这时的第一反应就是掏出PVD,想看下是不是场景里是不是又被摆了一堆奇怪的玩意儿。结果在游戏里Connect Debugger后、PVD直接原地crash,令人尴尬。尝试了下直接在游戏里保存出pvd文件倒是没问题,只不过打开时依然闪退。感觉就像某些场景里有脏东西,一碰就炸;而另一些场景则是可以正常使用PVD查看。 ...
今天玩了下机械恋心Demo,发现开发组有些4K背景贴图还在使用BC1。在群里水了会,问了为啥没用BC7(毕竟现在DX11已经是标配了)——开发组是处于包体大小的考虑,Unity官方的crunch压缩只支持了ETC和DXT。 像UE的话收购oodle之后就集成BC7 RDO了,开箱即用非常省心。不过抱着折腾的心态,我快速试了手在不破坏Unity资源管线+没有Unity源代码的情况下是否也能用起来。 ...
前段时间摸鱼的时候把自研在Steam Deck上跑起来了,发现网上相关资料比较少,记录下过程中一些好玩的坑。ps. 花时间搞这个一方面是接入手柄之后,实体操作感逼格瞬间上来了 还有一个原因是我有这个设备。 ...
这两天升级了下XCode 15,一开始遇到了Xcode 15 linking error、unary_function、NWEndpoint.hostPort(host: , port: ) crash in Xcode15几个都是小问题。结果打了个包发现Build时间暴增: 本来单次编译需要1小时左右,现在直接涨到2.5小时还不太够。 ...
今天在等编译过程中,抽空了解了下一直出现的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. ...
之前在angle折腾笔记里提到恢复angle作为ES3模拟器,方便PC上查BUG。当时为了模拟EXT_copy_image使用了Vulkan Backend,别的用起来都挺好,但是很蛋疼的一点是RenderDoc抓帧的API其实都是vlk的… 这礼拜查别的BUG的时候,索性痛定思痛尝试使用GLES Backend。 这里记录下补全功能以及修复了若干Angle/RenderDoc相关问题的笔记… ...
本周版本的时候QA同学跑过来说iPhone 13进游戏闪退,而且没有抓到闪退的堆栈信息; 盲猜是内存问题,当时手头在忙就直接找人试了下低端一些的设备,结果没有翻车orz 就一时间有点摸不到头脑。后来腾出手直接XCode连着看了下,雀实是内存冲到2G之后被系统干了,在- (void)applicationDidReceiveMemoryWarning:(UIApplication*)application里打了行LOG也触发到了。 昨天在家终于有空仔细研究下这个问题,最后发现还是蛮少见的情况… 特意记录一下笔记。 ...
几年前在公司内部KM分享过如何方便的将RenderDoc内嵌到内部版本中从而方便调试,以及如何向下兼容更低版本的Android系统(RenderDoc Android最低系统要求是6.0)。 手法其实非常简单: 直接将libVkLayer_GLES_RenderDoc.so这个打包进apk中然后手动加载下即可; 这样做额外的好处是不需要依赖其hook系统的机制,所以不需要interceptor-lib,进而压低系统版本要求。 ...
最近抽空研究了下Unity的SRPBatcher,根据官方文档说法这货能极大降低DrawCall代价,从而达到提升性能的目的,而且这个行为大多数情况下对于使用者是透明的。正好对这块比较感兴趣其实是最近在尝试优化这块,看看有什么思路可以白嫖,抓了帧稍微研究了下原理。 ...
最近看的一个问题,最后想通很简单但一开始自己狠坑了自己一把,简单记录一下。 为了实现运行时喷涂,直接动态RT解决问题: 喷涂时利用2uv直接绘制到一张RenderTexture 模型正常渲染的时候采样这张RenderTexture。 ...
这个话题其实已经连着好几次了orz(之前博客分享过Metal 2.1中的新关键字invariant和奇妙的Shader精度),但昨天有朋友又遇到PreZ挂了的情况: D3D11下如果关掉Shader Optimize后PreZ和Shading Pass的深度又对不上,但打开Shader Optimize就显示正常。 ...
周五的时候UX同学换了一批字体,然后无意间发现TextField的光标鬼畜定位了orz 今天终于有空跟进下这个问题 顺便弥补下太久没更博客 ...
最近尝试利用UE4自带的功能生成物理简模,参考Setting Up Collisions With Static Meshes有几种模式: 直接生成简单的包围盒/球/胶囊体; 利用DOP(discrete oriented polytopy)即若干对齐轴平面向内挤压; Auto Convex自动生成。 此外可以将多个简模组合使用,这里不再赘述。我们一开始是批量Auto Convex,结果发现对于一些”规则”网格生成的结果非常诡异。例如题图中的一个长方形盒子,生成的Auto Convex似乎只有一个表面。 ...
这次是有几个同事遇到的一个问题: 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) ...
最近一段时间突然发现打包机上编译引擎安卓版本极慢,正好有现成的IncrediBuild所以研究下能不能用来加速。IB本身是商业软件,对Visual Studio的支持已经非常好了: 既可以使用Extension形式直接调用,又可以使用命令行传参sln。但是网上关于结合NDK使用的资料就非常少,这周花了大半天终于跑通流程,就此记录一下。 ...
最近用RenderDoc调试的时候发现GLES的glCopySubImageData结果不太对,翻了下代码发现实现不是特别完整(只支持了整块拷贝的情况)。于是动手自己实现了一发,结果测试的时候居然卡在了一个编译安卓版本上。 之前我都是在Mac下编译的安卓,这次手头没有合适设备不得不研究了下如何在Windows上编译。关于这块网上资料比较少,CONTRIBUTING/Compiling.md也语焉不详,因此就在这里记录下步骤。 ...
搬家之后重新折腾了下Kodi,结果第一步就卡死在小米电视上了……下载官方最新的Kodi 18之后发现“解析包错误”:搜了下发现从Kodi 17开始要... ...
今天在查真机渲染问题的时候,突然发现神器RenderDoc无效了…Attach Process没问题但是始终抓不到有效Context。 ...
最近在家闲的快发霉了,无聊之下花了点功夫把部分代码在OSX上跑起来(之前都是在Win上开发),遇到了一个很有意思的崩溃:目前定位出来是不同compiler下的memory layout区别。 ...
前几天同事在PC(DX11)上遇到了一个很有意思的问题: 顶点属性经过插值之后从一个非常接近0的正值变成了负数…堪称有毒。 ...
纯笔记。昨天尝试往Modes面板添加了自定义的AActor,直接参考[UE4] レベルエディタの配置ツールに独自の項目とアセットを追加する方法里的代码实现: ...
最近一段时间忙的天昏地暗,难得有空继续整理一发遇到的奇怪问题:iOS12设备上PreZ Pass出现了闪烁。这个问题也蛮有意思的,最后在同事的指导下找到了原因:Metal Shading Language Specification里面专门提到 ...
最近帮忙解决了一个很奇怪的问题:在材质球里如何获得Instance模型(譬如Foliage)的坐标,其实也就是Foliage instance position in Material editor。TA需要的是模型原点的世界坐标。 ...
之前在Android下利用Hook实现mono dll加密里提到了Unity3D研究院之Android加密DLL与破解DLL .SO这篇文章。今天看某个PC上游戏的时候发现用了一样的思路,掏出IDA看了下确实是修改了mono_image_open_from_data_width_name 来实现的。比较好奇有没有简单的方法绕开它而不是去跟汇编较劲,于是找到了一个比较通用的思路。 ...
之前提到过利用Jenkins自动化出包流程分享,后来发现一个问题是每次iOS编译的时候都是全量编译,很奇怪。根据Incremental builds for IL2CPP里的说法只要选择Append应该已经支持了才对,但是发现还是每次触发了全量编译。 ...
之前在利用shader_feature打造最小版本Shader提到shader_feature配合AssetBundle使用的BUG。当时是通过multi_compile绕开,现在在Unity 2017里通过ShaderVariantCollection可以完美解决,记录一下遇到的坑。 ...
最近半年赶项目的事情一直很忙,好不容易上周末的时候有空做点渲染的东西玩,于是尝试了一下Bent Normal Maps。 这是UE 4.17发布的功能之一,可以拿来解决间接光照漏光;工具部分Substaince Designer已经支持利用高模烘焙Bent Normal。效果图对比来自UE4文档: ...
拖了很久,才发现只上传了ppt但是没放出下载链接(逃:Unity User Group 北京站(第十二期) ...
在Bugly上恢复原生崩溃堆栈信息需要符号表文件,具体可以参考分析libunity.so Release崩溃。我们在升级2017之后发现引擎有些行为发生了变化,这里记录下。 ...
又忙的好久没打理博客了…最近来回使用Unity/UE两个引擎,发现有个可视化UV/Normal的小功能不错,花了一晚上在Unity 5.6里面山寨了下: ...
最近在查一些渲染上的问题,发现RenderDoc这货非常好用,而且引擎原生支持用起来也很方便。 ps. 这个工具是从DX层去抓取真实绘制信息,和引擎内置的工具会有一定的区别。而且像纹理状态、寄存器变量甚至调试Shader上会方便非常多。 ...
之前其实在C#反射——掀起Unity Editor面纱里提到过Profiler的增强;后来官方提供了更加方便的MemoryProfiler,上周末的时候顺手用类似的思路增加了diff功能并进行了一定的优化。原来那个ProfilerDiff就直接废弃,毕竟当时懒了没做序列化 ps. 本来我想直接用gulu大大的PA_ResourceTracker,不过仔细研究了下代码发现需要接入的东西比较多(很多数据信息是通过网络传输的),嵌入我们自己的项目不是特别方便。最后自己动手弄个山寨版,也就半个多小时搞定… ...
今天正好和朋友聊到嵌套Prefab这个话题,发现这个其实是一个很多项目都需要但是Unity并没有提供内置支持的功能。在过去的项目中我们也实践过不同的解决方案,也了解过其他团队的一些做法,在这里正好整理一下,供大家参考/吐槽。 其实还有一个原因是又好久没更新博客了… ...
虽然说UGUI已经开源,但是最核心的几个文件是c++实现的因此依然不可知。这几天好好的研究了下,整理出了一些自己的理解。这部分说实话是连蒙带猜出来的,如有理解不当的地方欢迎沟通交流。 ps. 后面的代码都以Unity 5.x为例分析。 ...
最近读了利用GPU实现大规模动画角色的渲染有感,终于想起来把一个两年前的坑FFT Ocean Part 1给填啦(我又一次战胜了拖延症)。之前做的时候思路有点问题,只考虑了用Scale/Offset来序列帧的情况,搞的自己很繁琐;现在开阔脑洞直接用vertex ID就方便多了。 ...
这其实是一个常见的问题:Unity中使用P/Invoke调用原生代码的时候如何更高效的传参数和获取返回值的问题。一般来说简单的直接写在函数声明里,遇到复杂的情况譬如变长、数组等情况我基本都是直接上JSON的。但是最近性能测试的时候发现这么写也是一个非常可观的消耗: ...
这两天在群里看到有人问过这个问题,也有朋友小窗问我:Unity中导出Gradle工程然后打包出来的apk会加载AssetBundle慢很多。 于是联想到了之前遇到的一个有意思的现象:我们的出包流程是在打包出来apk之后,利用apktool解包再进行加密和资源处理再打回去。但我发现这个步骤导致apk大小变化很多(有时变大有时变小,毫无规律),非常奇怪;但是解压出来的内容确实又是一样的。后来我仔细比对之后终于找到玄机:Streaming Assets下的东西默认是不压缩的。 ...
最近抽了点业余时间从Jekyll转到了Hexo(没错,我就是这么爱折腾…之前我又回来啦就从Hyde转Jekyll)。其实最早的出发点是我想换掉Disqus,墙的有点麻烦。好不容易找到网易云更贴之后,最后发现是更大一坑,说实话我两周都没搞定历史数据导入。不过在折腾过程中发现大家最近用Hexo很多,吸引我的有两点: 生成网站速度贼快+网页模板异步加载。 ...
很高兴有机会和大家分享一些PBR使用过程遇到的问题和经验,其实我们团队试水这个也才半年左右,依然还在不断的磨合过程中,希望有机会与大家多多交流。 ...
之前在群里看到有人提到Profiler Memory Plus这个插件,相当不错~在原来Profiler功能上扩展出了diff功能 非常实用。 ...
依然UUG活动Unity User Group 北京站图文报道:《Unity3D VR游戏开发以及插件》,这次代替雨松主持了下活动,有点紧张… ...
关于Resources和AssetBundle优劣之前已经提过很多次了(参考官方教程The Resources folder),正好最近@张迪在做框架AssetBundle部分的优化,特此整理一下两个特常见的坑及对应解决办法。之前在关于Unity中的资源管理,你可能遇到这些问题里有有人提到过这个问题: ...
咳咳,去年圣诞参加的一个活动Unity User Group 北京站图文报道:《AssetBundle与工作流》,感谢雨松嘿嘿。 ...
优化Unity项目编译速度后续篇...感谢@wxp提供的非常有用的反馈!之前在优化编译速度的时候,我试图dll化遇到的一个障碍是不同平台需要编译用宏区分的代码,但是guid/fileID不一致。结果发现我是完全**想当然**了,Unity竟然已经自动做好了映射(下面均为Unity 5.3.6测试结果,尚未找到相关文档...)! ...
记录用…之前在Customized Adreno Profiler里修改过dll来修BUG…最近又捡起这个工具(我下的最新版本是4.0.5511.5192),修了一个崩溃错误。 更新:最近好几个朋友问我要,然后我发现我从Jekyll换到Hexo的时候有些文档归档掉了…这里放出我手头修改的最新版本的QXProfilerControlsCS.dll ** 申明: 我不会回答任何关于资源导出方面的问题。博客内容我单纯作为技术分享,并不想以此盈利,也不想惹麻烦。如果读者有志于学习渲染方面内容,我很乐意与大家交流学习,但是就本话题就此打住。 ** ...
上周有半天在调整shader fallback,主要测试了下texCUBElod和tex2Dlod在GLES 2/3下是否能正常表现。 ...
这个是最近一段时间带着子川一起做的一个小东西:如何优化大项目C#编译速度。这个idea主要是因为使用了slua之后,每次修改C#部分编译实在是太慢了… 下面将介绍两个不同的思路,心急的朋友可以直接看第二个解决方案及实战,因为这个说穿了其实就一句话,写第一部分只不过是因为折腾了非常久的MonoImporter/PluginImporter/MonoScript结果发现没用上而不爽(逃 ...
最近守护要上GP,G家要求最好支持Android 24的targetSDK。然后硬生生周末被坑了两天…主要有两个问题需要强烈注意! ...
很早之前想整理的一篇内容,之前守护的时候利用Projector实现了动态的阴影(见Teaser),接下来的几个项目目前也会用这个思路继续做下去。 ...
Unity的代码加密是一个有点麻烦的事情,相对iOS的IL2CPP,安卓里直接存放的dll很容易被ILSpy这种工具打开。网上有一些资料,如Unity3D研究院之Android加密DLL与破解DLL .SO,常见的思路都是修改mono源代码后重新编译;但是这样有一个麻烦的地方在于每次升级Unity版本之后都需要重新编译对应版本的libmono.so出来… ...
RectMask2D在Unity 5.1/5.2里有个BUG(现在已修复),今天又有朋友在群里提到了:ScrollRect里的元素有时候不显示,需要拖动一下才好 ...
这个月终于腾出手为新项目做了一些Shader调整和优化工作,不知不觉就整出一个功能略多的”肥”Shader。所以我就在思考这么一个事情:如何维护这个Shader,以及如何在运行时尽可能减少无用的消耗。 ...
目前我司所有Unity项目已经全部部署在Jenkins服务器上,实现一键自动出包+自动上传Test Flight。 ...
仅用来记录一个小细节…这两天KlayGE升级了CMake版本要求3.4+,但是默认Ubuntu源或ppa上最多才到3.2,因此需要自己编译。下载源码之后直接编译安装没问题,但是遇到了如下错误 ...
实现一个简单的漫画效果(在物体周围描边)是非常简单的事情。多年前在Games Academy上,制作漫画风格冒险游戏Tummy Trundle的开发人员研究如何实时的实现这个效果。Falk提出了一个解决方案:复制3D模型本身,扭转法线方向,将其设为黑色的材质球并沿着法线挤压其表面。 ...
讲真反射效果对我来说挺常见的,但是在我印象里Divine Divinity是唯一一个实现了反射的2D游戏…像兔子这种很小的物体都会产生镜像 ...
实际上这个效果并不是很特殊,但是我非常好奇暴雪是如何在这里使用广告板的。很多老游戏有时候会整个物体都使用广告板(Billboard)表现,所以比较容易被看穿。但这个魔兽3的建筑做的非常真,因此我很好奇暴雪是如何结合2D和3D的。最让我惊艳的地方在于,球形广告板会随着相机角度变化亮度。 ...
今天参加Unite 2016听下来最有收货的一个talk,虽然一半以上都是老生常谈…我个人觉得比较有价值的在于资源审查这一部分,关于各类资源的常用方法都提出了一些很有实用价值的建议和规范 ...
某次我看到暗黑3一张截图里的树,我立刻注意到此处必有蹊跷(元芳你怎么看)。树的轮廓非常细腻,而且和场景中的其他物件相比,树甚至没有出现有锯齿的边。 ...
如果你在Teleglitch中使用传送门,会出现一个很有意思的特效。我仔细看了下,感觉他们就是在RGB通道分别扭曲(distort)了下画面。我相当喜欢这个看上去有点硬件坏了的效果… ...
Nox有一个很有意思的特性: 动态视锥(view cones)!当玩家移动的时候,可见区域会动态更新,很吸引眼球~ ...
前言:Game Art Tricks是我在知乎上看到某个回答里提到的一个网站,里面分析了很多游戏用到的精彩技巧。原谅我见识少…反正很多美术技巧我是第一次学到,简直6的飞起~我与原作者Simon联系之后,得到了翻译授权,之后我慢慢会将这个系列翻译出来。为了避免出现潜在问题,第一次遇到术语时我会注上对应英文单词。对于原文中提到的一些其他文章,我也会挑选性的翻译一些,减少阅读难度。 ...
做本地化的时候,一方面我们要完成游戏内的文本多语言,另一个不可忽略的细节是App名字的本地化。就前者而言,Unity的Asset Store里有一个很好用的插件I2 Localization;但后者在网上的相关资料不多。下面就分享一下具体在Android和iOS下分别如何本地化应用名。 ...
之前写过一篇Unity中光照贴图一二坑及解决办法,最近帮朋友看了些与AssetBundle结合的时候发现了一个新的问题…依然坑的飞起 ...
最近新项目快上线了,专门抽了一天做性能优化。不开锁帧情况下,在Nexus 5和Nexus 6上始终稳定在60fps(恩刚开始写的时候就比较注意细节,嗯嗯)。在红米测试的时候发现了一个奇怪的现象:战斗界面维持60fps没问题;进入UI界面之后瞬间掉到45fps,甚至有的复杂界面掉到30fps。 ...
本文是Assembly Manipulation and C# / VB.NET Code Injection的翻译,已得到作者授权。该教程作者(亦工具作者)现在在微软开发UnityVS… ...
这也是最近在做的另一个优化:如何在有限的图中压缩更多的Sprites。最近的Unity和Texture Packer都导入了一个新的特性 Polygon Mode,也就是说将原来的矩形Sprite用更加紧致的Polygon来描述,从而能更有效的利用空白空间,如下图中的胜利标志(红线圈出部分): ...
压缩纹理能够节约不少内存空间,因此目前项目中UI全都是用Texture Packer打包出大图之后压缩。Unity导入纹理的默认设置是compress,在符合条件的情况下会优先使用PVR或ETC、否则会降为RGBA4444。从程序的角度来说,当然是1/4大小的压缩纹理更好啦~但是,毕竟是有损压缩,会带来一定的损失,有时候还是挺郁闷的。 ...
最近一直在和Crash做斗争,一开始用了Bugsnag相当不错,后来经朋友推荐转用腾讯的Bugly,后台查询简直6。 ...
昨天和美术折腾了一天,好好的理解了一下Unity里UV/2UV的设置,主要是理解很多程序的概念在美术上的理解是怎么一回事儿… ...
之前Trace翻译过西川善司「实验做出的游戏图形」「GUILTY GEAR Xrd -SIGN-」中实现的「纯卡通动画的实时3D图形」的秘密系列,后来问他要了份Rip,对照着在Unity里山寨了份。 ...
之前在Adreno Profiler分析任意安卓游戏特效+抓取资源中提过,对泰坦黎明的效果很感兴趣。现在终于等到安卓版本了,分析了一下它的几个效果,感觉有不少收获: ...
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: ...
之前有人给我发了一个NormalMap-Online,在线从任意图片生成法线纹理。这个功能还是挺常见的,专业工具如CrazyBump,或者Unity之类的引擎都自带。不过既然有Javascript版本,就可以看看到底是怎么实现的,然后用C++实现了下。 ...
最近忙于性能优化,深切体会到二八法则真是指导高(tou)效(lan)工作的有力武器。这个礼拜花了几天解决了一个实际问题:UGUI的ScrollRect加载太多物体的时候,第一次弹出界面会非常卡顿,而且不在界面里的内容依然会参与绘制(毫无意义的浪费…)。 ...
Lightmap(光照贴图)是Unity里很常用的一个功能,毕竟移动设备上实时光照不靠谱,要出效果还是得烘焙。但是在使用中发现了几坑的地方,通过自己写了个两个脚本就轻松搞定,这里分享下。 ...
最近新装了Windows 10 preview,蛋疼的发现装不上Visual Studio 2013,只能先用Visual Studio 2012凑合…昨儿在编译KlayGE develop分支的时候发现挂在wpftoolkit上了,一开始还试图回滚+二分定位,但是发现毫无意义-。- ...
最近发现了一个非常好用的工具Adreno Profiler,可以用来分析安卓手机上OpenGL ES绘制过程。这个东西牛的地方在于可以抓取任何可以运行的App,而且使用起来非常方便、没有额外限制。这个工具本质上是一个OpenGL ES Draw Call Replay;如果你用过PIX或者GPA,就会感到很非常熟悉了。下图是贵易的魔天记,挂起来毫无压力233 ...
(准备慢慢把之前移植KlayGE过程中的笔记整理出来,估计先梳理完几个子项目,然后按照模块和例子写个系列吧…主要记录思路和一些学习体会~) ...
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. ...
这个东西是trace在群里提到的,然后我看了一些相关资源Filtering Approaches forReal-Time Anti-Aliasing(很多sig course好棒好棒)、High Quality Temporal Supersampling、CryENGINE3 Graphics Gems。在这么多资料(其实是现成代码…)的帮助下,我主要参考CryEngine里的SMAA 1TX山寨了下,UE4的那个有点过于麻烦了。 ...
在移植UE4的Temporal AA到Unity过程中,计算Camera Motion、Jitter等遇到了若干坑,记录一下。其实这些问题其实主要是……文档不全造成的 ...
昨儿吹酱在群里发了一个WebGL 雪地的例子,里面雪地的交互挺有意思。还好它的源代码只是压缩了一下,没有加密;大概扒拉着看了一下,它其实就是不断利用createRadialGradient绘制Bump Map来实现的。 ...
这个其实是我很早之前遇到的一个问题,见Cannot resume from video play 然后今儿有人发邮件来问当时是怎么解决的-.- ...
这个帖子估计持续更新时间会很长…记录移植KlayGE到iOS中的坑ing~不少坑之前在KlayGE移植到OSX的尝试的时候已经踩过了,这里就不再赘述。 ...
Profiler是3D引擎中一个非常重要的工具之前为了测试Unity在手机上的性能,做了一系列测试,然后发现了一个有点奇怪的现象:同样是若干旋转模型+一个光源,在Nexus 5运行到30fps时,有俩Test Case面片数相差的非常多(都故意没开Dynamic/Static Batch DrawCall)。 ...
这个和我之前在贵易实习的内容相关,当时是参考了SIGGRAPH 2013 Course里的材料,主要是UE4和COD9两节;以及KlayGE博客上的系列介绍游戏中基于物理的环境光渲染。 ...
之前桌子跟我讲了一个很冷的小知识:对于3D美术来说,做贴图的时候如果想要做50%灰,应该用186/255而不是127/255。这个很有意思,稍微想了下应该是和Gamma校正有关,然后算了下确实是这样的。后来我分别在Unreal里和Unity里试了下,谨以此文记录。 ...
上周业余时间除了搞了搞KlayGE之外,还尝试用Unity山寨UE4的PBR,在对比的时候发现两个引擎各种细节还是差距挺大的。同样是材质的预览窗口,UE4自带了HDR、Tone Mapping和环境贴图:下图左边是UE4材质编辑器的预览,可以看到有比较清晰的天空反射;右边是山寨货在Unity里的效果(参数还得再调,边缘fresnel有点过强了,可能是后处理带来的)。 ...
这个其实是源自KlayGE移植OSX上的一个需求:在OSX上希望使用d3dcompile,配合DXBC2GLSL来生成OpenGL Shader。之前移植的时候是使用的NVidia Cg凑合,但是Cg Profile在OpenGL 3.x开始不支持Multi-vendor,而且也发现对于tex2DLOD之类的函数支持的有问题。 ...
基于cocos2d-x 3.x版本修改的Assets Manager,加几行代码就能实现断线续传功能…so easy ...
前段时间体验了下Zen Garden之后,觉得两个效果很有意思:漫天飞舞的花瓣和可以点点点的水波,于是准备在Unity里面山寨一下。 ...
一下午随手写了一个环境捕捉器,山寨了一下unreal的scene capture cube。结果后来发现unity3d pro自带了一个Camera.RenderToCubemap函数真是哈哈哈哈啊…… ...
一般在渲染中,是使用cubemap来预计算环境反射,但是怎么玩好这个东西,我之前并没有考虑太多。最近和桌子讨论了挺多环境贴图的使用方式,在这里记录一下想法(偷懒起见,示意代码都是surface shader)。 ...
出于学习的目的(认真脸),想拆解下别人家的作品的包,看下他们的美术资源是怎么布局、整理的,所以花了一晚上尝试了下,并记录如下。 ...
** 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).** ...
最近被pomelo的一个bug搞的心力憔悴,之前本地开发和阿里云环境上都是好好的,但是在另一套环境下时不时就挂。为了这个问题加起来折腾了好几天,今天终于算处理掉了(虽然还没从根子上解决)。写篇文章记录一下思路和解决方案。 ...
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! ...
为了编译libcurl,必须下载android系统源代码,结果发现被某墙弄的基本不能下。我手头只有一个性能很弱的vps,最后没办法走上了双重代理不归路~最后使用了ssh端口转发,然后socks5代理转http代理(其实也可以拿来干别的事情,如上上网什么的) ...
最近升级了人人v7,发现人人网改造器挂了,想下个相册都没办法。后来找到一个专门下载人人相册的工具,试了下也不灵,应该是HTML结构变化所致,就稍微改了改代码,使得在新版人人上也能用了。 ...
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. ...
最近尝试了一下在Visual Studio 2012中编译Unreal 4,记录一下其中踩的坑 (其实这个纯粹是我蛋疼才这么干的,讲真还是升级VS比较方便…) ...
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: ...
这是@老赵写的一个js库本质是用eval函数实现的~我们写看起来是同步的顺序流程代码,但是实质异步执行 ...
本学期计算几何课程,选了三维模型布尔运算作为大作业选题。主要考虑到邓公的演示一向比较绚丽多彩,各种PDF和网页中的applet作为demo;我就想把我们最后的东西也搬到网页上来。 ...
其实本来研究生阶段我是不准备做任何社工活动⊙﹏⊙b 上学期的时候忘了具体啥事,好像是在微博上和刘老师聊了几次,她表示“嗯下学期来做助教吧”,嗯然后我就成为了软工课的助教,负责整个大作业部分,嗯嗯坑帮助学弟义不容辞^_^ ...
Windows 7, avast shields cannot be started. When uninstalling, it said: a setiface error has occurred: 2 ...
我一直是用Eclipse+WTP,配合tomcat7以及mysql来写struts2网站的。今天开电脑以后遇到了一个很奇怪的问题:tomcat7始终在eclipse中启动不起来 ...
JMeter是Apache开发的一款开源Java压力测试工具。一开始是针对Web应用开发的测试工具,后来扩展到了诸如数据库、LDAP、Mail等多个方面,总之就是很强大了。我曾经用过其分布式测试的功能,虽然因为网速问题比较蛋疼,但总的来说还是很不错的(这个主要是为了避免压力测试的瓶颈出现在客户端导致结果的误差)。 ...
嗯,这是拖了很久的一篇日志了上个暑假实习的时候做的事情是照片的自动增强,与iPhoto的enhance进行了比较。但是需要生成几千张照片的批量enhance比较麻烦 ...
前段时间在帮着做一个网络模块,背景是一个actionscript的项目和后台服务器进行数据交换。最后选择了BlazeDS的解决方案,使用HTTP封装的AMF协议进行通信。交换的数据中有各种数组和自定义类,blazeDS基本上都能自动序列化和反序列化,因此用的比较舒服。但一开始配置环境的时候遇到了各种奇怪的问题,特别有一个问题网上搜索只有在一个post里提到,因此很值得记录。 ...
清明的时候Gus找我做的一个安卓的UI,要拿去参赛-。-本质上是一个用手机控制家里的各种灯的开关、明暗、颜色等,需要一个过得去的界面。反正我只管搭空壳子。昨天晚上+今天早上突击搞了一下,发现android的各种view还是博大精深的,外加xml自定义各种强大。最后也算自我感觉不错,嗯~ ...
去年做软工课的时候,实现了完整的OAuth验证和javascript/Android两种客户端,既然有人已经发过安卓的SDK了,那就做个pure JS的DEMO版本吧(话说万恶的调休害的我没啥空都=。=) ...
Javascript跨域访问(Cross-Domain,主要可以看这个same origin policy),一直是个很纠结加蛋疼的问题(擦话说我又想到当时做flex时也遇到了跨域问题) ...
Adobe After Effects是个很强大的工具!之前一直想学了拿来做MAD玩的,可惜貌似一直没空。这次正好毕业DV可以做点特效,一方面是正好不用露脸-。-还可以做点贡献嗯嗯。主要做了几个特效,一个是烟雾化切场,一个是老电视的开头效果,还有一个是山寨基友夏洛克YY时候的场景。 ...
零零散散也做过一些海报,但说实话很业余……有个空间挂自己的东西,想想还是把有些不那么纠结的扔这里,想想十年以后看到这些是咋样一个心情( ﹁ ﹁ ) ~→ ...
最近在做的一些工作都是基于opencv的,准备有空将部分代码拆分、整理好之后挂上来。 ...
主要是讲述关于图片分割的内容,使用了Mean shift: A robust approach toward feature space analysis提出的方法,应该是目前效果最好的几个方法之一了。整个算法分为两步:Filter和Segmentation。这里简单说下实现,具体原理请自行阅读论文(¬_¬) ...