文章列表

1.2k1 分钟

# 简介 呀哈喽,这里是咲夜Starry,感谢你来到我的博客,我会在这里分享一些学习经验或者一些我的项目 可能也会有一些杂谈或者文学作品什么的(虽然现在没有,之前倒是有一些放Pixiv了) 我算是中(zhong4?)度NACG爱好者吧 tech otaku save the world? # 技术Tags Pro(?): dotnet、Unity... Plus: python, golang, vue、react、ts, UE, c/cpp, ISPC... Basic: Java, Lua, CUDA... # 现状们 # 为什么是"们"
8151 分钟

# 数据序列化方案全维度对比 格式 类型 优势 劣势 Unity 典型应用场景 Protobuf 二进制 极小、极快。强类型安全,支持版本兼容。 不可读,修改需重新编译生成的类。 实时同步、RPC 通信、大型存档。 JSON 文本 通用性强,易读易写。支持动态解析。 体积大,解析速度中等。无类型约束。 Web 接口 (REST)、简单配置、小存档。 BSON 二进制 JSON 的二进制版,支持更多数据类型(如位图)。 比 JSON 快但比 Protobuf 慢,且体积不一定小。 MongoDB 交互、需要二进制嵌套的配置。 YAML 文本 易读写,支持注释、多行字符串
4k4 分钟

这类算子通常称为 硬件内建数学指令(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)
3.1k3 分钟

剔除算法 位置 对象 是否减少 DrawCall 是否减少 Vertex 是否减少 Fragment 侧 是否需要 Bake 应用场景 Distance Culling CPU 太远物体 ✅ ✅ ✅ CPU ❌ 大地图 Layer Culling CPU Layer ✅ ✅ ✅ CPU ❌ UI、特效 Frustum Culling CPU 视锥外物体 ✅ ✅ ✅ CPU ❌ 所有项目 Portal Culling CPU 房间外 ✅ ✅ ✅ CPU ✅(一般) 室内 Occlusion Culling CPU 被遮挡物体 ✅ ✅ ✅ CPU Unity默认需要
6.4k6 分钟

# 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 到几何体表面的最短绝对距离
22k20 分钟

# Intro Task 是 .NET 异步编程的基础。 编写一个 async 方法时,编译器会将其转化为一个实现 IAsyncStateMachine 接口的结构体,但 Task 本身是一个 Class(引用类型) 分配机制:每次调用异步方法,系统都会在堆(Heap)上实例化一个 Task 对象来追踪状态。如果异步方法频繁调用(如每帧执行),会造成明显的 GC(垃圾回收)压力 调度核心:它依赖 SynchronizationContext 或 TaskScheduler。在默认情况下,它倾向于在线程池中运行 Promise 模型:Task 就像一个承诺,它内部维护了结果、异常信息
4.4k4 分钟

好久没更新了喵 讲讲最近尝试的毛发渲染吧 包括真实化的毛发渲染和卡通渲染 # 基本内容 # 标准 Blinn-Phong 它的镜面项是 Ispec=ksIlmax⁡(0,N⋅H)αI_{spec} = k_s I_l \max(0, \mathbf{N} \cdot \mathbf{H})^{\alpha} Ispec​=ks​Il​max(0,N⋅H)α 其中 H=L+V∣L+V∣\mathbf{H} = \frac{\mathbf{L} + \mathbf{V}}{|\mathbf{L} + \mathbf{V}|} H=∣L+V
1.7k2 分钟

# 简介 Dynamic Localization 轻量级、可扩展、可插拔的国际化库,支持热重载和多种数据源 也就是一个国际化、本地化的库了 架构如下 ┌─────────────────────────────────────────────────────────────────┐ │ DynamicLocalization │ ├─────────────────────────────────────────────────────────────────┤ │
12k11 分钟

# 使用 MinVer + NuGet + GitHub Actions 实现 .NET 库自动化发布 # 前言 利用 MinVer、NuGet 和 GitHub Actions 实现一套完整的自动化发布流程 只需打一个 Git Tag 自动完成版本计算、打包和发布到 NuGet。 # 整体架构 Git Tag (v1.0.0) ↓ GitHub Actions 触发 ↓ MinVer 从 Git 历史计算版本号 ↓ dotnet pack 生成 NuGet 包 ↓ 自动发布到 NuGet.org # 一、MinVer:基于 Git Tag 的版本管理 # 什
5751 分钟

# 简介 AutoSettingUI Github 这个项目是根据一些现有的配置类快速生成配置控件的类库,运用上我觉得还是特别方便的,而且也是因为我自己的另一个项目中有运用,也感觉有一定的通用性所以抽出来的项目 # 功能 使用本项目你大概可以做到: 在开发中可以方便地配置一些数据查看变化等,类似Unity的Inspector 动态生成配置UI可以方便地实现插件的配置项注入以及辅助热重载插件 少些好多UI,然后工作继续摸鱼 ... 具体项目使用的介绍在github的readme,这里就不赘述了 # 神秘低语 另外理论上的项目测试版其实是nuget的正式版,~~ 可能因为我对自己太自信了(bu