依赖包

Magica Cloth 使用 Job System 和 Burst compiler 加快布料模拟,所以需要先安装这两个依赖包

Burst 可以直接下载
在这里插入图片描述

Job System 得通过 URL 添加,输入com.unity.jobs,设置中也要开启Enable Pre-release Packages
另外为了看到模型的骨骼节点,还要下载Animation Rigging

组件

名称 图标 介绍
MagicaPhysicsManager 管理器,使用时会自动创建
MagicaBoneCloth 控制骨骼(Transform)进行布料模拟,带骨骼的衣服和头发都可以用
MagicaBoneSpring 控制骨骼(Transform)进行弹簧模拟,适合胸部抖动
MagicaRenderDeformer 渲染变形器,用于对模型的网格进行变形,当使用 MeshCloth / MeshSpring 时需要,性能消耗大
MagicaVirtualDeformer 虚拟变形器,通过结合多个渲染变形器进行顶点缩减,并重构为一个虚拟网格。使用MeshCloth / MeshSpring时需要,性能消耗大
MagicaMeshCloth 对网格顶点进行布料模拟,适用于无骨骼的模型,可以实现比Bone Cloth更加精细的控制,是控制裙装的理想选择,与虚拟变形器一起工作,性能消耗大
MagicaMeshSpring 对网格顶点进行弹簧模拟
MagicaSphereCollider / MagicaCapsuleCollider / MagicaPlaneCollider 球形,胶囊形,平面形碰撞器,防止穿模,球形和胶囊形主要用于人体,胶囊形消耗更大,平面形主要用于地面
MagicaDirectionalWind / MagicaAreaWind 全局的风,区域的风

Magica Cloth的物理引擎完全独立于Unity的物理学引擎,因此,它完全不干扰Unity的物理系统。

MagicaPhysicsManager


MagicaPhysicsManager这个prefab是插件中自带的,运行时使用插件相关的组件后就会自动创建

Update Per Second 物理引擎每秒更新次数
Update Mode Unscaled Time - 刷新率不受 Unity 的 time scale 影响
Update Mode Once Per Frame - 每帧更新一次,当使用这种模式时,Update Per Second 需要根据游戏的帧率来调整。
Update Mode Delay Unscaled Time - 延迟执行,与 Unscaled Time 一样,但在渲染时也能进行布料模拟,能大幅提高性能,但结果会晚一帧,这个延迟是通过未来预测来插值的
Update Location 在 Late Update 之前或之后更新
Faster Write 使用 Unity 的新 Mesh API 更新网格顶点,提高网格更新速度,版本要大于 2021.2
OnPreUpdate / OnPostUpdate 在布料模拟之前或之后注册事件

MagicaBoneCloth 模拟头发,衣服飘动

MagicaBoneCloth 和 MagicaBoneSpring 都是通过改变骨骼节点Transform的位置和旋转来实现飘动效果

把模型拖入场景,点击模型,选择Bone Render Setup显示模型的骨骼,方便选择对应骨骼

这个模型后面有长发和两边的侧发,长发和侧发的参数设置不同,这里以长发演示


右键创建一个 Magica Bone Cloth,并改名为长发

这里有错误提示是因为还没有生成数据,将长发的根节点添加到Root List,点击Start Point Selection进入节点编辑模式


红色表示固定节点(Fixed Point),它不会移动,但是会旋转,一般就是根节点,每个可移动的骨骼链上,第一个节点必须是固定节点。
绿色表示活动节点(Move Point),受物理系统影响
还有一种灰色节点表示无效节点(Invalid Point),不参与物理运算

如果需要修改节点类型,先选择节点类型,按住左键在场景中拖动即可改变节点颜色
调整完后, 点击 End Point Selection 结束编辑

下面就是物理模拟相关的参数,这里提供了一些预设,点击Preset选择长发类型的预设,会自动修改适合长发的参数
头发相关的预设:前发(FrontHair),长发(LongHair),脸两侧头发(SideHair),马尾(PonyHair),短发(ShortHair)
衣服相关的预设:柔软的裙子(SoftSkirt),硬裙(HardSkirt),长开衩连衣裙(LongSlitDress)
尾巴或身上飘动的装饰物:Tail
最后点击Create生成数据

上面的错误提示消失,显示了一些参数。现在运行时拖动角色,长发会有抖动的物理效果,但是会有穿模的情况,所以还需要处理下穿模的问题。

Magica Cloth提供了两种穿模的解决方法,表面穿模(Surface Penetration)和碰撞体穿模(Collider Penetration)。

如果衣服(头发)与身体上的骨骼有关联的话,衣服会随着身体动作跟着运动,如图腿动的时候,裙子也会跟着动,这种情况可以选择表面穿模,表现力更好。

如果衣服(头发)与身体上的骨骼没有关联,衣服(头发)完全由自己的骨骼控制,如图腿动的时候,裙子不会动,这种情况使用碰撞体穿模。
模型属于第二种情况,所以选择碰撞体穿模

正常情况下,应该在头部,躯干,四肢都加上球形(MagicaSphereCollider)或胶囊形碰撞体(MagicaCapsuleCollider),这里为了省事儿只在躯干上添加胶囊形碰撞体

为了长发和碰撞体进行碰撞检测,还需要把这个碰撞体添加到长发的ColliderList中,再次点击Create生成数据,运行查看效果

下面处理下裙子

模型前面的裙摆和后面的裙摆被处理成了几个独立的片,这里只处理下后摆,新建一个MagicaBoneCloth改名为后摆

将后摆的几个根节点添加到Root List,并修改连接模式(Connection Mode)为Mesh Sequential No Loop,表示这几个骨骼链形成一个不闭合的网格面,连接模式指定Root List中骨骼链的连接方式。

Connection Mode Line - 表示单条骨骼链从父级到子级是线性结构的,两条骨骼链是独立的
Connection Mode Mesh Automatic - 自动连接附近的骨骼节点创建一个网格结构并进行连接,它不受Transform的父-子关系的影响,不适合太复杂的结构
Connection Mode Mesh Sequential Loop - 按照在RootList中的顺序生成网格,并连接第一条和最后一条骨骼链
Connection Mode Mesh Sequential No Loop - 按照在RootList中的顺序生成网格,但不连接第一条和最后一条骨骼链
Same Surface Angle 只在连接模式为网格时有,表示生成网格法线的角度(0-90)


连接模式选择Line,那么裙子上的每条骨骼链就分别单独进行碰撞检测,这样物体可能从两条骨骼链之间的缝隙穿过产生穿模


首尾相连的裙子选择Mesh Sequential Loop,生成闭合的网格面,这样碰撞检测更加精确


有的裙子不是闭合的就选择Mesh Sequential No Loop


在腿上创建碰撞体添加到Collider List,预设选择NormalSkirt,点击Create生成数据,运行查看效果

MagicaBoneSpring 模拟胸部抖动


与 MagicaBoneCloth 基本类似,Create Other -> Magica Cloth -> MagicaBoneSpring,右键先创建一个 MagicaBoneSpring 并改名为胸部

找到模型身上的胸部节点添加到 Root List

预设选择Breast,点击Create生成数据,运行时查看效果

MagicaMeshCloth 模拟裙子飘动


参考官方示例,使用Unity Chan模拟

首先,必须开启模型上的Read/Write选项,这是为了读取并修改模型身上的顶点,MagicaCloth不支持具有4个或更多顶点的多边形,所以Keep Quads必须关闭


在裙子,上衣,拉链这三个Mesh Renderer上都添加 MagicaRenderDeformer(渲染变形器),它能对网格进行变形,添加后会自动创建数据,如果上一步Read/Write选项没有开启,这里会报错

Create Other -> Magica Cloth -> MagicaVirtualDeformer,然后创建一个MagicaVirtualDeformer(虚拟变形器),把之前三个 MagicaRenderDeformer(渲染变形器)添加到Render Deformer List中,点击Create生成数据,如果这里报错,点击渲染变形器上的Create重新生成数据。MagicaVirtualDeformer的作用是将一个或多个MagicaRenderDeformer转换为一个虚拟网格,减少顶点,将高多边形网格转换为低多边形网格。这个虚拟网格只用于布料模拟,所以实际模型网格不会被减少。从Cloth Monitor中可以看到虚拟网格的顶点数和三角面数

Reduction Setting 调整下面的参数可以减少顶点数量,简化网格,修改后重新点击Create

参数 描述
Merge Vertex Distance 在这个距离内合并顶点,忽略网格的连接性
Merge Triangle Distance 在这个距离内合并三角面,考虑网格的连接性
Same Surface Angle 如果两个连接的多边形小于此角度,则认为它们是相连的
Use Skinning 勾选会对所有顶点的骨骼权重进行重新赋值,取消勾选减少物理计算的负担


点击Open Cloth Monitor可以看到这个虚拟网格

Create Other -> Magica Cloth -> MagicaMeshCloth,然后创建一个MagicaMeshCloth并改名为衣服

这几个组件之间的关系


接下来的操作和MagicaBoneCloth差不多。添加虚拟变形器的引用,点击Start Point Selection修改顶点类型

这一步比较麻烦,它没有自动帮我们设置类型,需要手动设置,把裙子部分设置活动节点(Move Point),活动节点需要连接固定节点(Fixed Point)

在腿部添加两个胶囊形碰撞器并添加到Collider List中

预设选择Skirt,点击Create生成数据,运行时查看效果

MagicaMeshSpring 模拟胸部抖动


前面和MagicaMeshCloth差不多,先给胸部附近的Mesh Renderer添加MagicaRenderDeformer(渲染变形器)

Create Other -> Magica Cloth -> MagicaVirtualDeformer,创建一个MagicaVirtualDeformer,添加胸部附近的MagicaRenderDeformer,点击Create生成数据,可以调整参数适当简化网格

Create Other -> Magica Cloth -> MagicaMeshSpring,新建一个 MagicaMeshSpring 并改名为左胸

添加MagicaVirtualDeformer的引用,Center Transform 就是 MeshSpring 摆动的中心,选择左胸节点,如何没有合适的节点可以创建一个Transform节点,调整位置到中心,黄色箭头是摆动的前方向,差不多是z轴正向,所以Direction Axis选择Z

预设选择Breast,点击Create生成数据,右胸的处理一样

运行时发现摆幅比较大,还需要调整下Spring参数,参考下面参数说明

MagicaDirectionalWind / MagicaAreaWind


MagicaDirectionalWind 是控制全局的风

参数 描述
Main 风量
Turbulence 风的湍流率,在0.0时,风总是从某一方向流动,在1.0时,风向会随机变化
Frequency 风向变化的速度,你可以改变湍流变化的速度
Direction Angle X/Y 绕X/Y轴旋转的角度


需要配合Unity的WindZone组件使用,修改MagicaDirectionalWind风量Main会同步修改Wind Zone的风量Main,可以将两者做成一个预制体在场景中使用

衣服,头发受到的风力通过External Force参数设置,参考下面的参数说明


MagicaAreaWind控制局部区域的风,可以设置方形或球形区域,用它可以实现爆炸时猛烈的气流效果

参数 描述
Main 风量
Turbulence 风的湍流率,在0.0时,风总是从某一方向流动,在1.0时,风向会随机变化
Frequency 风向变化的速度,你可以改变湍流变化的速度
Shape Type 方形或球形
Direction Type 球形时有效,One Direction - 风吹向某一个方向,Radial - 风从中心径向吹来
Attenuation 球形径向风时有效,风从中心到四周的衰减率
Is Addition 当处于多个风场叠加的区域时,勾选表示叠加这几个风的影响,不勾选会选择区域最小的风场


这是官方示例中演示的爆炸气流效果,在红球上添加了MagicaAreaWind,设置为球形径向风,调整风量到最大并勾选Is Addition,这样红球出现时就会伴随强烈的气流,这时再配合爆炸的特效就有不错的表现效果

参数说明

下面补充下其他其他参数的说明

Update Mode

指定模拟的更新时间

选项 描述
Normal 根据帧率更新
Unity Physics 基于 Unity 的物理更新,如果角色在 FixedUpdate 内移动,可以通过选择此项来抑制抖动

Culling


Culling是剔除相关的设置,当角色移出屏幕后如何影响物理系统的更新
首先需要将模型上的网格组件(Mesh Renderer或Skinned Mesh Renderer)添加到Cull Renderer List中,点击Auto Select即可自动添加,然后设置剔除模式

Culling Mode 描述
OFF 不剔除,始终进行模拟
Reset 离开屏幕,停止模拟,再次出现时,会重置模拟
Pause 离开屏幕,停止模拟,再次出现时,从停止的状态继续模拟

Animator和Animation上也有类似的剔除设置

Culling Mode 描述
Always Animate 不剔除,始终运行动画
Cull Update Transforms 离开屏幕,内部动画仍在运行,但不会更新Transform组件
Cull Completely 离开屏幕,停止模拟,再次出现时,从停止的状态继续模拟

Culling Type 描述
Always Animate 不剔除,始终运行动画
Based On Renderers 与Animator的Cull Update Transforms一样,离开屏幕,内部动画仍在运行,但不会更新Transform组件

建议动画的剔除和 MagicaBoneCloth 的剔除模式相匹配,确保物理模拟与动画更好地同步
下面是推荐的匹配模式

Animator Culling Mode MagicaCloth Culling mode 描述
Always Animate OFF 不剔除,始终进行模拟和动画
Cull Update Transforms Reset 离开屏幕,停止模拟和动画,再次出现时,会重置模拟和动画
Cull Completely Pause 离开屏幕,停止模拟和动画,再次出现时,从停止的状态继续运行
Animation Culling Type MagicaCloth Culling mode 描述
Always Animate OFF 不剔除,始终进行模拟和动画
Based On Renderers Reset 离开屏幕,停止模拟和动画,再次出现时,会重置模拟和动画

Algorithm


Algorithm中老的算法已经不再维护,新的算法解决了老算法的一些问题,一般就默认Algorithm 2算法

Radius


每个由物理引擎控制的点都被称为粒子(particle),Radius就是控制这些粒子的大小,从骨骼链的根节点到末端节点的大小变化

点击Open Cloth Monitor,勾选Particle Position和Particle Radius,就可以看到长发上的粒子,根节点是黄色,子节点是白色,粒子的大小会影响碰撞检测的判断

Mass


Mass 就是控制粒子的重量,较重的粒子更难移动,基本上,如果开始点比较重,结束点比较轻,MagicaBoneCloth 的模拟会更稳定

Gravity


Gravity 设置重力加速度的大小和方向,设置重力让衣服下垂,不容易飘起了会显得更自然一点

External Force


External Force 设置外力(如风)的影响

名称 描述
Depth Influence 根据粒子在骨骼链上的深度指定受到外力的比率。1.0表示100%受外力影响,0.0表示完全不受外力影响
Wind Influence 风的影响率,1.0是100%受影响,0.0完全不受风的影响
Wind Synchronization 风的同步率,增加同步率,每个粒子将以同样的方式移动。降低同步率会使每个粒子更容易受到干扰
Wind Random Scale 风的随机率,增加随机性,也会增加运动的不规则性

Drag


Drag 设定粒子的空气阻力,阻力越大,粒子的惯性衰减越快

Max Velocity 粒子最大速度(m/s)

World Influence


World Influence 设置身体运动时,粒子受影响程度

名称 描述
Influence Target 检测运动的主体,如果不设置,就会选择该组件所附加的Transform
Max Move Speed 粒子最大移动速度
Movement Influence 身体运动对粒子的影响程度
Rotation Influence 身体旋转对粒子的影响程度
Reset After Teleport 在一帧内大幅度移动或旋转称为Teleport,该选项设置是否在检测到Teleport时重置粒子的位置
Teleport Mode Reset - Teleport后重置一次模拟。Keep - Teleport后保持模拟状态
Teleport Distance 一帧内移动多远距离算一个Teleport
Teleport Rotation 一帧内旋转多大角度算一个Teleport
Stabilization Time After Reset 重置时执行稳定化处理的时间(秒)

Distance Disable


Distance Disable 根据身体与指定对象(通常是摄像机)之间的距离,禁用/启用模拟

名称 描述
Reference Object 指定要测量距离的目标,如果没有指定,将选择主摄像机
Distance 指定关闭模拟的距离
Fade Distance 淡化距离,如果Distance是20,FadeDistance是5,则在15到20的距离之间进行淡入淡出效果

Clamp Distance


Clamp Distance 设置粒子离根节点的距离范围,作为参考距离,设置从根节点到粒子的直线距离为1.0,并将距离增加或减少的程度设置为百分比。举例来说,当Min Distance Ratio为0.7,Max Distance Ratio为1.1时,移动限制范围如下

末端粒子只能在图中两条红线之间的范围内移动
Velocity Influence 速度效应,将此设置为低值可以减少粒子因突然运动而移动的问题。然而,粒子的惯性也会丢失。

Clamp Position


Clamp Position 限制粒子从原点移动的距离,原点是粒子的原始位置

名称 描述
Clamp Position Ratio X/Y/Z 可以相对于原点X/Y/Z轴移动的百分比(1.0=100%)
Velocity Influence 同上

Clamp Rotation


Clamp Rotation 限制相对于父节点的旋转角度,上图直线表示根节点(固定粒子)不能弯曲,尖端可以弯曲25度

Restore Distance


Restore Distance 恢复距离,缩放连接的粒子之间的距离,使它们保持在原来的距离,其作用是保持原始形状。
有以下三种粒子连接方式:

类型 描述
Struct 根据原始结构连接粒子,在Bone Cloth中,是由Transform的父子结构构建的,在Mesh Cloth中,是由Mesh多边形的连接信息构建的。必选的
Bend 从原始结构中连接更多的结构型粒子,可以使形状不容易坍塌。可选的
Near 忽略原始结构,仅连接那些靠近的粒子,这种连接可以保持形状的强度,但也使其不容易变形。可选的
参数名称 描述
Struct Stiffness Struct 连接强度,该值越高,恢复速度越快
Bend Point 是否使用Bend连接
Bend Max Connection 一个粒子的最大连接数,连接数越多,形状稳定性越强,但负荷也更大
Bend Stiffness Bend 连接强度,该值越高,恢复速度越快
Near Point 是否开启Near连接
Near Max Connection 一个粒子的最大连接数
Near Max Depth 进行Near连接的粒子最大深度,骨骼链上起点深度为0,终点深度为1
Near Point Length 要链接的粒子之间的距离
Near Stiffness Near连接强度,该值越高,恢复速度越快
Velocity Influence 同上

Restore Rotation


Restore Rotation 恢复旋转,当粒子产生旋转后恢复到相对于父节点的角度

参数名称 描述
Restore Power 恢复的强度
Velocity Influence 同上

Triangle Bend


Triangle Bend 三角形弯曲,当Connection Mode设置为Mesh相关的选项,或者使用Mesh Cloth时会显示该参数
两个连接三角形受外力变形后,两个三角形的角度恢复到其原始角度

参数名称 描述
Bend Power 恢复的强度,基本上设置为1.0就行,但具三角形数量比较少的时候,尝试降低该值
Twist Correction 会创建特殊的约束数据以防止扭曲问题,它会增加消耗,因此不建议使用它,除非有扭曲的问题
Twist Recovery Power 恢复扭曲的强度,如果值太高,形状可能会变得很硬

Collider Collision


Collider Collision 碰撞检测

参数名称 描述
Dynamic Friction 动态摩擦系数,与碰撞机接触的粒子很难移动,增加该值将增加摩擦力并减慢运动速度
Static Friction 静态摩擦系数,与碰撞器接触的粒子静止的强度,增加该值将导致粒子在碰撞器上立即停止

Penetration


Penetration 穿模

参数名称 描述
Penetration Mode 碰撞体穿模/表面穿模
Max Connection Depth 最大连接深度
Penetration Axis 粒子可以穿透哪个轴
Connection Distance 搜索粒子所连接的碰撞器时,最大搜索距离
Penetration Distance 粒子可以穿透的距离
Moving Radius 粒子可以移动的最大半径,粒子只能在这个半径的球体内移动
Penetration Ignore Collider List 要忽略的碰撞器列表

Rotation Interpolation


Rotation Interpolation 旋转插值

参数名称 描述
Fixed Non-Rotation 固定不旋转,当打开时,固定粒子(根节点)将完全不旋转
Line Avarage Rotation 根据连接线的平均角度调整粒子的旋转,将此功能打开会产生更平滑的结果

Spring


MagicaMeshSpring上调整弹簧的参数,指定弹簧运动的一个球形范围

参数名称 描述
Spring Radius 球形区域的半径
Spring Radius Scale X/Y/Z 三个轴影响的比例
Spring Power 弹簧力
Spring Direction Atten 弹簧力阻尼率取决于与球体前端的角度,左边是前面的方向,右边是后面的方向
Spring Distance Atten 弹簧力的衰减率取决于与球中心的距离,左边是球的中心,右边是球的外缘
Spring Atten Intensity 阻尼率的整体调整

Adjust Rotation


可以根据弹簧移动的距离为根节点添加旋转

参数名称 描述
Adjust Mode 指定检测运动的轴,通常是Direction Axis之外的两个轴
Adjust Rotation Power 旋转强度

性能优化建议

  1. Update Mode选择Delay Unscaled Time,实际的物理模拟会比画面慢一帧,为了解决这个问题,它通过上一帧和当前帧的物理模拟结果进行插值
  2. 尽量选择BoneCloth和BoneSpring进行模拟,如果裙子使用BoneCloth效果达不到预期就改成MeshCloth,但注意要简化网格
  3. Virtual Deformer组件上需要关注的是Use Skinning选项,如果勾选了Use Skinning,则需要对所有顶点的骨骼权重进行重新赋值,取消Use Skinning可以极大地减少物理计算的负担。它的限制在于当取消了Use Skinning选项后,网格只会受到影响程度最大的Virtual Deformer的影响,可能在一定程度上会影响最终的表现,但是如果对于一个网格的Render Deformer只在一个Virtual Deformer中使用的情况下则可以放心地取消该选项的勾选

参考

up主IGBeginner0116

官方文档

【博物纳新】Magica Cloth

Unity 布料模拟插件Magica Cloth相关推荐

  1. 插件完整_紫天学习星球教学:布料模拟插件完整功能使用详解01(中文)

    视频作者:TutorialsUp 视频来源:https://youtu.be/da7WY3uFQCc 中文讲解:紫天肖万涛 这是针对ClothWorks布料模拟插件的完整功能讲解,我们会分几部陆续放出 ...

  2. unity衣服模拟插件MagicaCloth

    此插件的物理是独立于unity物理引擎的,两者互不影响,碰撞块是自己实现的,但暂时只支持三轴放缩,单轴放缩将来可能会支持,如果没有硬性需求也够用了,效果还是很不错的. 主要使用到的是骨骼与布料模拟,骨 ...

  3. 【游戏开发进阶】Unity流体模拟,支持粒子系统,支持流体碰撞交互(Obi Fluid插件使用教程)

    文章目录 一.前言 二.效果演示 三.使用方法 1.流体发射器 2.流体碰撞器 3.流体渲染器 4.修改流体颜色 5.盆子模型 6.流体颗粒大小 7.流体材质 8.喷射口调节 9.喷射速度调节 10. ...

  4. Magica Cloth

    Magica Cloth当前在物理模拟的效果上相比Dynamic Bone插件更加强大,但是随之而来的性能消耗也不容忽视.本文旨在说明通过简单修改Magica Cloth插件中的部分设置项以及调整一些 ...

  5. Magica Cloth笔记——1

    文章目录 前言 一.Magica Cloth是什么? 二.主要组件 总结 前言 系统概览: 关于Magica Cloth的主要组件:MagicaPhysicsManager.MagicaBoneClo ...

  6. Magica Cloth服装模拟插件分享

    Magica Cloth服装模拟插件分享 前言 Magica Cloth 是一款高速的布料模拟器,完全使用自己的物理引擎,因此,它完全不会干扰Unity的物理系统. 官方链接地址 一 安装 使用对应的 ...

  7. Unity —— 针对DynamicBone插件的迭代来实现布料模拟

    这篇博客介绍了我在近期针对于Unity的DynamicBone插件进行迭代,从而实现近布料模拟的方法. 由于部分涉及到工作内容,因此询问了部门老大后决定本博客将只介绍迭代思路,不涉及到具体实现,也不会 ...

  8. 【Unity】Obi插件系列(六)—— Obi Cloth

    Cloth blueprints 有3种不同的Cloth blueprints类型,每一种都是专门设计的.每一种都有相匹配的Actor类型 cloth:普通布 不能撕裂,不能与动画网格(animate ...

  9. 虚幻引擎图文笔记:使用布料模拟(Cloth Simulation)系统制作一面可以随风飘动的旗帜(更新)

    本文使用引擎版本:UE4.26 UE4的布料系统真是强大,可以在游戏运行时实时解算布料出动画.本文以一面随风飘动的旗帜的制作为例,带大家了解一下UE4布料模拟(Cloth Simulation)系统的 ...

最新文章

  1. qpsk调制解调matlab_本科毕业设计课题—QPSK相干解调的MATLAB仿真(3)
  2. iOS中UIActionSheet使用详解
  3. NeurIPS2021 注意事项以及往年投稿、接受率回顾
  4. C++编码中减少内存缺陷的方法和工具
  5. JS滚动条到网页底部自动加载更多内容
  6. 子模板继承父模板示例_模板设计模式示例
  7. ubuntu12 04下django安装略谈
  8. [Linux]Linux应用程序中添加强制中断处理
  9. 数据结构与算法————九九乘法表
  10. 【java】java 并发编程 Condition 源码分析
  11. 公众号回复单个图文消息
  12. 【Spring 核心】装配Bean(一) 自动化装配
  13. 《调试软件》作者主页
  14. MySQL数据库索引教程(超详细)
  15. 对硬盘进行分区时,GPT和MBR有什么区别
  16. 关于安卓图片剪切造成软件崩溃问题的解决方法
  17. CDN加速技术可以解决网络客户的哪些痛点问题?
  18. codeforces 1526B I Hate 1111
  19. 5G手机芯片如何选择?
  20. 乔布斯的简历120万被拍卖,HR看了想打人……

热门文章

  1. 【Python】统计《红楼梦》中出场次数前十的人物
  2. 使用openpyxl组件对Excel将一张工作表拆分成多个工作表Sheet
  3. 警车持枪闯收费站 手枪抵工作人员头部威胁(附监控录像图)
  4. JDK8新特性 2W字总结的硬核知识
  5. 应力波通信系统实现(三)——功放设计
  6. 【历史上的今天】2 月 13 日:晶体管之父出生;.Net 面世 20 周年;《敏捷软件开发宣言》诞生
  7. 两台win7系统使用普通网线如何传文件
  8. 做的不好,真的不是因为时间少
  9. 大家快来a水题 n 55!w ! pue n a^o7 ! n paau ! (sdut oj2413)
  10. 【LC中等】177. 第N高的薪水