Godot 上的 PS1 风格渲染插件:还原初代主机的固定管线画面

AI3D 发表于 4 周前 浏览 0 分类 创作分享

独立游戏追求 PlayStation 1 美学的浪潮早已不算新鲜,但最近感觉这类作品越来越多。有些人可能觉得这是让游戏看起来有趣的偷懒做法,而另一些人则把它视为对不断追求逼真画面的一种不错的调剂——我们在 NVIDIA 备受争议的 DLSS 5 上又一次看到了这种情况。

但要想准确还原那些 PS1 的视觉效果,并不像看上去那么容易,你需要很好地理解是什么让当年的游戏呈现出那样的画面。独立游戏开发者 Calin P 最近发表了一篇不错的文章,解释了 PS1 是如何实现其独特画面效果的,以及如何在 Godot 中重现这些效果,内容源自他开发自己的 PS1 模拟器 P-chan 的工作。点击这里阅读详细解析。

“PlayStation 的 GPU 通过所谓的固定功能管线(fixed-function pipeline)来工作。这意味着它总是以完全相同的方式绘制多边形(不只是三角形,这不是笔误),除了你可以在绘制调用(draw call)中设置的一些参数之外。现代 GPU 是可编程的,这意味着图形程序员可以写出任何乱七八糟的代码来指示 GPU 渲染场景(不过现代 GPU 能做的远不止渲染)。但这对我们试图模拟 PS1 外观意味着什么:我们可以为游戏中的每个对象使用相同的材质,并使用实例化渲染(instanced rendering),用一次绘制调用* 画出游戏中所有的 3D 几何体。

*Godot 仅在其 Forward+ 渲染器中支持实例化渲染(或批处理),而使用不同的纹理会破坏批处理。”

Try This Authentic PS1-Style Rendering Add-On For Godot

最终的着色器采用 MIT 许可证,并已在 GitHub 上提供,其功能包括精确的顶点吸附、自定义光照系统、平面三角形深度缓冲、仿射纹理映射、精确且可针对每个模型单独设置的抖动、颜色调制、雾效,甚至还有《寂静岭》风格的雾效。

Calin P 还推荐了 Elias Daler 的这段视频,其中更详细地讲解了雾效:

如果你喜欢复古风格的独立游戏,这个名字可能听起来很熟悉,但如果不是,这就是那位开发者,他开发了一款真正能在原版 PlayStation 上运行的游戏。他还为这台主机制作了2004 年传奇冒险游戏《梦日记》的 3D 粉丝重制版。

相关链接

原文链接:https://80.lv/articles/try-this-authentic-ps1-style-rendering-add-on-for-godot

喜欢这篇内容吗?