很难想象,如果没有微软在2000年带来的这场静默却革命性的变革,今天的游戏会是什么模样。二十五年前的今天,这家公司推出了DirectX 8。这场发布没有盛大宣传,没有定义时代的技术演示,但它带来了一项重大突破——可编程着色器——这将永远改变GPU渲染图形的方式。

Cover Image

DirectX 8之前,显卡工作在固定功能流水线上,意味着几乎所有功能都是预定义的,固化在芯片本身。光照方程、纹理混合、坐标变换——一切都受制于GPU的固有支持。例如,由于GPU本身无法动态计算实时反射,开发者只能使用环境贴图作为替代方案。你被硬件逻辑所束缚,而这种逻辑并不灵活。

这就像调整控制台上的旋钮:你可以微调参数,但若想改变旋钮本身的结构呢?这时,DirectX 8应运而生。

DirectX 8的可编程着色器

微软在DirectX中引入了着色器模型1.0,其中包含允许开发者操纵每个顶点的顶点着色器1.0,以及控制每个像素最终颜色的像素着色器1.0。此前这些功能都不可触及,而DirectX 8将控制权交给了游戏制作者,使他们能够编写代码以特定方式编程GPU进行渲染。

开发者首次能够定义光照背后的数学原理,控制材质行为、高光反射、(基础)曲面细分等等。这不再只是接受GPU默认提供的功能,而是彻底释放了GPU的全部潜力。它使芯片从封闭的机器转变为真正的可编程处理器,名副其实。

依托DirectX 8带来的可能性,《半条命2》等游戏以当时突破性的画面表现横空出世。这些游戏建立在创作者自主权理念之上,让开发者(尽管当时程度有限)能够构建实时阴影、折射与水波着色器、后期处理效果等丰富特性。这一切都源于他们现在可以编写自定义代码,指示GPU如何进行计算。

由创作者决定光线如何与每个物体交互——这在当今标准下可能显得原始。即便在2025年,出于效率考虑,全局光照等部分效果仍是预计算的,而其他效果则实时运行。正是着色器决定了两者如何交互,将它们无缝融合以呈现“更出色的画面”。

DirectX 8发布时恰逢英伟达GeForce 3问世,后者增加了着色器执行单元等硬件模块来运行DX8的着色器模型。在我们二十多年前对GPU的原始报道中,我们将像素着色器和顶点着色器的引入列为两项最重要的改进,承载着无限可能——事后看来比以往任何时候都更加真实。

一年后,ATI(现AMD)通过更强大的DX9级别硬件迎头赶上,构建在DX8的遗产之上。甚至初代Xbox当时也搭载了支持DirectX 8的GPU,开发者社区对真正的逐像素照明技术充满热情。《晨风》和《细胞分裂》等游戏成为该技术的早期采用者,随后虚幻引擎2使其得到普及。

总而言之,DirectX 8并非一次爆炸性更新,但它彻底改变了现代渲染的工作方式。我们当前使用的每一台设备——从手机到游戏主机再到计算机——若未采用DX8的控制基本原理,都无法以现有方式运作。让软件制作者按需编程硬件的理念,催生了当今我们视为常态的后续图形技术突破。


文章标签: #DirectX #可编程着色器 #图形渲染 #GPU革命 #微软创新

负责编辑

  菠萝老师先生 

  让你的每一个瞬间都充满意义地生活,因为在生命的尽头,衡量的不是你活了多少年,而是你如何度过这些年。