Screen Test Pro

24 个着色器,以及与它们配套的滑块

作者 Screen Test Pro发布于

本周,特效画廊大了不少。Shader 层是位于 13 个基准测试场景下方的全屏片段着色器,原来只有 5 个场景,现在增加到了 24 个,而且每个场景都有一个或两个滑块,可以拖动它们改变你看到的画面。

特效画廊中的多排着色器磁砖,每块都显示自己的场景画面:低悬的太阳照着海面、月光下的海、异星、螺旋星系、绿色代码雨和电蓝色细丝。
每块磁砖都是真实的着色器画面,在第一次滚入视野时绘制。

新增内容

新增了 21 个场景。低悬的太阳照着开阔海面。月光下的海几乎一动不动,因此在 OLED 上长时间运行时,它反而是这里最温和的选择。还有阴云、布满陨坑的异星,地平线上悬着一颗带环巨星;粉色异星峡谷;向观者倾斜的螺旋星系;星轨;曲速隧道;围绕绳结旋转的绿色代码雨;摄影棚灯光下的镀铬分形球体;黑白万花筒;被活跃电流环绕的玻璃心;以及其他几个场景。

为了腾出位置,两个旧场景 Synthwave Horizon 和 Neonwave Sunrise 退役了。

磁砖也变了。在此之前,每块着色器磁砖都显示一张手绘的场景草图,而草图并不总是准确。现在磁砖就是场景本身:着色器会在画面第一次靠近屏幕时把一帧画进去,鼠标悬停后则会实时播放。

滑块

打开任意着色器,控制条里就能看到以前没有的一个或两个滑块,它们位于负载、速度和画质旁边。

开阔海面正在全屏运行,控制条中显示浪高和破浪滑块,旁边是负载、速度和画质。
把开阔海面的浪高滑块推高。旁边的破浪滑块决定海浪拉动水面的力度。

如果场景作者留下了一个决定整体形状的数字,滑块就控制那个数字。海面有浪高和破浪,阴云有云量和光照,星系有旋臂扭转,星轨有星轨数量,曲速有光带数量。融色保留了作者自己的种子——代码注释鼓励你修改它,而任何数值都会产生不同的一组形状。Demoparty 的滑块则以每分钟节拍数表示节奏。

有些场景内部没有任何东西能移动而不破坏其他部分。对于这些场景,我们改为在场景外部应用色调和缩放。每个滑块都从作者设定的位置开始,因此第一次看到的始终是作者制作出来的那个场景。

三个场景播放前会先询问

我们让每个着色器都通过了闪烁测试。测试会测量屏幕不同区域随时间发生的亮度波动,采用光敏性癫痫指导中计算闪烁的方式,而不是凭场景看起来有多忙来判断。两个场景未通过:Flux Core 和 Demoparty。基准测试中的爆炸恒星 Hypernova 一直被标为闪烁场景,因此也加入了它们。

Demoparty 播放前显示的提示:此场景会闪烁,并提供播放和返回按钮,以及“在此设备上不再询问”复选框。
闪烁场景启动前会出现提示。只有勾选的“是”会被记住。

现在这三个场景都会先询问;在你同意之前,两个着色器的磁砖在悬停时也会保持静止。勾选“在此设备上不再询问”,之后就不会再看到这个问题。选择返回,则不会记住任何内容,下次仍会询问。其他场景都会直接打开,包括 Static Field。它看起来可能是页面上最激烈的一个,但因为噪点在任何足够大的屏幕区域上都会平均掉,所以测试轻松通过。

它们是怎样选出来的

这些着色器由其他人编写,所以我们先看授权。Shadertoy 的默认条款不允许商业使用,而本站带有广告,因此只有明确授予公有领域或 MIT 权利的作品才算符合条件。新场景中有 19 个属于公有领域,2 个采用 MIT。我们阅读作者代码中的授权声明,然后逐个检查着色器是否借用了其他地方的代码,因为混合作品的自由授权并不能让被借用的部分也变得自由。几款外观很好的候选者没有通过这一步。所有作者都列在特效页的表格中。

还有一个场景因为另一个原因被排除:一片漂亮的日落海面,在我们的参考 Mac 上以 1080p 运行时只有 29 fps。放到手机上,它会更像幻灯片。

在手机上

最重的着色器在高密度屏幕上会以较低分辨率打开,因此能以更平滑的状态开始。它们不会低于每个 CSS 像素对应一个设备像素;如果硬件跟得上,画质控制可以把分辨率调回去,fps 读数也是实时的,你会知道当前状态。所有这些都不会影响基准测试:着色器从不计分,而计分工作负载自 2.2.0 起一直冻结。

所有内容免费,直接在浏览器中运行,无需账户。只有你主动打开时,着色器才会加载和播放。完整更新说明见更新日志。

分享此页
讨论每种语言共用一个全站讨论串。使用 Google 登录后即可发言。
讨论