AnalyzeHDRPLit Lit 在改动Lit之前有必要详细的逐行分析一下Lit的Shader 虽然类似的文章已经有了,但还是选择自己手敲一遍以加深印象。 版本是14.0.8 Common.hlsl 路径 core/ShaderLibrary/Common.hlsl untiy为SRP单独抽象出了一个库,com.unity.render-pipelines.core,包含了很多基础的渲染代码,同时被URP和HD 2023-07-03
接口在编辑器中的拓展 前言 经常会希望在Unity编辑器中有这样一种功能的实现,可以直接引用(序列化)一个实现了指定接口的组件。 面向接口可以大大降低代码的耦合,实现依赖反转,同时更加灵活,后续的修改与扩展都更加方便。 但官方就是不做,可以从这个帖子中看到官方的态度。 所以下面就列举一下自己实现这个功能的各种方法。 问题描述 假使有这样一个接口 public interface ICanGetBool & 2023-06-15 编码 #接口 #编辑器工具
悬链线与弹簧质点模拟绳索 绳索模拟 最近有这么一个需求,模拟绳子。 如果是那种铰链之类的,可以直接用unity物理。如果是软体并且要求物理碰撞,那就得考虑Obi之类的用质点弹簧模型的解算器去解算了。 考虑到webGL也要用,Obi需求的求解器依赖于Burst,所以webgl没法使用。而且Obi不可控因素太多,为了一个简单的,无需物理的绳索动画,也没有必要使用太复杂的Obi。 还一种方式就是让美术在Blender,m 2023-06-15 编码 #悬链线 #弹簧质点 #绳索 #模拟
URP下厚度图的实现 屏幕空间厚度 总有一些时候需要获取特定模型的屏幕空间厚度,如次表面散射,透明渲染,或者最近项目中要求实现的X光效果。 Unity在2023.1的HDRP中提供了这一功能,经询问,URP暂无此计划。 翻阅HDRP的实现源码后才发现这个效果并没有那么复杂,性能损耗也没有想象中那么大,实现的方式很巧妙,遂决定在URP中复刻一下。 URP中的效果 HDRP中的实现 最关键的代码是一 2023-05-10 渲染 #URP #厚度图
物理 物理 流水账的记录一下Unity中和物理相关的一点坑 碰撞 碰撞体类型 静态碰撞体 刚体碰撞体 运动刚体碰撞体 没有刚体的称为静态,反之称为动态/刚体碰撞体。 刚体碰撞体再按照有咩有勾选运动(IsKinematic)分为普通刚体碰撞体和运动刚体碰撞体 复合碰撞体 需要在父物体触发OnCollider或者OnTrigger的话,父物体需要一个刚体。 MeshCollid 2023-04-24 其他 #物理
Lighting 前言 随便记一下HDRP中打光和烘培的一些要点和坑 光的来源 大致分实时光和烘焙光。 实时光 来自于实时平行光、点光等。 烘焙 可以是光照贴图,或者光照探针。 烘焙注意点 模型的光照UV是否合理 重叠 不相邻或者角度差距多大而UV却靠在一起 注意单面 尽量防止要渲染的面可以“看到”反面 注意单面处的阴影漏光(添加额外的提供阴影的物体) 室内场景注意 2023-02-24 渲染 #烘焙