看 Udemy 的课程记录下笔记… # 角色连击 主要分为三个阶段 1. 动画开始要去加载动画特效 2. 动画结束,需要动画切回初始状态,并且回复之前所有的参数 3. 当动画播放到一定进度时,接收用户切换动画的请求 # 动画连击的本质 一个动画 [0-XX%] 时不允许切换,当过了这个给定的百分比,则允许用户切换动画 (通过指定事件) # 动画间切换逻辑 如上图,主要分为四个阶段,接下来会逐一介绍这四个阶段分别代表什么 CastSkillBegin: 这个阶段主要是从 Idle 这个动画到 Attack 这个动画的融合开始,也即 Attack 这个动画的开始,这个阶段主要是准备...

# first 在 UnityMonobehaviour 生命周期中我们可以知道 Coroutine 是每帧都会执行一次的。但是 Unity 的协程的参数传进去的是 IEnumerator 这个类型,这是怎么实现类似于开一个子线程的情况呢?首先先说明一点,Unity Dots 虽然允许多线程,但是 Unity 官方非常不推荐用在移动端,理由是多线程异常的耗电。 然后回到主题,其实 IEnumerator 是一个迭代器,其中的 MoveNext 函数可以获取到下个元素. ---- 这是通常的用法 但是其实如果这个 IEnumerator...

最近买了一本故事册《星星之卵》 依旧是一本悲剧的故事. Nothing to be done. 像我们每个人一样。都只是在寻求认可。寻求属于自己的世界,有伙伴的世界。没有任何事情会在时间的面前被终结。就像星星之卵里秋吉最终也失去了所有一样。 这个世界不会记住任何人.

3D 动画的本质是通过控制骨骼的点的变化来确定模型的形状 而 Blend Tree 是几个动画之间的动画过渡 Blend Tree 的本质是通过控制不同动画间相同骨骼点在 不同时间点 的插值。 其实就是不同动画间 骨骼位置 的插值

[toc] Lambert’s law # 什么是光流量 光流量 Flux 主要是单位时间内的能量 即 Phi=limDeltatrightarrow0fracDeltaQDeltat=fracdQdt\\Phi = \\lim{\\Delta t \\rightarrow 0}\\frac{\\Delta Q}{\\Delta t} =...

[toc] 什么是遮挡半透 就是当一个角色或者物体跑到树或者遮挡物后面的时候,需要半透显示 主要思路是,两个 Pass, 一个 Pass 负责渲染被遮挡部分,另一个 Pass 负责渲染正常的模型 负责渲染被遮挡部分的 Pass 用 ZTest 中的 Greater 就可以了 # 菲涅尔方程 菲涅尔,就目前搜到的资料来看,菲涅尔是两种不同折射率物体边界的现象。 根据效果来看,或许可以理解为边缘光?公式如下: Fresnel=(1−saturate(vecncdotvecv)widthcdotBrightness)Fresnel=(1-saturate(\\vec{n}...

先介绍两种方法 基于法线方向与视角夹角是否垂直或位于边缘 两个 Pass, 一个 Pass 将模型边缘向外扩散一定距离,另一个 Pass 正常渲染 # 扩散外边界方式 这种方式只能扩散外边界 (比如内部纹理的描边就不行了), 而且规则模型的限制也很大 # 效果 # 代码 Shader “Custome/Outline” { Properties { [Header(Texture Group)] [Space(10)] _Albedo(“Albedo”,2D) = “white” {} [NoScaleOffset]_Specular(“Specular (RGB-A)”,2D) =...

这个早就想要学了,因为这个可以和图像处理结合在一起 我们知道,当所有的渲染管线流程走完一遍后,就会生成一张图,而对这个图片进行处理,就是后处理 # GrabPass GrabPass 比较特殊,它运行时会抓取屏幕位置渲染的图像,传递给接下来的 Pass 进行处理.GrabPass 是用于渲染图像的,图像的范围是物体所在屏幕的位置。 如果屏幕中有大量的物体使用 GrabPass, 那对性能的影响非常大的. 我的世界都褪了色效果. # 效果 # 代码 Shader “Custom/GrabPass” { Properties { _GrayScale(“Grab...

[toc] 曲面细分 在渲染流水线中处在顶点着色器之后 片元着色器之前 其功能主要是通过曲面细分来增加模型的细节,通常曲面细分会配合三张图 颜色图,即主纹理 高度图,即高度映射 法线贴图,即顶点的法线方向 在 ShaderLab 的 SurfaceShader 中,如果想声明一个曲面细分函数,需要在预声明中添加 tessellation: 函数名 该函数只需要返回一个整数即可,即细分级别 常见的流程为:通过高度图处理顶点高度 —> 通过曲面细分对顶点进行细分 -> 通过法线贴图对顶点法线进行修改 -> 通过 Color...