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
3k3 分钟

# Definition To derive the determinant rigorously from the concept of nnn -dimensional volume, we define a function f:(Rn)n→Rf: (\mathbb{R}^n)^n \to \mathbb{R} f:(Rn)n→R that maps nnn vectors (v1,v2,…,vn)(\mathbf{v}_1, \mathbf{v}_2, \dots, \mathbf{v}_n)(v1​,v2​,…,vn​) to a scalar representing the si
4891 分钟

# 第一步 按照Install .NET for Android dependencies安装Android-SDK 然后安装JDK,去java官网安装,同时目前avalonia要求的jdk版本是17,注意不要弄错了,虽然可能未来会变吧,当你看到这篇文章的时候 # 第二步 配置项目 将安卓子项目的csproj文件用文本编辑软件打开,在 <PropertyGroup> </PropertyGroup> 之中加入 <AndroidSdkDirectory>你的SDK路径</AndroidS
7891 分钟

# 实现思路 Whitted-Style 以摄象机为起点,向成像平面发射射线(Ray),透过成像平面所被分成的像素打在最近的模型的点上,并将该点与光源连接,即已知入射方向,观察方向,法线方向,可以着色,并写回像素 加上光线的反射和折射和能量损失 可以一直递归下去 听上去很简单,但实际上一点也不简单 我们将光线的方程定义为一个方向向量与时间t相乘加上一个点 光线方程和平面联立求解 但对于发射出的光线,每个像素都要发射一条光线,每条光线的每次反射都要要与场景内每一个面的方程求交 计算量极大 # 优化思路 # AABB包围盒 给每一部分都确定一个包围盒,每个包围盒的范围要大于那一部分,如果没有经过包
8561 分钟

# 定义 对于一个表面定义以下单位向量 法线方向 n⃗\vec{n}n 指向光源方向 l⃗\vec{l}l 指向观察方向 v⃗\vec{v}v 半程向量 h⃗=v⃗+l⃗∥v⃗+l⃗∥\vec{h}=\frac{\vec{v} +\vec{l}}{\left \| \vec{v} +\vec{l} \right \| }h=∥v+l∥v+l​ 表面属性若干 # Blinn-Phong模型 近似的经验模型 有三个参量 相加为最终结果 # 漫反射 Ld=kdIr2max(0,n⃗⋅l⃗)L_{d} = k_{d}\frac{I}{r^{2}