Bob Blog

If you want knowledge,you must toil for it.

TownShip的海水效果

通过Unity复刻海水效果

TownShip海水效果抓帧 分为海水效果、鱼群游动、鱼跳跃、海岸线浪花、帆船航行、点击水面特效、海鸟滑翔等效果 海面Mesh 整个海面是由多块小区域不规则海面构成,每个小区域是由多个菱形mesh构成。菱形比方形波动效果更好。 海岸线浪花Mesh 海岸线的浪花是叠加的一组mesh 4个通道贴图 Waterx贴图 前三个通道分别如下: Red通道:小细碎浪...

通用渲染管线(URP)HLSL

HLSL基本语法及库函数

HLSL语义 顶点着色器(Vertex Shader)语义 输入 描述 类型 BINORMAL[n] 次法线 float4 BLENDINDICES[n] 混合指数 uint BL...

电影级对话生成

二款游戏学习笔记

本文是基于《刺客信条:奥德赛》 电影级对话自动生成系统学习整理的资料,工具开发作者是Ubisoft一个名为Francois Paradis的程序员,集结他21年来剧情生成系统之精华。第二部部分是《巫师3》剧情对话系统简单介绍,工具作者是动画技术导演Piotr。最后是国产游戏对话表现类型总结。 《刺客信条:奥德赛》 -Procedural Generation of Cinematic D...

荒野大镖客2画面分析

画面抓帧

使用renderdoc对《荒野大镖客2》Pc版本画面抓帧分析。 [光] 1、spot light,point light,directional light [场景] 1、建筑物件,地形,植被,水体,云,天气雨雪,雾 2、马,角色 [脚印] Parallax Occlusion Mapping 参考资料: the Atmospheric World gta

阅读UGUI源码

事件机制

[Selectable] Button/Dropdown/InputField/Scrollbar/Slider/Toggle都是继承Selectable实现,Transition实现状态间切换。 public class Selectable : UIBehaviour, IMoveHandler, IPointerDow...

阅读UGUI源码

关于顶点数据

了解UGUI源码更方便为游戏性能调优和扩展项目所需特制组件,UGUI源码Git地址。 [顶点辅助类] 存储Mesh所需的数据:顶点,顶点色,UV,法线,切线,和三角面顶点索引,数据都用ObjectPool构成的ListPool来维护【游戏设计模式:对象池模式】,这样可反复使用节约内存。如果是自定义特制形状UI组件就需要借助VertexHelper来组织数据。数据最终通过CanvasRen...

阅读UGUI源码

Graphic

[GraphicRegistry] GraphicRegistry管理所有Graphic,内部通过IndexedSet维护数据 public class GraphicRegistry { private readonly Dictionary<Canvas, IndexedSet<Graphic>> m_Graphics = ne...

Unity AssetBundle

文件格式解析

Unity 生产资源内部文件格式说明: Asset Bundle Internal Structure 文件类型 序列化文件(serializedFile) 序列化文件是AssetBundle的重要组成,本质上是对象和元数据的集合. 文件头(header) 文件以0x14字节开头. 文件头中数据都是以big-endian(大端模式:数据的低位保存在内存的高地址中,而数据...

数据结构与算法

链表

学习数据结构与算法资源 《算法导论》- Cormen,T.H. 算法可视化项目 算法可视化项目 算法可视化项目 topcoder leetcode coursera 以下题目均来自leetcode 翻转链表 反转一个单链表。 示例: 输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1...

数据结构与算法

递归、回溯、分治

以下题目均来自leetcode、poj 回溯法又称为试探法,但当探索到某一步时,发现选择达不到目标,就回退一步重新选择。 子集 给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。 说明:解集不能包含重复的子集。 示例: 输入: nums = [1,2,3] 输出: [ [3],   [1],   [2],   [1,2,3],   [1,3],   ...