1.【Catlike Coding Custom SRP学习之旅——11】Post Processing
2.满纸荒唐言:Processing 寻觅文字魅力篇
3.Processing起源
【Catlike Coding Custom SRP学习之旅——11】Post Processing
来到了后处理环节,简单简单这是图案图案渲染管线中关键的一环。后处理技术能够显著提升画面效果,源码比如色调映射、代码Bloom、简单简单抗锯齿等,图案图案basetypehandler 源码都能在后处理中实现。源码除了改善整体画面效果,代码后处理还能用于实现描边等美术效果。简单简单本文将主要介绍后处理堆栈和Bloom效果等内容。图案图案
考虑到篇幅和工作量,源码本文将从第4章节后半部分开始,代码以及未来的简单简单章节,主要提炼原教程的图案图案内容,尽量减少篇幅和实际代码。源码在我的Github工程中,包含了对源代码的详细注释,需要深入了解代码细节的读者可以查看我的Github工程。对于文章中的错误,欢迎读者批评指正。
以下是原教程链接和我的Github工程:
CatlikeCoding-SRP-Tutorial
我的Github工程
1. 后处理堆栈(Post-FX Stack)
FX,全称是Special Effects,即特殊效果,也称为VFX(Visual Special Effects),即视觉特效。参考维基百科,地方社区手机源码视觉效果(Visual effects,简称VFX)是在**制作中,在真人动作镜头之外创造或操纵图像的过程。游戏很多技术都会沿用影视技术上的一些技术,比如在色调映射时,可以采用ACES(**色调映射)等。关于Special Effects为什么叫FX,而不是SE,网上似乎只是因为FX谐音Effects,让人不知道从哪吐槽。
通常来说,因为后处理会包含很多不同的效果,如色调映射、Bloom、抗锯齿等等,因此后处理在渲染管线中的结构往往是一个堆栈式的结构(URP中也是如此,使用了Post Process Volume)。因此,在本篇中,我们将搭建这样一个堆栈结构,并实现Bloom效果。
1.1 配置资源(Settings Asset)
首先,我们定义PostFXSettings资源,即Scriptable Object,将其作为渲染管线的供码系统源码一项可配置属性,这样便于我们配置不同的后处理堆栈,并可以方便地切换。
1.2 栈对象(Stack Object)
类似于Light和Shadows,我们同样使用一个类来存储包括Camera、ScriptableRenderContext、PostFXSettings,并在其中执行后处理堆栈。
1.3 使用堆栈(Using the Stack)
在进行后处理前,我们首先需要获取当前摄像机画面的标识RenderTargetIdentifier,RenderTargetIdentifier用于标识CommandBuffer的RenderTexture。在这里,我们使用一个简单的int来标识sourceRT。
对于一个后处理效果而言,其实现过程说来很简单,传入一个矩形Mesh(其纹理即当前画面),使用一个Shader渲染该矩形Mesh,将其覆盖回Camera的RT上,我们通过Blit函数来实现该功能。
1.4 强制清除(Forced Clearing)
因为我们将摄像机渲染到了中间RT上,我们虽然会在每帧结束时释放该RT空间,但是基于Unity自身对RT的管理策略,其并不会真正地清除该RT,因此我们在下一帧时,该RT中会留存上一帧的渲染结果,导致了每一帧画面都是如何转化为源码在前一帧的结果之上绘制的。
1.5 Gizmos
我们还需要在后处理前后绘制不同的Gizmos部分,这部分略~
1.6 自定义绘制(Custom Drawing)
使用Blit方法绘制后处理,实际上会绘制一个矩形,也就是2个三角面,即6个顶点。但我们完全可以只用一个三角面来绘制整个画面,因此我们使用自定义的绘制函数代替Blit。
1.7 屏蔽部分FX(Don't Always Apply FX)
目前,我们对于所有摄像机都执行了后处理。但是,我们希望只对Game视图和Scene视图摄像机进行后处理,并对不同Scene视图提供单独的开关控制。很简单,通过判断摄像机类型来屏蔽。
1.8 复制(Copying)
接下来,完善下Copy Pass。我们在片元着色器中,对原画面进行采样,并且由于其不存在Mip,我们可以指定mip等级0进行采样,避免一部分性能消耗。
2. 辉光(Bloom)
目前,我们已经实现了后处理堆栈的框架,接下来实现一个Bloom效果。Bloom效果应该非常常见,上位机plc源码也是经常被用于美化画面,其主要作用就是让画面亮的区域更亮。
2.1 Bloom金字塔(Bloom Pyramid)
为了实现Bloom效果,我们需要提取画面中亮的像素,并让这些亮的像素影响周围暗的像素。因此,需要首先实现RT的降采样。通过降采样,我们可以很轻易地实现模糊功能。
2.2 配置辉光(Configurable Bloom)
通常来说,我们并不需要降采样到很小的尺寸,因此我们将最大降采样迭代次数和最小尺寸作为可配置选项。
2.3 高斯滤波(Gaussian Filtering)
目前,我们使用双线性滤波来实现降采样,这样的结果会有很多颗粒感,因此我们可以使用高斯滤波,并且使用更大的高斯核函数,通过9x9的高斯滤波加上双线性采样,实现x的模糊效果。
2.4 叠加模糊(Additive Blurring)
对于Bloom的增亮,我们直接将每次降采样后的Pyramid一步步叠加到原RT上,即直接让两张不同尺寸的以相同尺寸采样,叠加颜色,这一步也叫上采样。
2.5 双三次上采样(Bicubic Upsampling)
在上采样过程中,我们使用了双线性采样,这样可能依然会导致块状的模糊效果,因此我们可以增加双三次采样Bicubic Sampling的可选项,以此提供更高质量的上采样。
2.6 半分辨率(Half Resolution)
由于Bloom会渲染多张Pyramid,因此其消耗是比较大的,其实我们完全没必要从初始分辨率开始降采样,从一半的分辨率开始采样的效果也很好。
2.7 阈值(Threshold)
目前,我们对整个RT的每个像素都进行了增亮,这让这个画面看起来过曝了一般,但其实Bloom只需要对亮的区域增亮,本身暗的地方就不需要增亮了。
2.8 强度(Intensity)
最后,提供一个Intensity选项,控制Bloom的整体强度。
结束语
大功告成,我们在渲染管线中增加了后处理堆栈,以及实现了一个Bloom效果,其实在做完这篇之后,我觉得这个渲染管线才算基本上达成了大部分需要的功能,也算是一个里程碑吧。
满纸荒唐言:Processing 寻觅文字魅力篇
探索文字的魅力:Processing中的艺术与实践
在文字的海洋里,我们仿佛看到《红楼梦》中“满纸荒唐言,一把辛酸泪”的深意。文字,如同无声的诗,无形的舞,承载着作者的深沉情感。年北京奥运会开幕式,汉字的魅力被世界瞩目,Processing也为我们提供了创作文字艺术的新途径。
在Processing中,字体设计是展现文字魅力的关键步骤。首先,我们需要创建字体,可通过手动工具或加载系统或网上下载的字体。接着,通过PFont对象来指定字体和颜色,利用textFont()和text()函数来实际绘制文本。比如,我们可以编写代码,如“一林过雨芦花白,半壁疏云栗子黄”,在线查看其效果。
进阶学习中,通过实例“Text Art”系列,逐步提升文字艺术的技巧。每个阶段,从文字跳动的动态效果,到天外飞仙的图形化,再到生活场景的细致描绘,都展示了文字在 Processing 中的无限可能。
创意字体设计方面,Geomerative和Fontastic两个库各有特色。Geomerative适合追求创新的设计师,而Fontastic则注重便捷性。在实践中,你可以根据自己的需求和喜好选择合适的工具。
最后,我们以《红楼梦》的金陵十二钗为灵感,用Processing创作的文字肖像小程序,虽然存在一些技术问题,但仍能展现出文字与艺术的完美结合。完整源代码和资源已分享在CSDN,供读者自行尝试和改进。
Processing起源
Processing的创始者,Casey Reas与Ben Fry,是美国麻省理工学院媒体实验室的美学与运算小组成员。该小组由John Maeda领导,通过高度实验性和概念性的作品,在艺术与设计领域中探索计算机的运算特质及其无限创造力。Casey Reas在加州大学洛杉矶分校Media/Arts系与意大利艾维里互动设计学院任助理教授。他以使用processing实现生物体的印象派表现,并将成果以多媒体、传感器艺术、数字雕塑、数字印刷等多种形式呈现而著称。他经常参与欧洲、亚洲和美国的演讲与展览,并担任奥地利林兹艺术节的评审委员之一。 Ben Fry目前仍在MIT媒体实验室攻读博士学位,研究方向为器官可视化。他发明了能实时根据不断更新的数据进行形变或质变的电子动态系统,并在博士论文中阐述了如何使用processing语言实现人类基因组工程所揭示的大量信息的可视化。他为此定义的专用名词为基因制图学。 Casey和Ben的成功证明了极少数人能完美结合艺术家、设计师和计算机工程师的才华。更重要的是,他们拥有开放源码的胸襟,对Processing的发展起到了关键作用。他们的工作展示了计算机科学与艺术设计的交汇点,推动了多媒体艺术的发展。 Casey Reas与Ben Fry的成就不仅在于他们的个人才华,更在于他们对Processing这一编程语言的贡献。Processing让艺术家和设计师能够更容易地探索计算机图形和动态视觉的可能性,为多媒体艺术领域带来了革命性的变化。他们的作品和研究为观众提供了前所未有的视觉体验,展示了计算机技术与艺术的完美结合。 综上所述,Casey Reas与Ben Fry的贡献不仅体现在他们各自的研究领域,更在于他们对Processing这一编程语言的创新与发展。他们的工作激发了艺术家和设计师的创造力,推动了多媒体艺术的边界,并为计算机科学与艺术设计的融合做出了重要贡献。扩展资料
Processing是一种具有革命前瞻性的新兴计算机语言,它的概念是在电子艺术的环境下介绍程序语言,并将电子艺术的概念介绍给程序设计师。她是 Java 语言的延伸,并支持许多现有的 Java 语言架构,不过在语法 (syntax) 上简易许多,并具有许多贴心及人性化的设计。Processing 可以在 Windows、MAC OS X、MAC OS 9 、Linux 等操作系统上使用。本软件目前是处于初版测试的阶段,试用版听说最近真的快要出了!以 Processing 完成的作品可在个人本机端作用,或以Java Applets 的模式外输至网络上发布。