Công nghệ đồ hoạ 3D của DirectX 12 có gì hay (phần 1)?

Thảo luận trong 'Tin Công Nghệ' bắt đầu bởi Dark Man, 10 Tháng mười hai 2014.

  1. Dark Man Thành viên

    [​IMG]
    GSM.vn - Một thành phần hết sức quan trọng đối với các game thủ PC nói riêng và Windows nói chung, là bộ giao diện lập trình ứng dụng (API) DirectX (DX). Qua nhiều thế hệ phát triển, DX đã tiến lên phiên bản 11 và sắp tới sẽ là 12 cùng với Windows 10. Vậy thế hệ DX sắp ra mắt này có những cải tiến gì?
    Đôi nét về DirectX

    DX trên thực tế là một bộ API giúp cho các ứng dụng trên Windows tương tác với thiết bị nghe nhìn (multimedia) có trên máy tính, smartphone hay tablet (gọi chung là thiết bị). Nó bao gồm nhiều thành phần khác nhau với chức năng dành riêng cho từng loại thiết bị hoặc từng mục đích sử dụng, ví như Direct3D (D3D), Direct2D (D2D), DirectWrite, DirectSound, DirectDraw...

    Nhưng trong chủ đề về đồ hoạ, chúng ta chủ yếu chỉ bàn đến D2D và D3D, 2 thứ giúp dựng lên những hình ảnh đẹp đẽ mà các game thủ vẫn thường ao ước có được.

    [​IMG]
    Bên cạnh DX, cũng có một số API khác như OpenGL, OpenCL, OpenMP, AMD Mantle, NVIDIA PhysX...
    Riêng về DX 12, đây là một bản nâng cấp thêm các tính năng từ DX 11 và 10. Nhưng giữa DX 9 và DX 10 là 2 phiên bản hoàn toàn khác nhau. DX 9 đi liền với Windows XP, Xbox 360 trở về trước. Còn DX 10 chỉ có trên Windows Vista trở về sau này. DX 11 hiện có mặt trên Windows 7/8 và Xbox One. DX 12 được Microsoft (MS) công bố hồi đầu năm nay cùng với DX 11.3 tại hội thảo dành cho nhà phát triển game (GDC 2014). Dự kiến trước mắt chỉ có Windows 10 sẽ hỗ trợ DX 12. Chưa rõ MS có cho phép Windows 7/8 nâng cấp lên bản DX mới này không.

    Các tính năng của DirectX 12

    Trước hết, đây chỉ là những tính năng mà MS công bố tại GDC 2014. Chúng chưa phải những tính năng cuối cùng. Rất có thể đến khi chính thức ra mắt, chúng ta sẽ còn thấy được một số tính năng khác. Ở đây chỉ đề cập đến những thứ được nêu tại GDC vừa qua.

    Ngoài ra, tin vui cho các game thủ PC là DX 12 sẽ hỗ trợ cả những card đồ hoạ (VGA) kiến trúc Fermi của NVIDIA (từ thế hệ GeForce 400), GCN của AMD (từ thế hệ Radeon HD 7000) và Haswell của Intel (thế hệ Core i thứ 5) trở đi. Có nghĩa phần đông người dùng PC không cần thiết phải nâng cấp phần cứng để có thể trải nghiệm được công nghệ đồ hoạ mới. Thứ duy nhất mà chúng ta cần làm là "lên đời" Windows 10 (vì chưa rõ Windows 7/8 có được hỗ trợ hay không).
    [​IMG]
    Nhưng có thể bạn đang thắc mắc: Vậy còn Windows Phone (WP) thì sao? Tính đến thời điểm này, hiện chỉ có dòng chip Snapdragon trong tương lai của Snapdragon sẽ hỗ trợ bộ DX API mới MS. Chúng ta cũng chưa được biết đó sẽ là model nào. Vì có một thực tế tuy rằng về lý thuyết WP 8 đã hỗ trợ DX 11, song thực tế khi các game di động được kích hoạt, chúng lại khai thác DX 9.3. Có nghĩa thực tế các chip ARM vẫn chưa được "trải nghiệm" DX 11 là gì.
    Tuy vậy, cần lưu ý DX 12 chưa phải phiên bản hoàn chỉnh. Rất có thể khi ra mắt, sẽ có một số tính năng mà phần cứng cũ không có, ví như Shader Model phiên bản mới, hoặc phương pháp lập trình tiến bộ hơn (cho hiệu năng cao hơn chẳng hạn). Nhưng cần phải nói việc hỗ trợ cả VGA cũ là một điểm sáng giá, vì không phải chiếc VGA thế hệ mới nào cũng mạnh hơn các bậc đàn anh. Ví dụ GeForce GTX 760 (Kepler) hoàn toàn yếu hơn GTX 680 (Fermi) dù nó ra mắt sau chiếc card cũ tới hơn 1 năm.
    [​IMG]
    Những tính năng sau đây chủ yếu dành cho nhà phát triển game. GSM sẽ cố gắng mô tả các thuật ngữ theo hướng dễ hiểu nhất cho bạn đọc.

    Rasterizer Ordered Views (ROV)
    [​IMG]
    Tạm dịch - Chế độ xem raster có thứ tự.

    Raster là một khái niệm đồ hoạ. Đó là quá trình mà máy tính vẽ lại các hình ảnh vector (không có độ phân giải) ra các ảnh bitmap (có độ phân giải xác định). Hiểu cho đơn giản, khi bạn cầm máy ảnh lên và chụp một tấm ảnh, thì quá trình chụp ảnh chính là raster vì bạn đã biến một khung cảnh thực tế thành một file hình ảnh có kích thước xác định tuỳ theo thiết lập của máy ảnh. Có thể gọi tắt là phác hoạ lại, vẽ lại​
    ROV là phương pháp vẽ các ảnh bitmap ngược lại với UAV (Unordered Access Views, tạm dịch Chế độ xem ảnh không có thứ tự). Phương pháp UAV đang được dùng trên các bản DX hiện có. Nhược điểm của UAV là nếu nhà lập trình game không cẩn thận yêu cầu CPU sắp xếp lại các lớp hình ảnh trước khi gửi lệnh đến cho GPU (chip xử lý đồ hoạ) vẽ ra, thì hình ảnh tổng hợp lại từ những lớp ảnh được vẽ ra có thể sẽ không chính xác.
    [​IMG]
    Lấy ví dụ như chiếc kính trên đây, nếu CPU không sắp xếp trước các lệnh vẽ (2 tròng kính trước rồi đến các gọng kính sau) mà gửi lệnh tự do (tròng trái trước, gọng kính trước, tròng phải sau) thì kết quả sẽ như hình trên bên trái. Ngược lại nếu CPU có sắp xếp trước thì kết quả sẽ như hình dưới bên trái. Song nhược điểm ở đây là khi yêu cầu CPU sắp xếp các lệnh vẽ rồi mới gửi cho GPU, thì tốc độ vẽ hình sẽ bị giảm đi do GPU phải chờ đợi.

    Trong trường hợp bạn quan tâm chi tiết hơn về ROV và UAV, các slide dưới đây sẽ mô tả chi tiết 2 trường hợp.
    [​IMG]
    • Tính toán bằng UAV
    [​IMG]
    [​IMG]
    [​IMG]
    [​IMG]
    [​IMG]
    • Tính toán bằng ROV
    [​IMG]
    [​IMG]
    [​IMG]
    [​IMG]
    [​IMG]
    [​IMG]
    [​IMG]
    [​IMG]
    ROV sinh ra như là giải pháp để vừa giúp GPU vẽ hình được đúng, vừa không bị chậm đi quá nhiều do mọi thứ được lên thứ tự xử lý ngay từ đầu chứ không đợi đến khi CPU hoàn tất lệnh vẽ. ROV còn hỗ trợ việc pha màu (blending) hoặc trộn các lớp hình ảnh trong suốt (transparency), khử răng cưa (anti-aliasing) hiệu quả hơn. ROV vốn đã có từ lâu trong các chương trình thiết kế đồ hoạ CAD/CAM. Và nay thì nó đã được ứng dụng vào DX.

    (còn tiếp)
    Chỉnh sửa cuối: 12 Tháng mười hai 2014
     
  2. baopham_it88

    baopham_it88 Thành viên

    Bài viết:
    582
    Được Like:
    109
    Cái này không thuộc chuyên môn len đọc phần dưới khó hiểu quá