diff --git a/1Project/GPU地形/ComputeShader生成无限世界地形.md b/1Project/GPU地形/ComputeShader生成无限世界地形.md new file mode 100644 index 0000000..e69de29 diff --git a/1Project/ZYGame/州府前端流程.md b/1Project/ZYGame/州府前端流程.md new file mode 100644 index 0000000..b879c9c --- /dev/null +++ b/1Project/ZYGame/州府前端流程.md @@ -0,0 +1,52 @@ +# 宣战 +- 宣战权限 +- 时间 + - 可宣战时间 点数 + - 可配置 + - 不可宣战周期 + +# 同盟城池界面 +- 城池列表界面 +- 分配奖励功能-列表 + - 分配上限 + - 配置 + - 排序 +- 占领buff奖励列表界面 +- 分配记录界面 + +# 占领规则 +- 首战 + - 可以分配奖励 +- 正式占领 + - 超出可占领数量弹出放弃最低势力值提示 +- 放弃占领 + - **武侯**可以放弃 + - 一小时缓冲 + +# 攻防 +- 进攻: + - 个人攻击 + - 主力 + - 城防 + - 集结攻击 + - 列表 + - 剩余时间 + - 占领排行界面 + - 等级限制(配置,加盟时间限制(配置,新增世界buff + - 功勋商店 +- 防守 + - 列表 + - 互斥 + - 主力 + - 城防 +- 攻占UI + - 首占 + - 最终占领 + - 占领结果 + - 排行榜界面 +- 保护 + - 不在本赛季开放 + - 非宣战时间 + +# 野城 +- 单人进攻提示 diff --git a/1Project/海量渲染战斗/GPU动画.md b/1Project/海量渲染战斗/GPU动画.md deleted file mode 100644 index 4b10aaf..0000000 --- a/1Project/海量渲染战斗/GPU动画.md +++ /dev/null @@ -1,2 +0,0 @@ -- 拿到原mesh中的顶点uv,normals和bones以及bonesWeight,实例一张新的网格。通过RootTransform的算出来的每个顶点的Martix4x4与骨骼权重算出来的混合。 -- 通过Graphsic.DrawMesh()来绘制这张网格,至此实现gpu蒙皮动画 \ No newline at end of file diff --git a/1Project/海量渲染战斗/GPU动画工程/GPU蒙皮动画.md b/1Project/海量渲染战斗/GPU动画工程/GPU蒙皮动画.md new file mode 100644 index 0000000..49de22c --- /dev/null +++ b/1Project/海量渲染战斗/GPU动画工程/GPU蒙皮动画.md @@ -0,0 +1,37 @@ +### 蒙皮动画原理 +- 网格顶点可以绑定多根骨骼 + - 所以网格顶点在运行时就可以确定为根骨骼的**空间矩阵** * **骨骼混合权重** * **网格空间坐标** + - 世界坐标系下 RootTRS * 骨骼混合TRS * ResetPoseTRS + +### 为什么要升级到蒙皮动画 +- 可以做动画混合 +- IK +- 动态挂点 +- 节省贴图 + - 只需要渲染一张所有网格的顶点,不再需要每个clip都渲染全顶点贴图 + +### 混合架构:近处用 GPU Skinning,远处用顶点动画 + +这是很多项目最终的策略: + +- Camera 近处:角色很重要 → GPU Skinning(可以混合、IK、物理) + +- Camera 中远距离:角色只占几像素 → 提前烘成顶点动画、帧数降采样或干脆用 BillBoard + + +你的当前顶点动画管线可以直接作为“LOD 动画层”保留,不与 GPU Skinning 冲突,只要切换 Renderer/Material 即可。 +#### 蒙皮动画需要记录的数据有哪些? +- 一张原始网格的Vector3数据贴图 +- 收集骨骼和骨骼索引 +- 重映射后的骨骼索引 + - 如果之前 +- 一个动作 + - 该动作中骨骼每帧的坐标旋转 + - 会在Shader中计算**混合骨骼**后的TRS * 原始网格的TRS + - + +#### 蒙皮动画不同部位索引的问题 +- 蒙皮的骨骼索引在cpu中无问题,在gpu中有问题 +- Unity在创建骨骼的时候会检查骨骼**bindpose**和骨骼**索引**,如果索引超出,无法创建 + +--- \ No newline at end of file diff --git a/1Project/海量渲染战斗/GPU动画工程/GPU顶点动画.md b/1Project/海量渲染战斗/GPU动画工程/GPU顶点动画.md new file mode 100644 index 0000000..f509b9c --- /dev/null +++ b/1Project/海量渲染战斗/GPU动画工程/GPU顶点动画.md @@ -0,0 +1,7 @@ +### 顶点动画原理 +- 将蒙皮**网格**基于根骨骼的相对位移Vector3都写进一张图片中 +- 在运行时,在Shader中根据根骨骼空间矩阵,算出每个顶点 +### 烘焙阶段 +- 采样Clip在根骨骼的GameObject上的动画 +- 将采样到的每一帧网格顶点Vector3写进图片里 +- 另外烘焙一份uv1进网格,用来存储顶点索引 \ No newline at end of file diff --git a/1Project/海量渲染战斗/GPU动画工程/TODO 不同动作间的混合.md b/1Project/海量渲染战斗/GPU动画工程/TODO 不同动作间的混合.md new file mode 100644 index 0000000..e69de29 diff --git a/1Project/海量渲染战斗/GPU动画工程/TODO不同动作存进Buffer中.md b/1Project/海量渲染战斗/GPU动画工程/TODO不同动作存进Buffer中.md new file mode 100644 index 0000000..e69de29 diff --git a/1Project/海量渲染战斗/GPU动画工程/TODO将Time存进buffer中,做成不同的实例可以使用不同的动画时间.md b/1Project/海量渲染战斗/GPU动画工程/TODO将Time存进buffer中,做成不同的实例可以使用不同的动画时间.md new file mode 100644 index 0000000..e69de29 diff --git a/1Project/海量渲染战斗/GPU动画工程/TODO转为Job组织数据.md b/1Project/海量渲染战斗/GPU动画工程/TODO转为Job组织数据.md new file mode 100644 index 0000000..e69de29