在这个非常简短的教程中,我会向大家展示如何在 Blender 渲染中,通过一张图像和 Shader Editor 里的几个节点,创建老式 CRT 显示器效果。


本教程不提供中文配音。您可以在下方观看英语配音的视频,并选择中文、英文或其他语言的字幕。视频下方提供了翻译成中文的文字稿。


视频文字稿

大家好!在这个非常简短的教程中,我会向大家展示如何在 Blender 渲染中,通过一张图像和 Shader Editor 里的几个节点,创建老式 CRT 显示器效果。

前段时间,我发布过一个视频,展示了我如何重建自己在 90 年代初的第一台 PC 配置。那个场景以及由它生成的渲染有一个问题,屏幕上的图像是通过一个应用了 Image Texture 的 Emission 节点投射出来的。那个年代显示器特有的彩色点阵没有被还原,因此画面看起来更像是一张发光海报,导致最终效果缺少真实感。

当时的显示器是通过红、绿、蓝三色荧光体生成图像的。基本上有两种布局方式。第一种是 Shadow Mask,其 RGB 三色组以点阵方式排列。第二种是 Aperture Grille,其特点是荧光体采用垂直条纹排列,主要用于高端显示器。

我的显示器使用的是第一种方案,所以我做的第一件事,就是在 Blender 中创建一张可平铺图像。我通过排列使用 Emission Shader 的圆形来模拟这些荧光体的排列模式,然后使用设置为 Orthographic 模式的 Camera 在黑色背景下进行渲染。这样生成的图像之后就可以重复平铺多次使用。

接着在 PC 场景的 Blender 文件中,我选择了分配给屏幕的材质,并在这个节点设置中添加了一个包含荧光体三色组图像的 Image Texture 节点。

为了让图像看起来像是由荧光体三色组绘制出来,需要进行两个操作。第一个是将图像与遮罩进行相乘。这个操作需要使用一个设置为 Multiply 模式的 Color Mix 节点,并将 Factor 参数设置为 1。相乘后的结果需要连接到 Emission 节点的 Color 输入端口。

第二个操作与遮罩映射有关,因为遮罩需要缩小并重复很多次。具体做法是,将 Texture Coordinate 节点的 UV 输出连接到 Vector Mapping 节点,然后再将 Vector Mapping 节点连接到遮罩图像的 Vector 输入端口。

为了在显示器的 UV 映射上缩小并重复遮罩,我们需要修改 Vector Mapping 节点中 Scale 参数的 X 和 Y 数值。我们可以将一个 Input Value 节点连接到 Vector Mapping 的 Scale 输入端口,从而同时修改这些数值。

关于 Value 的设置,我没有进行精确计算,不过请记住,在 CRT 显示器中,相同荧光体之间的距离称为 Dot Pitch,通常约为 0.3 毫米。一台 14 英寸显示器的显示宽度大约为 284 毫米,因此要获得可信的效果,荧光体遮罩应该重复数百次。具体数值取决于显示器类型以及所使用纹理的结构。

现在屏幕上展示的是仅使用 Emission 节点制作的渲染,与使用本教程中新节点设置制作的渲染之间的对比。使用新设置后,最终结果会比原始版本暗很多,但这完全正常,因为图像现在包含荧光体之间的黑色区域,而且通常每个荧光体只承载一个颜色通道的亮度信息,因此整体亮度会降低。你可以通过提高 Emission 节点中的 Strength 数值来进行补偿。

好了,这就是本期视频的全部内容!和我其他一些视频一样,本教程的文字版以及更多资源已经发布在我的网站上,链接可以在视频描述中找到。如果这个视频对你有帮助,可以点个 Like,并订阅频道支持我。下次见!

搜索教程

输入短语,或输入多个用逗号分隔的关键词进行搜索。

本站提供 Francesco Milanese 制作的 3D 模型、教程及计算机图形相关资源。3D 模型的使用许可可通过各模型页面上的链接前往第三方商店购买,并须遵守适用的许可条款。 Francesco Milanese — 意大利增值税号:06321250877。 联系方式:info@francescomilanese.com


高级隐私策略信息和cookie文件的使用