cgezine (c) Nick White - Giám đốc sản xuất & phát triển Microsoft Windows Vista
DirectX là một thư viện tập lệnh đồ họa, nhưng nó lại thường bị hiểu nhầm là một platform (hệ nền). Được giới thiệu lần đầu vào năm 1995 nhằm thuyết phục các nhà phát triển game trên nền DOS chuyển qua nền Windows, DirectX cung cấp một giao thức lập trình ứng dụng (API - application programming interface) cho các nhà phát triển có thể sử dụng để truy xuất nhiều khía cạnh khác nhau của đồ họa, âm thanh và các phần cứng mở rộng khác mà không cần phải lập trình trực tiếp với "một khối lượng khổng lồ" các loại card hay chip set đơn lẻ khác nhau.
Minh họa - Hình ảnh này trong trò chơi Age 3 được render với DirectX 9.0cDirectX hợp nhất nhiều tập lệnh con của các giao thức API đó, bao gồm DirectSound, DirectInput, và DirectMusic, nhưng thành phần được ưu tiên phát triển và cũng là phần có nhiều sự thay đổi nhất trong suốt những năm tháng qua của DirectX chính là Direct3D, thành phần này cho phép tăng cường sức mạnh của các card tăng tốc đồ họa của máy tính, đặc biệt là trong các ứng dụng CG và game.
DirectX (bao gồm cả Direct 3D) được tích hợp sẵn trong các phiên bản Windows còn phát triển của nó gọi là DirectX SDK cũng được Microsoft phát hành miễn phí cho các nhà phát triển. Trong lĩnh vực thư viện giành cho giới đồ họa CG, DirectX có một đối thủ đáng gờm là OpenGL, tuy nhiên, do đặc thù của Windows nên DirectX vẫn đứng ở vị trí số 1 về mọi mặt. Ở bài viết này, chúng tôi chỉ tập trung phân tích những điểm mới của phiên bản mới nhất của DirectX, đó là DirectX 10 hiện chỉ có trên Windows Vista.
KHÔNG CHỈ LÀ MỘT PHIÊN BẢN MỚI
Tính thông dụng của DirectX trong suốt những năm tháng qua càng ngày càng tăng. Các game cổ điển như Thief: The Dark Project, Max Payne, Grand Theft Auto III đều sử dụng nhiều phiên bản DirectX để hỗ trợ cho đồ họa của chúng. Nhưng mới đây, chúng ta đã được thấy một số dòng games đỉnh cao hiện nay như Half-Life 2, Battlefield 2, World of Warcraft and Oblivion: The Elder Scrolls IV, Transformers, Fifa 07 ... hay các ứng dụng đồ họa cao cấp như Softimage|XSI 6.5 , Autodesk Max 9, Maya 8.5, CAD 2008, ... đều sử dụng thư viện DirectX 9.0b/c. Chừng đó đủ để nói rằng, các ứng dụng đồ họa và game mới nhất luôn cố gắng tận dụng các phiên bản mới nhất của DirectX.
Minh họa - Hình ảnh này trong trò chơi Age 3 được render với DirectX 10
Nhưng mà này, DirectX10 không chỉ là một phiên bản khác của DirectX. Phiên bản này được xây dựng lại trên nền tảng mới nhằm thay đổi phương thức các ứng dụng ‘tư duy’ để quản lý các chất liệu và load chúng để tạo ra sự cân bằng động giữa CPU (bộ xử lý máy tính) và GPU (bộ xử lý đồ họa). DirectX 3D 10, cũng nằm trong hướng phát triển này, nhằm cải thiện và tăng cường hiệu quả quản lý các giữ liệu chuyển đổi giữa CPU và GPU.
Kết quả là card tăng tốc đồ họa của bạn sẽ trở nên mạnh mẽ hơn, không chỉ giúp bạn tăng cường độ phân giải xét về mặt pixels, mà còn giúp bạn có thêm nhiều chất liệu (material) và các đối tượng mới trong ứng dụng đồ họa của bạn. Các scene và môi trường phức tạp có thể được tăng cường lên hằng trăm lần mà không cần phải tăng tốc CPU. Điều này nghĩa là CPU sẽ xử lý tất cả các hiệu ứng đồ họa cao cấp như các bộ phim CG, các ứng dụng game đỉnh cao, và quản lý các chất liệu, môi trường và tái tạo ánh sáng và nhờ vậy chu kỳ giải phóng CPU được tăng lên nhằm tập trung vào AI (trí tuệ nhân tạo) và các hiệu ứng vật lý khác.
{mospagebreak}
TẬP TRUNG VÀO VISTA
DirectX10 hiện chỉ được dành riêng cho hệ điều hành Windows Vista và tạm thời chưa hỗ trợ các nền điều hành khác. Điều này nhằm đảo bảo rằng, các thế hệ đồ họa mới (next-gen) sẽ được tập trung trên Windows Vista trước mọi hệ nền khác.
Trình điều khiển đồ họa (display driver) hay còn gọi là kiểu đồ họa (graphics model) trên nền Windows Vista được gọi là WDDM (Windows Display Driver Model), là một lý do chính để DirectX10 được chọn dành riêng cho hệ điều hành này. Thật là thú vị khi biết rằng các mô hình điều khiển đồ họa không hề thay đổi nhiều kể từ Windows NT4 – Và hiện nay, trên Vista thì WDDM là trình quản lý đồ họa đầu tiên của hệ thống đã được sửa chữa và thay đổi rất nhiều, và nó được thiết kế để đảm nhận các ứng dụng thiết kế đồ họa cao cấp của các ứng dụng trong tương lai.
Hiện nay, trên thị trường, các nhà sản xuất chip đồ họa hàng đầu như Nvidia hay ATI đã tung ra các thế hệ car đồ họa mới để chào đón DirectX 10.DirectX10 phụ thuộc vào các cải tiến đó trong hệ đồ họa, nó thúc đẩy việc cải tiến và thay đổi một cách căn bản về mặt kiến trúc của WDDM, và do đó, các giao thức API cũng là một cơ sở hạ tầng phải thay đổi theo.
LỢI ÍCH CHO DÂN NGHIỀN GAME
DirectX10 đã mở ra một kỷ nguyên mới cho đồ họa, sinh động hơn, hấp dẫn hơn. Hãy cùng điểm qua một số cải tiến đáng kể trong DirectX 3D qua một số game nặng nhé
Chi tiết hơn, đổ bóng thật hơn
Ảnh 1: DirectX9 (Halo: Combat Evolved)Ảnh 2: DirectX10 (Crysis)Bạn có thể nhận thấy sự khác biệt rõ ràng khi bạn so sánh hình (1) được chụp từ game: ‘Halo: Combat evolved’, một trong số những trò chơi hỗ trợ DirectX 9.0c tốt nhất và hình (2) được chụp trong trò ‘Crysis’, một trong những game máy tính sớm nhất có hỗ trợ DirectX10. Tất cả 2 hình đều được kích hoạt ở chế độ hiển thị và chống răng cưa tương đương.
DX10 bổ sung thêm một cấp độ ‘thật’ hơn cho các game bằng cách mô phỏng các nhân vật một cách sống động hơn. Bạn có thể nhìn thấy các chi tiết không thể tin được ở ảnh trên, những biểu cảm của khuôn mặt, những lỗ chân lông trên da, hàng ria mép và đôi mắt gần như được mô phỏng y như thật.
DirectX9 mô phỏng các chi tiết với các kỹ thuật ánh xạ thông thường, trong khi DirectX10 thực sự tăng cường lượng chi tiết cho nhân vật đồ họa và các chất liệu theo một kỹ thuật mới. Thể hiện ở 2 con cá trong các hình trên, đầu tiên là ở hình bên trái, được render trên DirectX9 trong khi ở hình (bên phải), con cá trông cực kỳ chi tiết khi được render qua thư viện DirectX10. Quan sát kỹ phần đỉnh và các mép tiếp xúc với hình nền màu trắng (trên mép hình), bạn có thể thấy con cá trên nền DirectX 10 được thể hiện rõ ràng và chi tiết hơn con còn lại rất nhiều.
{mospagebreak}
DirectX1 0 còn đưa ra các kỹ thuật nhằm giúp việc mô phỏng bóng đổ thật hơn. Được thể hiện ở hình bên, trong ảnh (phía dưới) là một nhân vật được nhấn mạnh bóng đổ. Ánh sáng màu xanh chỉ để mô tả quá trình và phương thức tạo bóng (dựa trên nguồn sáng) và các tạo cho bóng đổ đó nổi bật trên nền. TrongX9, phần bóng đổ được tạo qua CPU, điều này làm giảm hiệu năng xử lý cho các bóng đổ của các nhân vật mới trên màn hình, trong khi ở DirectX10, phần việc này được xử lý và render toàn bộ thông qua năng lực xử lý của GPU.
Hình 5: Giá trị bóng đổ (Các bóng đổ thật hơn)Các scene giàu cảm xúc hơn và môi trường tinh vi hơn Hình 6: Windows Vista wallpaper được render trên DirectX9Hình 7: Windows Vista wallpaper được render trên DirectX10Ảnh (6) và (7) được các họa sĩ CG của chúng tôi đã tạo dựng dựa trên một trong số các wallpaper có sẵn trên Windows Vista với các ngọn núi ở xa và phía trước là một hồ nước. Các họa sĩ CG đã render sử dụng Microsoft Flight Simulator X trong DirectX9 và tương ứng là DirectX10. Có một sự khác biệt đã xuất hiện. Trên ảnh đầu tiên, bạn có thể quan sát thấy mặt nước thật hơn với nhiều bọt và sóng. DirectX10 có thể tạo ra các ‘volumetric effects’ mới, trong khi những đám mây ở ảnh (9) trông dày hơn và có nhiều biến động hơn trong khi sự tán xạ của ánh sáng còn làm nổi bật các hiệu ứng về tối sáng của toàn bộ đỉnh núi. Bạn cũng sẽ chú ý đến phần mép rừng chi tiết hơn hẳn trong hình (7). Cuối cùng, ở hình (7), bạn có thể nhận ra rằng, DirectX10 cho phép tán xạ chính xác các chi tiết của ngọn núi, thậm chí là các thay đổi khi phản chiếu trên nước. Trong khi đó, ở hình (6) thì DirectX9 cung cấp một sự phản chiếu yếu ớt và giả tạo hơn hẳn.
{mospagebreak}
Môi trường ‘sinh động’ hơn
Hình minh họa: Quy trình phát triển tự nhiên của các game online ngay cả khi người chơi không tương tácHình (1) cho đến hình (4) cho thấy các cây nho phát triển và bám chắc xung quanh một hầm mộ qua thời gian trong một trò chơi. DirectX10 tạo cho các engine của các ứng dụng đồ họa và game linh động thay đổi sự xuất hiện của hầm mộ qua thời gian. Điều này cho phép các kịch bản được mở rộng hơn để diễn biến theo thời gian trong game hoàn hảo hơn, nhờ vậy các môi trường tĩnh của các scene cổ điển có thể được thay bằng một mô trường ‘động’ mô phỏng sự phát triển của tự nhiên dựa trên khả năng quản lý và xử lý dữ liệu khổng lồ của DirectX 10
DirectX9 không có khả năng tạo ra các hình dạng mới một cách tự động trên GPU. Nó cũng không có khả năng lưu giữ các hình học trung gian thu được ở các bước đó. Chẳng hạn như các scenarios giữa hình (8) và hình (11) không thể được tự động tạo bằng GPU khi sử dụng DirectX9.
Motion blurring
Như đã thấy ở các hình (trái) và (phải), chúng minh họa rõ ràng cho độ xác thực của hiệu ứng motion blurring, điều mà DirectX10 tỏ ra vượt trội. Trong các phiên bản trước của DirectX, các nhà phát triển game và đồ họa đòi hỏi phải làm mờ hình ảnh thu được để đạt được hiệu ứng mờ theo chuyển động. Nhưng DirectX10 lại đi theo một hướng khác, hiệu ứng motion blur có thể được thực hiện ngay trong không gian đối tượng (object-space), mô phỏng một camera hướng vào một đối tượng qua nhiều sub-frames
{mospagebreak} Nghệ thuật Render mới
Nếu trước đây, việc render phụ thuộc một phần vào CPU và chính vì thế, nó không tận dụng hết các khả năng của GPU, thì hiện nay, trên nền DirectX 10, CPU chỉ việc tính toán các thông số và các tác vụ render được giao hoàn toàn cho GPU đảm nhận, đúng với chức năng thực sự của nó. Điều này đặc biệt hữu dụng khi bạn có dịp sở hữu các dòng card đồ họa tân tiến nhất hiện nay như AGEIA's PhysX của Nvidia chẳng hạn.
Phiên bản Shader Model 4.0 được giới thiệu trong DirectX 10 nhằm tăng cường khả năng mô phỏng hình học là một trong số hàng loạt tính năng mới đáng chú ý trong phiên bản mới nhất của thư viện đồ họa này. Một tính năng quan trọng nữa là khả năng tích hợp RAM vào bộ nhớ của card tăng tốc đồ họa, giúp bạn cải thiện đáng kể khả năng xử lý đồ họa và đặc biệt là render trong các tác vụ và scene CG phức tạp.
THAY LỜI KẾT
Như đã thấy ở trên, các cơ chế đổ bóng, mô phỏng hiệu ứng, môi trường và chi tiết trong DirectX 10 vượt trội hẳn và làm thay đổi cơ bản mọi nền tảng đồ họa từng có trước đó.
Mục đích mà Microsoft hướng đến là các graphics designer (nhà thiết kế đồ họa) và các nhà phát triển ứng dụng đồ họa. Vậy còn chần chờ gì nữa mà không hướng đến DirectX 10? Trở ngại duy nhất mà giới đồ họa vẫn đang còn lưỡng lự đó chính là Windows Vista. Nhưng khi mà thế giới phần cứng đang ngày càng tiếp cận mức giá hợp lý hơn, thì Vista có lẽ không phải là trở ngại quá lớn phải không bạn?