CompositorEffect
这里笔者打算使用Godot4的Compositor Effect功能将DrawCall插入到渲染管线的特定位置。简单来说,Compositor Effect允许你注册一个渲染回调,在渲染线程执行到你指定的渲染阶段时,系统会触发你的回调函数以完成自定义渲染过程。
(翻译)CompositorEffect
注:本文是 https://github.com/pink-arcana/godot-distance-field-outlines/discussions/1 这篇文章的翻译
Distance Field Outline 对我来说是一个学习项目。我已经编程多年了,但不是专业的,也不是低级的。在开始之前,我对简单的 Godot 着色器有一些经验,并设置了一些多节点后处理效果。但我从未接触过 Compute 着色器或 Godot 的低级图形 API。我这样说是为了表明,即使你没有图形编程背景,也可以开始创建 CompositorEffects。但是,您确实必须愿意做很多自己的功课,并且无法通过谷歌搜索找到快速解决方案。
在制作这个项目时,我做了很多笔记。我最初将它们写在脚本中的注释中,所以现在我正在清理项目以发布源代码,我将这些注释添加到下面的讨论线程中。(编辑:随着我了解更多信息,我也在添加和更正信息和链接。
但是,就像我说的,我不是专家!所以,对我给出的任何建议持保留态度。我欢迎反馈或更正。我也很乐意获得您自己的提示和链接,无论是为了我自己还是其他访问的人。
我这里的所有基准测试都来自 Nvidia RTX 3080 笔记本电脑 GPU。如果您在不同的硬件上测试了我所做的任何相同的事情并得到不同的结果,请发布您的发现!我也为性能和优化开启了一个单独的讨论。
参考
https://zhuanlan.zhihu.com/p/20314165178
https://docs.godotengine.org/en/stable/tutorials/rendering/compositor.html#compositor-effects