文章列表

1.6k1 分钟

# 简介 哈喽啊,这里是咲夜Starry,感谢你来到我的博客,我会在这里分享一些学习经验或者一些我的项目,可能也会有一些杂谈或者文学作品什么的 作为一名nacg爱好者,虽然可能漫画看的比较少,接触的动画、小说、游戏感觉还是蛮多的,但是毕竟学校一直在国内,时间没那么多,很多作品也还得现在慢慢补了 同时作为一名技术宅,平常也做过不少项目,这部分就留到后面具体介绍了。至于宅的部分,以前确实出门或者去上学的动力很不足,加上心理障碍等,不登校了也是。现在相对自由点了,压力没那么大了,有时候是会出去走走,不过可能还是在屋子里敲代码打电动看作品的时间比较长,另外社交这一块也是苦手了 # 技术Tags P
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
4891 分钟

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

# 光栅化 Rasterization 我们目前已经实现的是将场景中的物体经过 MVP 变换 (Model-View-Projection) 变换到二维平面上,接下来就是要进行光栅化。 首先我们需要找一个包围盒,常见的 AABB 包围盒采用该三角形最大最小的 XY 值作为顶点,在包围盒内我们可以应用光栅化函数 取每一个像素的中心,如果中心在三角形内,则着色,反之不着色 但是这样我们会发现图形是硬边缘,锯齿感比较严重 # 抗锯齿 Anti Aliasing 方案有对原图形进行模糊再光栅化等 常用的有 MSAA 将每一个像素进行细分,用子像素在三角形内存在的数量决定该像素的颜色 FXAA T
2.1k2 分钟

对应 Games101 Lecture 3~4 # 模型变换 # 齐次坐标 就是将 点 [xyz]\begin{bmatrix}x\\ y\\ z\end{bmatrix}⎣⎢⎡​xyz​⎦⎥⎤​ 表示为 [xwywzww]\begin{bmatrix}xw\\ yw\\ zw\\ w\end{bmatrix}⎣⎢⎢⎢⎡​xwywzww​⎦⎥⎥⎥⎤​,其中 w0 ≠\ne= 0 向量 [xyz]\begin{bmatrix}x\\ y\\ z\end{bmatrix}⎣⎢⎡​xyz​⎦⎥⎤​ 表示为 [xyz0]\begin{bmatrix}x\\ y\\ z\\ 0\end{b