恶毒的狗

Bad Fat Dog

移动端草海的渲染方案(三)

书接上文 前文介绍了Unity内置的 地形草(Terrain Detail) 存在的问题以及一些优秀插件的优化方案。 这些插件做法各有差别,但是主要的优化方式可以总结为以下几点: 利用 GPU Instancing 提速渲染。 消除 Terrain Patch 运行时 合并Mesh 造成的 CPU峰值。 利用 多线程设计 分担 主...

移动端草海的渲染方案(二)

书接上文 前文介绍了Unity内置 Terrain 刷草的一些缺陷,并且介绍了3款插件: uNature Advanced Terrain Grass Nature Renderer 下面就简单介绍一下这几款插件的做法,以及我们的选择。 如何刷草 Unity内置的刷草工具还是很好用的,Advanced Terrain ...

移动端草海的渲染方案(一)

塞尔达草海的模仿 塞尔达的草海 让人印象深刻,忍不住又要背诵台词: 我想起那天下午夕阳下的奔跑,那是我逝去的青春。 好了,现在回来。 如果尝试用unity内置的地形草来还原上图效果,我们会发现有点力不从心:首先,内置草的shader不支持 高光。 下图是前项目我们用传统的 Blinn-Phong 光照模型添加的高光: 这里在计算光照时让 草的法线向上,大致可以模拟...

关于间接高光的水平遮蔽(Horizon Occlusion)

Horizon Occlusion 第一次看到 Horizon Occlusion 是在读 Lux Plus 源码的时候。 Horizon Occlusion 是关于 间接高光 的 水平遮蔽 计算,典型的代码如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 // Horizon Occlusion #if defined (UNITY_PASS_FO...

一个日本人写的插件:Breath Controller

Breath Controller 今天无意发现一个日本人写的 呼吸控制器,挺好玩的,可以从他的 主页 下载源代码。 这个插件目前只支持 人形动画,不过只需要简单的几行修改就可以支持 Generic动画 了,文章的最后会给出代码。 好了,二话不说,先套到我们的 小甜甜 身上看看效果: 听轻音乐 听摇滚 实现原理 Breath Controller 是程序控制的呼吸动...

位置同步之移动预测

传统的状态同步流程 最近在整理前项目的代码,顺带把我们之前状态同步的一些技巧记录一下,本文是关于移动预测的。 下图是单人环境下 小甜甜 风骚的疾跑: 现在考虑一下把这个疾跑同步给其他玩家。 按照mmo传统的 状态同步 和 客户端先行 的做法,我们的主角在 移动状态 开始时向服务器发送 移动包,服务器收到包后进入 移动状态 并立刻广播给第三方,第三方客户端中我们的主角也进入 移动状...

ShaderOne的体积雾

ShaderOne的体积雾 ShaderOne 是Unity商店的一个shader资源,作者期望把所有的渲染特性集合到一个shader上去,所以起个名字叫 ShaderOne。 本人其实比较反对这种 All In One 的shader,因为变种实在太多,优化起来比较蛋疼,不过作为一个学习资料还是挺好的。 今天我们来看一下他的 体积雾 的实现,先上截图: 核心代码 说到体积...

关于ComputeScreenPos和ComputeGrabScreenPos的差别

一个Bug 今天QA报了一个渲染相关的bug:一个用了 扭曲 效果的翅膀特效在场景相机下显示正常,但是在UI相机上却有问题,截图如下: 扭曲背景 上下颠倒 了。 Bug的修正 这里用的 扭曲shader 是我们的美术同学从他们前项目搬过来的,代码很简单: 用 GrabPass 抓取当前屏幕做为扭曲背景。 添加 UV扰动 后再采样屏幕背景,即可达到扭曲效果。 问...

面对疾风吧

面对疾风吧 趁着年前有空,把 小甜甜 项目当初没做好的暴风雨效果迭代了一遍,录了个视频,如下: 是不是很有 塞尔达 的感觉呢,:) 做法也不难,主要操作如下: 添加全局风 修改草的摆动,使其受全局风影响 打开雨雾粒子的受力选项,使其受全局风的影响 扩展DynamicBone的摆动,使其受全局风影响 添加全局风 要让风的表现统一,这里还是借用了Unit...

C#热更新方案的选择

前项目的C#热更方案 小甜甜的C#热更方案 前段时间 noodle 说他把 小甜甜 项目中他做的 C#热更方案 开源了。 这个方案是一个 骚操作,不过是针对 il2cpp 的,核心思想是更新 libil2cpp.so,具体细节可以参考 github主页。 暗黑血统的C#热更方案 再早一点的项目 暗黑血统,那还是 Unity4 的时代,我们的C#热更方案也是一个 骚操作,这里列一下要...