小白计算机图形学入门之路一(Games101-5)

前言:

        不知道大家还记得上篇博客的内容吗?在games101-4的结尾里面我有说过,使用采样的方式进行的光栅化是会出现走样的情况的,也就是所谓的锯齿,这里我们来仔细说明一下。

1、锯齿

        大家还记得光栅化的实现过程吗?这里粘贴一下本小白的上篇博客小白计算机图形学入门之路一(Games101-4)-CSDN博客

        那么在采样后离散得到的三角形的像素点实际上是这个样子的

这个是放大以后的三角形,当然看起来根本就不像一个三角形了,周围就是所谓的锯齿,而这就是所谓的走样,实际上在unity中将一个图片放大都是会出现的,那么,本次笔记呢就是为大家解释一下,锯齿是怎么出现的,并且怎么才可以做到防止走样呢?

2、走样出现的原因

        首先我们得明确一点,实际上的光栅化就是进行离散,而采样实际上就是通过函数进行离散操作。

        那么重点来了,大家还记得傅里叶公式吗?

        任何函数都可以装换为很多正弦和余弦函数的和,也就是任何函数都可以转换为带有频率的函数的形式。!!!!!采样和频率有关吗?别急,待本小白细细说来。

        我们进行采样也就是离散成像素的时候实际上是有频率的。也就是说算成值是有固定频率的,而信息的输入(这里特指信号的输入)也是有对应的频率的,这里我们说成信号的输入频率。

        那么大家是不是想到了?没错,当信号的输入频率和采样频率对应不上的时候,就会出现走样的情况。

     

        我们着重看一下对比,当频率越来越高,而采样频率不变的时候,是不是对应的F(x)的值不一样了呢?此时就会发生所谓的走样。

        走样在频率的角度上来说就是频谱发生了混叠,点和点隔得远,会发生锯齿也就是走样。(这里需要注意的是,将采样过程换到频谱实际上就是重复画一个形状。)

3、避免反走样

        首先本小白先说明:避免反走样这里介绍一下unity中带有的反走样(也就是所谓的抗锯齿技术。着重介绍MSAA来说明,在课程中有介绍到先模糊,后采样,实际上也可以通过频谱进行分析。)

     Unity重带有的抗锯齿技术有:多重采样抗锯齿(MSAA)、快速近似抗锯齿(FXAA)和子像素抗锯齿(SMAA) 。

        这里介绍以下MSAA:

        我们上述已经讨论了,锯齿出现的原因实际上就是采样频率和信号输入对不上导致频谱重叠而造成的,那么他们的关系是什么呢?

        当采样频率越低,频谱对应的距离就越近。

        而MSAA就是将一个像素点拆分为好几个更小的像素点。

        就像这样,那么,一个拆分以后的像素点如果其中一个点在三角形内,其余三个点不在的话,那么这个三角形到底着色呢还是不着色呢?答案是着,而且着色的概览就是百分之二十五,也就是四分之一。

        那么从频率的角度出发呢?增加了采样频率(分辨率)。但是是不是导致他的频谱的距离更远呢?

        本小白就这个问题也陷入过沉思,不过就是我括号内的一样,在unity内当我使用msaa技术的时候不可能进行动态修改分辨率的,那么唯一的可能就是我们去掉了高频部分(高频可以理解为边界),即对三角形进行了模糊处理,效果图如下所示。

     

        那么这就是所谓的MSAA。因此注意的是,并没有提高分辨率,二十去掉了高频部分

        当然,很大程度上避免锯齿也会有对应的缺点,就是提升了计算量,那么有没有对应的优化呢?

        当然有,就是所谓的FXAA,这里本小白只简单提一下,因为本小白主要进行的是unity的开发部分,这一部分我更多的是当作了解。

        FXAA(快速近似抗锯齿),图像的后期处理,先得到有锯齿的图,找到边界,替换边界。

补充

        超分辨率:高分辨率图,但是采样频率不够,出现锯齿,DLSS(深度学习来做超采样问题)。

总结

        本次课程对于本小白来说更多的是了解,课程中有详细介绍具体的模糊操作是怎么通过卷积公式实现的:Lecture 06 Rasterization 2 (Antialiasing and Z-Buffering)_哔哩哔哩_bilibili,贴心为各位大佬奉上我上b站看的课程链接,当然,也希望多多支持本小白的课程笔记,本小白励志想成为的编辑器工具开发或者是重构编辑器的部分,也就是搭建框架的工作,如果后续有必要,本小白也会再进行深入的学习,也会为各位分享更多的关于unity学习的进阶笔记。

        ps:本小白最近在毕业答辩,所有有时会更新比较慢,希望各位大佬们多多见谅,本小白感激不尽。

使用优化算法,以优化VMD算法的惩罚因子惩罚因子 (α) 和分解层数 (K)。 1、将量子粒子群优化(QPSO)算法与变分模态分解(VMD)算法结合 VMD算法背景: VMD算法是一种自适应信号分解算法,主要用于分解信号为不同频率带宽的模态。 VMD的关键参数包括: 惩罚因子 α:控制带宽的限制。 分解层数 K:决定分解出的模态数。 QPSO算法背景: 量子粒子群优化(QPSO)是一种基于粒子群优化(PSO)的一种改进算法,通过量子行为模型增强全局搜索能力。 QPSO通过粒子的量子行为使其在搜索空间中不受位置限制,从而提高算法的收敛速度与全局优化能力。 任务: 使用QPSO优化VMD中的惩罚因子 α 和分解层数 K,以获得信号分解的最佳效果。 计划: 定义适应度函数:适应度函数根据VMD分解的效果来定义,通常使用重构信号的误差(例如均方误差、交叉熵等)来衡量分解的质量。 初始化QPSO粒子:定义粒子的位置和速度,表示 α 和 K 两个参数。初始化时需要在一个合理的范围内为每个粒子分配初始位置。 执行VMD分解:对每一组 α 和 K 参数,运行VMD算法分解信号。 更新QPSO粒子:使用QPSO算法更新粒子的状态,根据适应度函数调整粒子的搜索方向和位置。 迭代求解:重复QPSO的粒子更新步骤,直到满足终止条件(如适应度函数达到设定阈值,或最大迭代次数)。 输出优化结果:最终,QPSO算法会返回一个优化的 α 和 K,从而使VMD分解效果最佳。 2、将极光粒子(PLO)算法与变分模态分解(VMD)算法结合 PLO的优点与适用性 强大的全局搜索能力:PLO通过模拟极光粒子的运动,能够更高效地探索复杂的多峰优化问题,避免陷入局部最优。 鲁棒性强:PLO在面对高维、多模态问题时有较好的适应性,因此适合海上风电时间序列这种非线性、多噪声的数据。 应用场景:PLO适合用于优化VMD参数(α 和 K),并将其用于风电时间序列的预测任务。 进一步优化的建议 a. 实现更细致的PLO更新策略,优化极光粒子的运动模型。 b. 将PLO优化后的VMD应用于真实的海上风电数据,结合LSTM或XGBoost等模型进行风电功率预测。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值