接口在编辑器中的拓展 前言经常会希望在Unity编辑器中有这样一种功能的实现,可以直接引用(序列化)一个实现了指定接口的组件。面向接口可以大大降低代码的耦合,实现依赖反转,同时更加灵活,后续的修改与扩展都更加方便。但官方就是不做,可以从这个帖子中看到官方的态度。所以下面就列举一下自己实现这个功能的各种方法。 问题描述假使有这样一个接口 public interface ICanGetBool { bo 2023-06-15 编码 #接口 #编辑器工具
悬链线与弹簧质点模拟绳索 绳索模拟最近有这么一个需求,模拟绳子。如果是那种铰链之类的,可以直接用unity物理。如果是软体并且要求物理碰撞,那就得考虑Obi之类的用质点弹簧模型的解算器去解算了。考虑到webGL也要用,Obi需求的求解器依赖于Burst,所以webgl没法使用。而且Obi不可控因素太多,为了一个简单的,无需物理的绳索动画,也没有必要使用太复杂的Obi。还一种方式就是让美术在Blender,maya里绑定骨骼 2023-06-15 编码 #悬链线 #弹簧质点 #绳索 #模拟
URP下厚度图的实现 屏幕空间厚度总有一些时候需要获取特定模型的屏幕空间厚度,如次表面散射,透明渲染,或者最近项目中要求实现的X光效果。Unity在2023.1的HDRP中提供了这一功能,经询问,URP暂无此计划。翻阅HDRP的实现源码后才发现这个效果并没有那么复杂,性能损耗也没有想象中那么大,实现的方式很巧妙,遂决定在URP中复刻一下。 HDRP中的实现最关键的代码是一个Shader:ComputeThicknes 2023-05-10 渲染 #URP #厚度图
物理 物理流水账的记录一下Unity中和物理相关的一点坑 碰撞碰撞体类型 静态碰撞体 刚体碰撞体 运动刚体碰撞体 没有刚体的称为静态,反之称为动态/刚体碰撞体。刚体碰撞体再按照有咩有勾选运动(IsKinematic)分为普通刚体碰撞体和运动刚体碰撞体 复合碰撞体需要在父物体触发OnCollider或者OnTrigger的话,父物体需要一个刚体。 MeshCollider对于非凸面(一般)网格 2023-04-24 其他 #物理
Lighting 前言随便记一下HDRP中打光和烘培的一些要点和坑 光的来源大致分实时光和烘焙光。 实时光来自于实时平行光、点光等。 烘焙可以是光照贴图,或者光照探针。 烘焙注意点 模型的光照UV是否合理 重叠 不相邻或者角度差距多大而UV却靠在一起 注意单面 尽量防止要渲染的面可以“看到”反面 注意单面处的阴影漏光(添加额外的提供阴影的物体) 室内场景注意反弹次数,大于10 噪点产生原因 采样次数太少导致 2023-02-24 渲染 #烘焙
HDRP中的次表面散射 前言今天来研读一下HDRP的屏幕空间次表面散射的实现。 次表面散射不多介绍了,就是模拟光线在介质中传播,常用于皮肤、植被、蜡烛等半透明的材质。 双向次表面散射反射率分部函数bidirectional subsurface scattering reflectance distribution functio简称BSSRDF从名字大致能看出来是和BSDF类似的,但是考虑了次表面散射的因素。 fss( 2023-02-13 渲染 #SSS
布料模拟方案汇总 布料模拟总结一下常见的布料模拟的方案 K动画最传统,同时在某些特定场景下也是最简单有效的手段了,比如固定不动的随风摆动的窗帘。没什么好说的,存粹看美术的工作量了。 绑定+动态骨骼基于前一种,绑定好骨骼后,用物理模拟的方式去驱动骨骼的变化,进而模拟布料。最知名的应该就是Dynamic Bone这个插件了。能想到的场景比如人物的头发,裙摆等,都很适合这种方案。性能需求小,多平台支持,也有一定的动态。 2023-02-10 其他 #模拟 #布料