在电影拍摄数字化之前,电影的放映往往是使用胶片,或者胶片的数字拷贝
早年使用胶片拍摄的电影由于感光层材料的问题,所以画面往往呈现的非常有颗粒感
这从技术层面分析叫"噪点"
![]()
这是一张星际穿越的IMAX胶片扫描图,可以看到库柏(Cooper)的脸部呈现了很多的颗粒感
这就是我们所说的"噪点"
![]()
Adobe
虽然从技术的角度来说"噪点"这个东西大概算不上什么好东西
不过因为画面有颗粒感(噪点)的影视作品是很多人回忆的一个重要要素,所以很多人称其为"质感"
很多游戏也通过一些方法制作了"底片颗粒"的画面选项
通过图形学的数学算法来模拟老胶片老电影的颗粒感
我们这一期来探讨一下底片颗粒画面选项的实现逻辑
生成噪点纹理
常见的噪声类型有Perlin noise、Simplex noise、Gaussian noise等。最常用的是伪随机噪声或高斯噪声。
伪随机数生成器(PRNG)
计算机的操作是确定性的,因此无法产生真正的随机数。
所以,计算机使用伪随机数生成器(PRNG)来生成一系列假的随机的数字。
这些生成器,熟悉编程语言的朋友们都知道,使用到了种子数的算法,你以为是随机的,其实带有确定性.
不过我实在是太菜了,只知道个大概,所以没办法再带大家深入了解这个了
![]()
2. 生成均匀分布的随机数
高斯噪声需要服从正态分布,因此需要将均匀分布的随机数转换为正态分布。
![]()
matlab的rand,当然做游戏不是用matlab做的,只是举例
3. 将均匀分布转换为正态分布
为了生成高斯噪声常常将均匀分布的随机数转换为正态分布的随机数
时间变化Temporal Variation
为了避免静态的噪声图像看起来不自然,很多游戏会在每一帧中对噪声进行微小调整。这么搞可以模仿电影中的随机颗粒抖动
貌似还可以通过噪声图来生成新的噪声图。
游戏中被大家诟病的另一个选项"TAA抗锯齿"其实也可以被理解为时间变化Temporal Variation的一种应用
![]()
从某乎顺来的图
基于亮度的权重
许多底片颗粒效果会根据图像的亮度进行加权。暗处颗粒通常更明显,亮处颗粒就被减弱。通过这种亮度的权重,噪声分布会更自然一点点。
![]()
分辨率与缩放
为了模拟真实胶片的颗粒感,噪声的分辨率可能比屏幕分辨率低。通过在更低分辨率下采样并缩放回原始分辨率,可以使颗粒看起来更加自然,避免过于细腻或平滑
![]()
图源机器之心
你应该开吗?
我个人认为,如果你不太懂什么质感不质感这种概念,只追求画面的清秀,最好就不要开"底片颗粒",把他全部关掉
如果你喜欢复古电影那种感觉,那这个画面选项可以很好的复刻那种效果
更多游戏资讯请关注:电玩帮游戏资讯专区
电玩帮图文攻略 www.vgover.com
