/ G% Y" Q, e- `7 b! G: } x% ~其他主要的变化是,IDirect3D8 仅负责创建IDirect3DDevice8,而其他interface都由IDirect3DDevice8来创建。首次加入了IDirect3DIndexBuffer8,并加回了texture和surface等一些interface。(Texture interface在DX7例被DDrawSurface所替代)。, ]0 O& o V$ a: D9 w1 \
k# }% Q3 y1 Z' F6 R/ y V. \, a
DX8这样一个API就很令人赏心悦目了,相信如果Carmack拿这个版本和OpenGL比较,绝对会客气很多。 7 K1 Z [# J2 k( \ u" x4 f- y: M0 ?3 b& `$ H% }; V
2001年夏,Microsoft推出了DX8.1,较之于8.0主要的改进是增加了PixelShader 1.2/1.3/1.4。4 R8 F/ }6 j$ b9 I3 t/ Y; B
, I: U8 U" i s9 u- ~
, V3 F% ~' ~7 A ; P' n \! q* e" u1 K7 `, p( E以前总是每年出一个全新的版本,到DX8以后,这个速度开始减缓,通常是出一个新版本以后的一两年中只出改进版。DX9亦是如此。主要的原因是自DX7以后,每一个DX版本(major release)实际对应于一代新的硬件设备,硬件的更新周期要长于软件,所以DX要放慢脚步,另外,游戏开发的复杂程度也越来越高,开发周期也越来越长,而开发商不是很喜欢在开发过程中更新API。 w; F. C9 k, h/ B& L * K- X' f8 J% n1 e9 R. g0 s3 Z - S/ n/ q) f8 l- g w6 \( T7 I7 e) {) B
DX8发布至今,无数3D游戏涌现,其中绝大多数是基于D3D的,基于OpenGL的屈指可数,DOOM3 / Never Winter Night / Medal of Honor。。。API之争胜负已判,Microsoft又一次笑到了最后。7 ~! L2 I5 g* ]
! _9 z6 b3 G/ ~8 ^$ Q% \7 R$ }* C& G+ W
: k0 R9 I6 u% I# Z7 s; O 0 S8 F) @, R, b- m, A; r: i+ k5 O9 O1 X2 x2 O
9.05 s. C% o4 j3 }$ ?' [
; y6 Z+ I, z) H" z' _6 ^( C, S
2002夏季,DX9发布。D3D9的主要进步是提出了Shader Model2/Model3, 相对于D3D8里的Shader1,2和3有更丰富的指令集和寄存器,逻辑结构也更趋于合理。其他增加的功能有IDirect3DQuery9用来采集性能测试的数据,Pixel级别的ScissorTest。 8 P$ x9 K! r& w$ D* e% L+ b. H0 d6 g: w" X- r0 U# S! }; l8 ~+ E5 n
2003年,DX90b,和2004年DX90c在DX90的基础上完善了一些功能。并提供了更好的支持工具,如ShaderDebugger, d3dspy, PIX。 : U+ J8 s8 Q% }2 ^9 Q- i+ a8 [* f( f; Q* S! S. N
9.0并不是历史,而是活生生的现在,所以我也不多说什么了。如果你对3D Programming感兴趣的话,你可以到Mircosoft的站点上去免费下载DXSDK9.0C,SDK里包含了完整的文档和入门教程。看看你能做些什么。7 S D6 k* }2 d' p# h4 q0 g
* {4 D+ H' V2 A, }. X: I# a下载地址如下: 3 l: R) \9 k. M" B + X& Q- u. @0 k! q4 u- ?http://www.microsoft.com/downloads/...&DisplayLang=en 3 |' V. u2 O( a. j Q3 ~1 B v- v! a- L" a/ p
最后感谢maozy99和sguy对完成此文所提供的帮助。% M" s# q) t$ ]+ Z2 T: M) [6 V* g
) n% D' c8 D0 o" \4 U+ b- r7 Y" N
(完)作者: 灰色小狼 时间: 2009-5-30 22:11
可怜的OpenGL…… [s:6]