首页 游戏教程 正文

directx9是什么为什么现在还在用?了解它的不可替代性

那天我窝在电脑前边喝咖啡,边刷项目需求,突然老板发消息说:“有个老游戏移植新平台的活儿,你弄不弄?”我立马回复“搞”,结果他就甩来个任务:搞清DirectX9是啥玩意儿,为啥到现在还有人揪着不放。我心里嘀咕,这破玩意儿不是早该淘汰了吗?可活儿得来真干。

我的实践开头

我先从最基础的查起,上网搜DirectX9啥意思。结果一查,懵圈了:原来DirectX是微软搞的一套画图工具包,DirectX9是2002年的老古董版本,专门给游戏开发啥的使唤。好家伙,比我现在用的Win11还老!可老板说客户是老客户,非要用它做兼容测试。我寻思着,那就别墨迹了,直接下载装上试试。

directx9是什么为什么现在还在用?了解它的不可替代性

我扒拉微软官网,找到DirectX SDK的包,点下载安装。结果刚弄完,打开IDE配环境,立马出bug:编译报错,说啥“找不到入口点”。我操,这玩意儿跟我新机器不搭嘎。没法子,我翻出抽屉里吃灰的老联想笔记本,装的还是Win7,插上插头充电开机。然后一步步照着教程,硬是把SDK安上了——这下总算顺畅了。

折腾着学操作

我开始实操写代码。IDE打开,新建个项目,输入几行基本代码,想画个3D方块试试水。可弄半天,屏幕就一片黑,方块影子都瞅不见。我挠头烦躁,这跟新DirectX版本差太远了,比如我平时用的DirectX12,点点鼠标拖拽几下就成事儿。可这儿得手写vertex buffer、pipeline设置,啰嗦得像老爷爷讲故事。

directx9是什么为什么现在还在用?了解它的不可替代性

  • 第一步:吭哧吭哧创建device对象,搞了半天还得手动设显卡模式。
  • 第二步:加贴图时,发现老教程用的啥bmp格式,新工具早换成png了,我只好翻出Gimp工具转图,折腾到凌晨。
  • 第三步:渲染时,老本本风扇嗡嗡响,画面还丢帧,我一看GPU占用不到10%,心想这货也太省资源了。

弄完这些,方块真出来了!虽然粗糙得像幼儿园涂鸦,但我一拍大腿:,原来DirectX9真能画东西。可问题来了,为啥不换新的?我开始往深了挖。

为啥这老家伙还没退休

我接着搞兼容测试。把代码打包成exe,插U盘里,跑同事的破电脑上试——那机子还是XP系统,锈迹斑斑都快报废了。点开程序,妈呀,居然瞬间加载运行,3D方块晃悠得稳稳的。我试装新DirectX12版本,压根安不上:系统提示“版本过高,不兼容”。好家伙,新工具连门都不给开。

这下真开窍了:这DirectX9的核心优势,就是啥破设备都凑合能用。我数了数原因:一堆工控机、老游戏机,硬件太拉垮,新版本跑不动;还有嵌入式设备,比如我去年碰到的电梯控制系统,厂家死守着WinCE系统,只能靠它驱动显示。再者,代码简单得要命,写一次管十年,省电省钱,老板乐呵呵不换新。

可到这儿还没完。我做压力测试时,新游戏Demo用DirectX12写,效果花哨但老机器卡成幻灯片;换上DirectX9版本,流畅得跟流水线似的。我算整明白了:不是它牛,而是它够土,够老土就能稳住场面。就跟家里旧沙发一样,扔了可惜,坐着踏实。

弄明白不可替代性

折腾一周,项目交了差,客户满意说省钱还靠谱。但我自个儿琢磨,这DirectX9真不是啥高科技玩意儿了,就是个补丁级工具。新开发谁爱碰它?微软自己都推DirectX12了,功能炫酷吊炸天。可现实打脸:为啥还死扛着用?就因为太多老伙计离了它活不了。全球那么多工控系统、游戏机柜,换一套新工具链花得掉一层皮。去年我帮忙整学校机房,四十台旧电脑全用的DirectX9程序升级,校长说省了几万块钱预算——要是硬上新版本,得换整批设备,那叫一个烧钱。

事后我跟朋友吹牛吐槽,笑说技术圈就是这德行:老的赖着不走,新的光鲜但矫情。就跟去年我老婆公司裁员,她被迫用老式ERP系统一样,功能稀烂但稳得一批。现在她每次抱怨,我都拍拍她:“那跟DirectX9一个尿性!”搞技术,更新换代不是万能药,有时老玩意才是成本刺客。

本文转载自互联网,如有侵权,联系删除

相关推荐