|
When DirectX 10 rocks your PC with the release of Windows Vista early next year, it will come courtesy of a trio of forces: The graphics card companies obviously play a huge role, as do the game developers, but DirectX is Microsoft's baby. Ultimately it is up to Microsoft engineers to work together with IHVs (the independent hardware vendors that build the graphics cards) and game developers (aka ISVs—independent software vendors) to define the API.
We managed to sneak some time into the busy schedules of two key Microsofties to find out what makes DX10 tick, and why they think you're going to want to migrate to a DX10-capable computer for the best experience the PC has to offer. Chris Donahue is the Director of Business Development in the Games for Windows Entertainment and Devices Division, while David Blythe is a Software Architect with the Graphics Platforms Unit.
Read on as we pick the brains of these two important people behind the next big graphics API.
当DX10出现使你的PC机早在明年升级到Windows Vista,它将会带来三种友好的力量:显卡公司为游戏的开放演绎着重要的作用,但是DirectX是微软的小孩.它最终使微软工程师和显卡制造商以及软件开发商共同制定API.
一段时间里,我们在最繁忙的日程里想的是利用微软式的方法找出什么使DX10工作,和为什么他们想以你的经验将要想升级电脑到DX10的一个是为了获得电脑的最佳性能. Chris Donahue 是游戏在Windows环境和不同设备的商业发展的指导,和David Blythe是图形平台单元的软件设计.
读我们搜集到的两个关于下一代伟大的图形API的两个聪明人
The Big Picture of DX10
ExtremeTech: Maybe each of you could quickly go over what your role is in the development and implementation of DirectX 10.
David Blythe: My job is basically to spend a lot of time talking to game developers and to hardware developers and to talk about what problems we're trying to solve and what's practical to do in hardware, and then hammer out an architecture or design that encompasses as many of those things as we can in a coherent way. Then it turns into a much more detailed discussion about every little itty-bitty detail and writing specifications and then working with Microsoft's development team that builds the run-time that interfaces with the driver the IHVs write. And working with our SDK team to build samples and demos that show off how to use the system.
Chris Donahue: David mentioned working with the IHVs and ISVs…there's a graphics advisory board that's made up of the big graphics brains around the industry. David and a lot of the guys on the DirectX team and the Graphics Platform Unit group spend time talking to, to find out, you know, five years from now, where are things going to be? And that stuff they take and turn into actual API code and ends up not only in the API but also in hardware. It's a really collaborate effort between Microsoft, the ISVs that actually consume the API and make applications, and the hardware guys.
伟大的DX10图形API
ExtremeTech: 也许你可以尽快的看到你想要的在开发中的和已经完成的在DirectX 10中.
David Blythe:我的工作从根本上是花很多时间和游戏开发者以及硬件开发者讨论关于我们需要解决什么样的问题,在硬件上需要做什么,和弄好一些想法和设计可以像一些统一的东西一样以一种共同的方式表现.那样就进入细节甚至是更多细节从而写好计划书,就和微软的开发小组一起为硬件独立开发商的驱动开发建立编写驱动的运行时接口.与我们的SDK(软件开发包)小组做出样品和Demo用来展示在系统上如何使用.
Chris Donahue:David提到和硬件独立开发商和软件独立开发商一起工作......这里有一个图形顾问的委员会是由全部的成员围绕工业组建的.David和许多DirectX队伍的家伙以及图形平台单元的组装花了许多时间讨论,找出,你指导,5年后哪些东西会实现?使许多这些东西变成实际在于API,最终不仅是API还有硬件.这确实是和微软之间共同努力合作,软件独立开发商实际上用尽API和进行应用以及在那些硬件家伙上.
ExtremeTech: DirectX is of course more than just graphics. There's DirectSound, DirectInput, and so on. Will DirectX 10 change any of those things to a significant degree?
Donahue: Not to DirectSound or DirectInput really. We actually have done a few things. If you look at some of the recent things we've talked about, for example the common controller. The Xbox 360 controller and all the peripherals work on Windows. To enable that, we've taken XInput, which is the API they use for Xbox, and converted that, or modded that to make it work on Windows. So now XInput is actually the preferred API if you wanted to take advantage of all the controls and components involved in the peripherals. As far as DSound, yeah, we're updating it to keep it sort of on track, but it's not continuing to invest in. There's other audio components and low-level and high-level stuff that's in the works, but it's not anything that we have an announcement about.
ExtremeTech:DirectX不仅仅是图形.有DirectXSound,DirectInput,等等.DirextX 10将会在做出变化的那些方面会出现相当大程度的改变吗?
Donahue:真不是DirectSound和DirectInput.我们实际上做了一点事情.如果注意到最近一些事情是我们提到的,举个例子一般的控制器.Xbox 360的控制器和所有产品在Windows上工作.开启我们用XInput,哪些API是用于Xbox的,和进行转换,最终使它运行在Windows操作系统上.因此如果你想利用所有的控制器和复杂的组件等周边产品,现在XInput是实际上更依赖API.根据DSound,我们随时更新它进入一种正轨.可并不是积雪的投入,这些音频设备以及低级的和高级的东西在工作,但是不是一些我们已经宣布的东西.
ExtremeTech: What are the big bullet points—the main, big changes in DirectX 10 graphics over what we have in DX9?
Blythe: That's actually a fairly complicated question in the sense that there's a lot that has changed. I want to be careful not to point out anything as, "oh, this is the defining feature." Some aspects of it are to do with the implementation that, one of the key things that we were trying to solve with DirectX 10 was to make it more efficient. And so there's some structural things in the way the API works where what we tried to improve is what people have commonly referred to as the "small batch problem." So that applications can send a lot more material changes or changes to the description of geometry a lot more frequently. But that doesn't show up at any "bullet point" feature in the API, like "oh turn on this switch and you get better performance." It sort of underpins the design.
And then there's a lot of things about feature consistency in hardware implementations that allow developers to have an easier job of targeting a wider variety of platforms. That doesn't show up as any single feature, but it's a big deal to get agreement on what this common set of features is and it will be available everywhere.
Then when you start getting into individual features, things like adding an integer instruction set, the new geometry shader is a fairly big deal. In terms of adding that in the middle of the pipeline and having access to all the parameters of a primitive—for example the three vertices of a triangle or the two endpoints of a line—and being able to operate on that as a whole, sort of changes the game. There are things that we've done where, part of the objective was to make it possible to do more processing on the GPU and to do this in a way where there wasn't a lot of mediation that needed to be done on the CPU. So you can do iterative types of computations on the GPU without having to sort of return data to the CPU, do a little bit more work there, and then return the data to the GPU. The way data formats work and can be moved back and forth between different parts of the pipeline show up as being important features for enabling this, but they're not…
The evolution of DirectX shader models, through DX10's SM 4.0.
(DirextX Shader Model的进化,到DX10的SM4.0)
ExtremeTech: 什么是最重要的点,主要的,DirectX10图形相对与DX9发生的重大变化
Blythe:那实际上是一个相当复杂的问题,因为有很多已经改变.我需要小心,不能什么都指出,"噢,这是特色".它某些方面的执行是非常重要的事情,我们都尝试去解决DirectX 10使它更有效率.因此有一些事情的方法是结构性的API,我们试着提高的就像人们通常所说的"小批问题".因此实际应用能传递更多的物体形变和更频繁的物体的外观变化.但是从没有出现任何"点句"特点的API,像"噢,打开这个开关你就得到更好的性能"需要对这些设计加强进行整理.
然后这里有许多东西关于与硬件执行特点的一致,让开发者在各种不同平台上的工作更简单.但是在这一共同点上达成协议,它就会用在所有地方.
当你开始进入这些特色时,这些像加了整数命令,新几何着色器是一个公平的协议.在管线中的加法运算获得了所有的原始参数-举例子一个三角形的三个顶点或者一条或两条线-和能够整个操作他们,这种改变了游戏,有些事情我们都在做,部分目的是为了确保更多的进程在GPU上完成,这样做是许多的没法解决的问题需要在CPU上解决.所以你可以重复在GPU上计算不需要一定向CPU返回值.多做一点运算,就有数值返回至GPU.这种数据格式以及工作方式可以在不同管线中来回移动,显示出重要的特点给予它们,但是它们不是.
ExtremeTech: You don't look at a screenshot and say "Wow, look at the interative instructions in that screenshot."
Blythe: Right. And so other things we've done, like the geometry shader we've added, you can stream the output of that to memory, and then turn around and use that chunk of memory as a vertex buffer. It enables something like being able to implement particle systems a lot more easily than it had been to do on a system like D3D9.
ExtremeTech:你不看着屏幕截图说"哇, 看那些重复的指令在屏幕截图中"
Blythe:是的.其它东西我们做了,像我们加入的几何着色器,你可以流的形式输出至存储器,再回头用这个记忆块作为顶点缓冲.它使得像粒子特效系统相对于以前的D3D9系统变得更加的简单.
俺E文不好,学术尚潜,所以翻译的肯定翻译的有问题,还请见谅..
:sweatingbullets:CHO不要删了俺 |
|