打造一台1997年玩《雷神之锤》的PC:VQuake性能基准测试
摘要
一篇详细的回顾文章,讲述如何组装一台1997年时代的《雷神之锤》PC,并对硬件加速版VQuake进行基准测试,重点介绍Rendition Verite 1000显卡及其独特功能,包括双线性过滤和全亮度支持。
暂无内容
查看缓存全文
缓存时间: 2026/05/16 03:34
# 打造一台Quake专用PC:VQuake
来源:https://fabiensanglard.net/quake_pc/vquake/index.html
打造一台Quake专用PC:VQuake
---
Rendition Verite 1000是*Quake*传说中的存在。它是id旗下首款通过专用二进制文件`vquake.exe`支持硬件加速的显卡,也是臭名昭著的*Red Annihilation*锦标赛16强决赛中使用的显卡——在那场比赛中,*Thresh*赢得了[\[1\]](https://fabiensanglard.net/quake_pc/vquake/index.html#footnote_1)John Carmack的1987款法拉利328 GTS敞篷车。
1997年,杂志上对vquake和这些3D加速器的热情扑面而来。
> 有了3D Blaster,Quake几乎成了一款截然不同的游戏。在P166上,分辨率设为640x480并开启双线性过滤和完整MIP映射时,性能比标准Quake提升了约50%。图像质量,简单来说,就是卓越。— Computer Gaming World #149[\[2\]](https://fabiensanglard.net/quake_pc/vquake/index.html#footnote_2)
四家厂商——Creative、Intergraph、Sierra和Canopus——拿下了v1000。Sierra的*Screamin’ 3D*获得了不错的评价[\[3\]](https://fabiensanglard.net/quake_pc/vquake/index.html#footnote_3)。这块卡就是我在eBay上找到的那块。它价格不菲,但能拥有这样一件标志性的技术产品,我倍感欣慰。
[](https://fabiensanglard.net/quake_pc/vquake/v1000.webp)v1000图形管线通过高速3D微码进行编程。为此,`vquake.exe`附带了一个`SPD3D.UC`文件。如果直接将Quake升级到最新版本的vquake,会报错"SPD3D.UC file not found or not compatible"。这个文件仅包含在vquake的首个版本中。
双线性纹理过滤,又称Lerp
---
当时被认为很酷的东西之一是双线性过滤。它能"隐藏"像素,当年人人都喜欢这种效果。三十年后,像素又再次流行起来。
[](https://fabiensanglard.net/quake_pc/vquake/d_lerp1.png)奇怪的是,**l**inear int**erp**olation的缩写成了"lerp"。本文中我也使用了这个术语。
VQuake截图使用BMP格式而非PCX。这很合理,因为渲染器使用的是16位色,而非调色板索引色。
VQuake确实改变了游戏格局
---
Vquake一启动,就能明显看出它比软件渲染版本改进巨大。帧率更高,分辨率也更高。尽管视觉能力强劲,但该移植版在光照和色彩方面非常忠实于原版。游戏黑暗程度与原版设计一致。
[](https://fabiensanglard.net/quake_pc/vquake/QUAKE06.png)[](https://fabiensanglard.net/quake_pc/vquake/QUAKE12.png)[](https://fabiensanglard.net/quake_pc/vquake/QUAKE35.png)Vquake的双线性过滤具有一种"标志性"外观,带有一种奇特且容易识别的抖动模式。
[](https://fabiensanglard.net/quake_pc/vquake/quake49.png)Quake的软件渲染器支持一种称为"full_bright"的效果,允许纹理在黑暗中发光。这一效果在E1M1的楼梯上得到了展示,让玩家保持警惕。后来的glQuake未能复现这一效果,但Vquake完美做到了。
[](https://fabiensanglard.net/quake_pc/vquake/vquake_fullbright.png)DOS下的2D性能
---
在测试其硬件加速功能之前,我花时间用`quake.exe`软件渲染器对*Screamin'3D*进行了基准测试。我使用了Pentium MMX 233MHz,在DOS下运行,视口大小设为101,并启用了音效。结果很糟糕,只有26.2 fps。这只有Matrox Mystique(48 fps)所达帧率的一半!真是糟糕的VGA卡!
性能
---
采用Rendition Verite的vquake与在Matrox Mystique上运行Quake相比如何?
P51 MMX 233MHz 320x200 320x240 384x288 400x300 512x384 640x400 640x480 720x480 768x576
Matrox Mystique 48.0 45.5 18.5 15.7
Rendition Verite 52.8 48.9 44.0 40.6 30.6 27.1 23.6 18.1 14.0
虽然在低分辨率下改进不大,但v1000在高分辨率下表现出色,即便是MMX 233MHz也无法跟上。
将CPU降频至133MHz后发现,Vquake对CPU频率并不敏感。实际帧率与同一处理器在233MHz下运行时非常接近。
P51 MMX 133MHz 320x200 320x240 384x288 400x300 512x384 640x400 640x480 720x480 768x576
Matrox Mystique 37.9 33.0 15.3 13.1
Rendition Verite 46.4 43.6 40.4 37.4 29.6 26.5 23.3 18.0 14.0
性能:DOS vs Windows
---
接下来,我想测量DOS和Windows下的性能,看看v1000是否像软件渲染器那样遭受同样的惩罚。
320x200 320x240 384x288 400x300 512x384 640x400 640x480 720x480 768x576
DOS 52.8 48.9 44.0 40.6 30.6 27.1 23.6 18.1 14.0
Windows 47.6 44.7 41.6 38.5 29.9 26.7 23.4 18.0 14.0
与`quake.exe`一样,`vquake.exe`从Windows 9X启动时确实会受到明显的性能惩罚。但这仅在低分辨率下成立。随着分辨率提高,差距几乎消失。
纹理过滤
---
在所有vquake的cvar[\[4\]](https://fabiensanglard.net/quake_pc/vquake/index.html#footnote_4)中,最有趣的是`d_bilerp`。它可以禁用双线性过滤,让像素重新显现。
320x200 320x240 384x288 400x300 512x384 640x400 640x480 720x480 768x576
d_bilerp=1 52.8 48.9 44.0 40.6 30.6 27.1 23.6 18.1 14.0
d_bilerp=0 53.2 49.8 48.5 42.2 32.6 33.4 25.6 21.3 16.3
不使用双线性过滤时,高分辨率下的帧率显著提升。这是因为v1000没有专门的总线/交错来处理额外的采样需求。这与3dfx显卡大相径庭,在那些卡上GL_LINEAR与GL_NEAR性能相同。
尽管我更喜欢清晰的像素,但这并不是当时玩家使用的效果。为了收集具有历史意义的指标,我是在启用双线性过滤(d_bilerp=1)的情况下运行基准测试的。
最新BIOS(phx2105.com)
---
Rendition发布了一个TSR文件phx2105.com (https://fabiensanglard.net/quake_pc/vquake/phx2105.com),用于更新芯片的BIOS。在DOS提示符下加载它看起来非常酷。
[](https://fabiensanglard.net/quake_pc/vquake/v1000_bios.png)新BIOS增加了两种新分辨率(720x400和856x480),但帧率几乎没有提升。
320x200 320x240 384x288 400x300 512x384 640x400 640x480 720x400 720x480 768x576 856x480
52.8 48.9 44.0 40.6 30.6 27.1 23.6 18.1 14.0
53.1 48.8 44.0 39.4 30.6 27.1 23.5 22.0 18.1 14.0 16.0
CPU频率的影响
---
我将"频率影响"基准测试进一步延伸,在MMX CPU上测试了各种时钟频率。
320x200 320x240 384x288 400x300 512x384 640x400 640x480 720x400 720x480 768x576 856x480
53.1 48.8 44.0 39.4 30.6 27.1 23.5 22.0 18.1 14.0 16.0
51.4 47.9 43.4 39.1 30.5 27.1 23.5 21.9 18.1 14.0 16.0
49.3 46.1 42.5 38.5 30.2 26.9 23.4 21.9 18.1 14.1 16.0
46.4 43.6 40.4 37.4 29.6 26.5 23.3 21.8 18.0 14.0 16.0
[](https://fabiensanglard.net/quake_pc/vquake/freqs.svg)这证实了最初的发现:一旦分辨率达到512x384,CPU速度就不再影响帧率。
AMD K5
---
我用Vquake测试的最后一件事是,v1000能在多大程度上拯救K5和Cyrix 6x86。不幸的是,由于v1000的使用方式,大量工作仍然由CPU完成。这似乎严重限制了Rendition Verite在K5/6x86上飞驰的能力。
我在相同条件下运行了测试:视口大小101,启用音效,从DOS启动。K5在320x200下运行速度为30.6 fps,512x384下为21.2 fps,640x480下为15.4 fps。这不是一个好的组合(正如1996年的usenet讨论[\[5\]](https://fabiensanglard.net/quake_pc/vquake/index.html#footnote_5)所证实的那样)。
下一步
---
对GLQuake (https://fabiensanglard.net/quake_pc/glquake/) 进行基准测试。
参考文献
---
^ (https://fabiensanglard.net/quake_pc/vquake/index.html#back_1)[1]Red Annihilation (https://en.wikipedia.org/wiki/Red_Annihilation)
^ (https://fabiensanglard.net/quake_pc/vquake/index.html#back_2)[2]Computer Gaming World #149 (https://archive.org/details/Computer_Gaming_World_Issue_149/page/n269/mode/2up?q=vquake)
^ (https://fabiensanglard.net/quake_pc/vquake/index.html#back_3)[3]NEXT_Generation #26: Rendition Verite评测 (https://archive.org/details/NEXT_Generation_26/page/n65/mode/2up?q=vquake)
^ (https://fabiensanglard.net/quake_pc/vquake/index.html#back_4)[4]vquake cvars列表 (https://www.vogonswiki.com/index.php/VQuake)
^ (https://fabiensanglard.net/quake_pc/vquake/index.html#back_5)[5]AMD K5-133 FP性能 (https://groups.google.com/g/rec.games.computer.quake.misc/c/EBB6eJBEjY8#:~:text=RESOLUTION%20VQUAKE%2C%20Beta9,640X480%2020.8%209.9)
---
相似文章
打造一台1997年的Quake PC:对GLquake进行基准测试
一位开发者讲述了他组装一台配备3dfx Voodoo显卡的复古PC,并对GLQuake进行基准测试的过程,同时讨论了硬件的小问题和性能印象。
打造一台1997年雷神之锤PC:雷神之锤基准测试
针对各种1990年代CPU和配置下雷神之锤性能的详细技术分析,比较英特尔、Cyrix、AMD芯片以及DOS和Windows 95下的内存类型。
打造一台1997年的Quake PC!
作者记录了打造一台1997-1998年古董PC的过程,用于运行所有版本的Quake,涵盖了硬件选择,如Pentium MMX、3dfx Voodoo2和Socket 7主板。
像1997年那样编译Quake!
一份详细的指南,介绍如何重现使用Windows NT 4和Visual C++ 6等老式工具编译Quake的win32二进制文件的过程(就像1997年所做的那样)。
WinQuake 存在的原因及其工作原理
深入探讨创建 WinQuake(Quake 的 Windows 原生版本)的历史原因,以及它如何在 Windows 95 和 NT 上实现接近 DOS 版本的性能。