Những phiên bản DirectX - phần cuối

Trong phần trên chúng tôi đã liệt kê tất cả những phiên bản DirectX đã được có mặt trên thị trường nhưng chưa giải thích sự khác nhau giữa chúng . Ví dụ DirectX 7 đã làm gì để tốt hơn DirectX 6 ?
Những sự khác nhau chính

 Trong phần trên chúng tôi đã liệt kê tất cả những phiên bản DirectX đã được có mặt trên thị trường nhưng chưa giải thích sự khác nhau giữa chúng . Ví dụ DirectX 7 đã làm gì để tốt hơn DirectX 6 ?

Nói chung phiên bản mới được tung ra để cho phép hệ thống nhận biết được hầu hết những đặc điểm mới của những Chip đồ hoạ , do đó nó có thể dùng những đặc điểm này trong trường hợp Card màn hình của bạn có để tăng hiệu suất 3D và tăng chất lượng hình ảnh .

DirectX 6 mang lại sự đổi mới chính trong “Bump Mapping” . Với những đổi mới này cho phép tạo ra những hình ảnh bề mặt của những vật thể 3D một cách dễ dàng khiến cho chúng trông giống thật hơn . Các bạn có thể tham khảo về những thuật ngữ 3D trong mục Tri thức trong trang Web của chúng tôi .

Kể từ GeForce256 , những Chip đồ hoạ bắt đầu tạo ra những bộ phận riêng bên trong có nhiệm vụ tính toán và tạo ra những vật thể 3D , nhiệm vụ này trước kia hầu hết do CPU đảm nhiệm . Những bộ phận này có nhiệm vụ tính toán sự biến đổi và thể hiện tính toán những vấn đề liên quan tới ánh sáng , hay còn gọi là T&L .

DirectX 7 được tung ra để nhận biết đặc điểm này và để chuyển giao những nhiệm vụ tính toán T&L trước kia cho CPU sang Chip đồ hoạ . Những Chip đồ hoạ DirectX 7 bao gồm GeForce 2, GeForce 4 MX, GeForce MX, GeForce PCX 4300, Radeon 7000, Radeon 7200, và dòng Radeon 7500 .

DirectX 8 có hai đặc điểm hoàn toàn mới và bây giờ cũng vẫn còn rất nổi tiếng , nó làm cho những hình ảnh 3D trở nên trông giống thật hơn bằng tính toán kiểu Pixel Shader và Vertex Shader .

Những vật thể 3D được tạo ra bằng việc sử dụng hàng trăm hoặc thậm trí hàng nghìn hình đa giác như những hình tam giác và những hình vuông . Phủ lên những hình đa giác này bằng những bề mặt hoặc những màu sắc sẽ tạo ra những vật thể 3D .

Bằng Vertex Shader chương trình 3D có khả năng thay đổi được những bộ phận cấu thành của mỗi đỉnh ( vertex ) của mỗi đa giác trong vật thể .

Bằng Pixel Shader chương trình có khả năng thay đổi những đặc điểm cấu thành của mỗi điểm ( pixel ) của mỗi đa giác .

Trước kia khi không sử dụng tính toán theo Pixel Shader và Vertex Shader thì sự thay đổi từng phần trên mỗi vật thể là hoàn toàn không thể , nói một cách khác là chỉ có thể thay đổi những đặc điểm cho toàn bộ hình đa giác cấu thành nên vật thể 3D và những hiệu ứng trên bề mặt này là đồng nhất . Bằng việc sử dụng tính toán theo kiểu Pixel Shader và Vertex Shader khiến cho những hình ảnh ngày càng trở nên trung thực hơn với đời sống hàng ngày và mỗi điểm trên mỗi đa giác đều có khả năng lập trình được .

DirectX 8.0 cho phép Pixel Shader được lập trình tới 12 lệnh cùng một lúc . Điều hạn chế này cho thấy chưa đáp ứng được nhu cầu nên phiên bản DirectX 8.1 đã ra đời cho phép thực hiện 22 lệnh cùng một lúc . Những Chip đồ hoạ dựa Model này bao gồm GeForce 3, GeForce 4 Ti, Radeon 8500, Radeon 9000, Radeon 9100, Radeon 9200 và Radeon 9250.

Để nâng cao hiệu suất và tăng cường chất lượng của những vật thể 3D , DirectX 9.0 đã được tung ra hỗ trợ Shader 2.0 , Pixel Shader có thể thực hiện tới 96 lệnh cùng một lúc . Một vài Chip đồ hoạ dùng cho Model này từ dòng GeForce FX và từ Radeon 9500 , 9600 , 9700 và dòng 9800 .

Shader 3.0 đã được giới thiệu với DirectX 9.0c và cho phép sử dụng tới 65.535 lệnh tại cùng một thời điểm . Những Chip đồ hoạ được dựa trên Model này bao gồm dòng GeForce 6 ( như GeForce 6600, 6800, …) và  7 ( như GeForce 7600, 7800, …) và dòng Radeon X1000 ( như Radeon X1600, X1900, …) .

DirectX 10 hỗ trợ Shader 4.0 . Shader Model 4.0 mang lại sự thay đổi quan trọng trong cấu trúc của những Chip đồ hoạ . Những Chip đồ hoạ dựa vào cho tới DirectX 9.0c , những Chip này đều có những Bộ phận xử lí riêng biệt đó là  : Pixel Shader và Vertex Shader .

Trong một số trường hợp tất cả những Bộ phận xử lí Pixel Shader đều đã được sử dụng , trong khi đó có những Bộ phận xử lí Vertex Shader lại đang nghỉ và những lệnh xử lí Pixel Shader mới lại phải chờ . Hoặc sẽ có trường hợp ngược lại là bộ phận xử lí Vertex Shader đều đang thực hiện lệnh trong khi đó lại có những Bộ phận xử lí Pixel Shader lại đang trong trạng thái nghỉ thì khi đó những lệnh xử lí Vertex Shader phải chờ .

Những Chip đồ hoạ dựa trên DirectX 10 thì những Bộ phận xử lí thực hiện chung xử lí cả Pixel Shader và Vertex Shader . Như vậy những lệnh xử lí chỉ chờ khi mà tất cả SP ( Stream Processor ) bận mà thôi mà không liên quan gì tới kiểu xử lí như trước kia . Cấu trúc bộ vi xử lí đồ hoạ như vậy được gọi là Cấu trúc Shader hợp nhất ( Unified Shader Architecture ) .

DirectX 10 cũng giới thiệu kiểu Shader , hình học mới , và những đặc điểm khác để chuyển những xử lí từ CPU trước kia sang GPU .

Những Chip đồ hoạ dựa trên cấu trúc này bao gồm GeForce 8 ( GeForce 8600 , 8800 … ) , 9 ( GeForce 9600 , 9800 … ) và GT200 ( GeForce GTX 260 , 280 ) , Radeon HD 2000 trở lên .

Bảng dưới cho thấy sự khác nhau chính giữa DirectX 9 và DirectX 10

Resources

DirectX 9

DirectX 10

Temporary Registers

32

4,096

Constant Registers

256

16 x 4,096

Textures

16

128

Render Targets

4

8

Maximum Texture Size

4,048 x 4,048

8,096 x 8,096

Bảng bên dưới so sánh sự khác nhau giữa Shader Model 1.0 (DirectX 8.1), 2.0 (DirectX 9.0), 3.0 (DirectX 9.0c) and 4.0 (DirectX 10).

 

Shader 1.x

Shader 2.0

Shader 3.0

Shader 4.0

Vertex Instructions

128

256

512

65,536 *

Pixel Instructions

4+8

32+64

512

65,536 *

Vertex Constants

96

256

256

16 x 4,096 *

Pixel Constants 

8

32

224

16 x 4,096 *

Vertex Temps

16

16

16

4,096 *

Pixel Temps

2

12

32

4,096 *

Vertex Inputs

16

16

16

16

Pixel Inputs

4+2

8+2

10

32

Render Targets

1

4

4

8

Vertex Textures

-

-

4

128 *

Pixel Textures

8

16

16

128 *

2D Texture Size

-

-

2,048 x 2,048

8,192 x 8,192

Int Ops

-

-

-

Yes

Load Ops

-

-

-

Yes

Derivatives

-

-

Yes

Yes

Vertex Flow Control

-

Static

Static/Dynamic

Dynamic *

Pixel Flow Control

-

-

Static/Dynamic

Dynamic *

 

*  Vì DirectX 10 dựa vào cấu trúc Shader hợp nhất nên số này phụ thuộc và vào số lượng Shader có trong cấu trúc hợp nhất này mà không phải là tính năng riêng biệt của DX10 .

DirectX 10.1 có những sự cải tiến nhỏ . Hiện tại chỉ có những Card màn hình từ Radeon HD 3000 ( Radeon HD 3450 , 3870 … ) và HD 4000 ( như Radeon HD 4850 , 4870 … ) hỗ trợ DirectX 10.1 . Bản bên dưới cho biết sự khác nhau giữa DirectX 10 và DirectX 10.1 .

 \"\"

Bảng bên dưới là tóm tắt những phiên bản DirectX

 

Version

Những thay đổi chính

DirectX 6

Bump Mapping

DirectX 7

T & L trong Chip đồ hoạ

DirectX 8

Shader 1.0, 1.1 và 1.2

DirectX 8.1

Shader 1.3 and 1.4

DirectX 9.0

Shader 2.0

DirectX 9.0c

Shader 3.0

DirectX 10

Shader 4.0, Cấu trúc Shader hợp nhất

DirectX 10.1

Shader 4.1

DirectX 11

Shader 5

 \"\"\"\"