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

举俩栗子:

  • 有的材质球里贴了法线贴图,那么就必须计算切空间,但有的材质球只要读取模型的顶点法线就足够了
  • 有的材质球贴了自发光贴图,但是没贴的材质球完全就可以跳过这个tex2D(就算是一张小的黑色也是浪费啊)
Read More →

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

jenkins_list

这么做有两个好处:

  • 保持出包环境一致,所有流程自动化,避免人为操作带来的问题;
  • 方便偷懒…而且出包机器是一台28核56线程的黑苹果(某宝万能) 以后还能拿来跑Swarm
Read More →

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

Read More →

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

测试说明

Unity不支持热更新这事情一直是一个谜一样的痛点,特别是在我第一个项目上线之后,发现每次更新代价太大了…可惜官方Roadmap上迟迟没有出现这个功能。昨天在群里还看到琨少说天下直接热更新Python脚本,羡慕嫉妒ing。

为了解决这个问题,uwa之前分享过Android平台热更新解决方案:直接替换dll是一种解决方式(但iOS上因为使用IL2CPP所以没法这么干,而且这事儿是商业原因不是技术问题);还有一个比较常见的解决方案就是用lua。考虑到我们有不少同事之前写的是Cocos2d-lua,而且也有对应后端框架如Skynet,因此在下一个项目我们考虑使用Unity+lua的方式来开发。

在项目正式开坑之前,必然要进行一些调研工作。我发现网上已经有一些benchmark,但是具体的测试环境、测试版本不够明晰,有些资料也有一定的年头了…因此我维护了一份可以运行的unity_lua_benchmark,注明了框架版本、测试环境以及结果比较,希望对大家有所帮助;如果对结果存疑也可以下载源代码后自行比较。

Read More →

原文链接

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

mrturtle_stepbystep

本质上是画了一个比原来略大一些的黑色海龟。但是因为这个黑色模型的法线是翻转过的,所以只能看到其重叠部分。

Read More →

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

  • 成熟解决方案
    • ProCamera2D 支持各种2D游戏里的相机效果,相当丰富
    • Rewired 各个平台的输入设备封装
    • CloudOnce 各个游戏服务的API封装
Read More →
魔兽3 广告板

原文链接

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

warcraft3

Read More →

原文链接

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

divinity

Read More →

今天参加Unite 2016听下来最有收货的一个talk,虽然一半以上都是老生常谈…整理如下

ps. 我个人觉得比较有价值的在于资源审查这一部分,关于各类资源的常用方法都提出了一些很有实用价值的建议和规范

unite2016-optimize

Read More →

原文链接

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

tree_zoom01

Read More →