Teleglitch RGB闪烁

原文链接

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

译注:在下图中我截取了几帧放在Teaser,看起来比较好懂。本质上是三个通道分别扭曲,然后随着时间减小扭曲强度,最后返回原样…

Read More →
辐射3 边缘处理

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

原文链接

辐射3中有不少图形上做的非常棒的地方,其中一个让我惊艳到的细节是辐射3是如何处理磨损的边缘。

Read More →

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

unity_localize_app

Read More →

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

Case 1

Simulation Mode Asset Bundle
unity_ab_lm_right unity_ab_lm_wrong

这个是用官方的AssetBundle例子改的,发现对于烘焙过的场景:

  • Simulation Mode下直接载入工程里的场景文件,显示正常的效果
  • Asset Bundle下载入打包出来的ab中的场景,显示错误

利用Frame Debugger分析对比了两种情况:

Read More →
Reflexi简明教程

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

本文使用的老版本界面与最新版本有所不同,而且内容覆盖的功能比较全,但介绍的比较笼统;之后我会结合Unity写一些具体的例子。 就我的使用经验来说,直接操作IL code还是比较丧心病狂的,利用后面的C#/VB.NET注入功能会方便很多,而且修改作用域、属性等功能其实用的不多。

Read More →

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

polygon_mode_sprites

Read More →

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

fillrate_profiler

Read More →

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

old_style3

Read More →

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

第一个常见的问题是渐变颜色区域经过压缩之后会出现色阶,如下图所示。我参考了dither思路,用Photoshop加了一层0.3%的高斯分布杂音;可以看到ETC和PVR都有所改进,但是仔细盯着看依然能看到一些噪声。

compress texture 1

Read More →

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

根据论坛说法,5.3会增加这方面功能但后来又说延迟到5.4,反正至今木有看到希望。有鉴于此,参考了Beast lightmap ignores light culling mask and/or layers这个回答里的代码,我自己写了一遍从而实现了烘焙的Culling:

不带Culling 带Culling
unity-bake-default unity-bake-cull
Read More →