文章列表
对比常见的各种序列化
# 数据序列化方案全维度对比 格式 类型 优势 劣势 Unity 典型应用场景 Protobuf 二进制 极小、极快。强类型安全,支持版本兼容。 不可读,修改需重新编译生成的类。 实时同步、RPC 通信、大型存档。 JSON 文本 通用性强,易读易写。支持动态解析。 体积大,解析速度中等。无类型约束。 Web 接口 (REST)、简单配置、小存档。 BSON 二进制 JSON 的二进制版,支持更多数据类型(如位图)。 比 JSON 快但比 Protobuf 慢,且体积不一定小。 MongoDB 交互、需要二进制嵌套的配置。 YAML 文本 易读写,支持注释、多行字符串
more...更复杂的算子拥有更高的性能
这类算子通常称为 硬件内建数学指令(Hardware Intrinsics) 或 Fast Math Functions。它们很多看起来像复杂数学运算,但 GPU(甚至 CPU SIMD)往往都有专门的硬件指令,因此比调用普通数学库快得多 下面按照图形学中最常见的整理。 算子 数学意义 常见硬件实现 相比普通实现 图形学用途 rcp(x) 1/x Reciprocal 指令 比除法快2~10倍 透视除法、UV插值 rsqrt(x) 1/√x Reciprocal Square Root 比 sqrt+除法快很多 normalize、光照 sqrt(x)
more...SDF介绍与贴花实现
# SDF定义 SDF(有向距离场/有向距离函数) 是隐式几何体的表达方式之一 隐式几何体是通过数学函数或方程来描述的几何形状,不直接记录具体的顶点或面片坐标 被定义为 空间中任意一点 到物体表面的最短有向距离 对于空间中的任意一点 ppp: f(p)>0f(p) > 0f(p)>0:点 ppp 在几何体外部。 f(p)=0f(p) = 0f(p)=0:点 ppp 正好在几何体表面。 f(p)<0f(p) < 0f(p)<0:点 ppp 在几何体内部。 大小:点 ppp 到几何体表面的最短绝对距离
more...Task开始深入理解.NET异步编程
# Intro Task 是 .NET 异步编程的基础。 编写一个 async 方法时,编译器会将其转化为一个实现 IAsyncStateMachine 接口的结构体,但 Task 本身是一个 Class(引用类型) 分配机制:每次调用异步方法,系统都会在堆(Heap)上实例化一个 Task 对象来追踪状态。如果异步方法频繁调用(如每帧执行),会造成明显的 GC(垃圾回收)压力 调度核心:它依赖 SynchronizationContext 或 TaskScheduler。在默认情况下,它倾向于在线程池中运行 Promise 模型:Task 就像一个承诺,它内部维护了结果、异常信息
more...Kajiya-Kay 的毛发特化渲染
好久没更新了喵 讲讲最近尝试的毛发渲染吧 包括真实化的毛发渲染和卡通渲染 # 基本内容 # 标准 Blinn-Phong 它的镜面项是 Ispec=ksIlmax(0,N⋅H)αI_{spec} = k_s I_l \max(0, \mathbf{N} \cdot \mathbf{H})^{\alpha} Ispec=ksIlmax(0,N⋅H)α 其中 H=L+V∣L+V∣\mathbf{H} = \frac{\mathbf{L} + \mathbf{V}}{|\mathbf{L} + \mathbf{V}|} H=∣L+V
more...






