Tìm hiểu Công nghệ DirectX

28 438 2
Tìm hiểu Công nghệ DirectX

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

DirectX là một tập hợp thư viện các hàm API được Microsoft thiết kế để cung cấp cho những người phát triển game một giao diện lập trình cấp thấp để liên kết tới các phần cứng của PC chạy trên hệ điều hành Windows.

NHÓM TÌM HIỂU VỀ DIRECTX Môn học: Kĩ Thuật Đồ Họa Giáo viên: Hà Thị Kim Dung Thực hiện: Nguyễn Viết Tùng Nguyễn Hữu Dương MỤC LỤC Giới thiệu DirectX Những thành phần DirectX Mô hình đối tượng thành phần (COM) Ưu điểm DirectX Ví dụ mô I.Giới thiệu DirectX I.Giới thiệu DirectX DirectX gì?  DirectX tài sản tập đoàn Microsoft Logo thư viện đơn giản tên gọi DirectX tên công ty  DirectX tập hợp thư viện hàm API Microsoft thiết kế để cung cấp cho người phát triển game giao diện lập trình cấp thấp để liên kết tới phần cứng PC chạy hệ điều hành Windows I.Giới thiệu DirectX DirectX gì? • Thuở ban đầu, tên gọi tất API bắt đầu tiền tố Direct, ví dụ Direct3D, DirectDraw, DirectMusic, DirectPlay, DirectSound …Tên gọi DirectX rút gọn X Khi Microsoft tiến hành phát triển hệ máy chơi game mới, kí tự X dùng từ Xbox để ám việc hệ máy chơi game xây dựng công nghệ DirectX Kí tự X sau dùng để đặt tên cho API thiết kế dành riêng cho Xbox XInput, XACT (Audio Creation Tool) … tiền tố Direct Microsoft sử dụng để đặt tên cho API dành cho Windows Direct2D, DirectWrite … • Mỗi đối tượng API DirectX cung cấp khả truy cập khác tới loại phần cứng hệ thống, tất chúng xây dựng giao diện chuẩn Giao diện cho phép người phát triển viết game họ cách sử dụng tập hợp cách hàm lại với mà không cần phải quan tâm nhiều tới phần cứng mà sử dụng I.Giới thiệu DirectX Sự đời phát triển Craig Eisler Alex St John Eric Engstrom I.Giới thiệu DirectX Sự đời phát triển • Phiên DirectX phát hành vào tháng năm 1995 với tên gọi Windows Games SDK – thay cho DCI WinG API Windows 3.1 Nhờ có DirectX (được tích hợp vào Windows 95 trở sau), ứng dụng tận dụng sức mạnh phần cứng để xử lý nhiều tác vụ đa phương tiện • DirectX 2.0 trở thành thành phần Windows phiên Windows 95 OSR2 Windows NT 4.0 vào năm 1996 Do Windows 95 mẻ lúc nên có tựa game phát hành cho Microsoft triển khai chiến dịch quảng bá mạnh mẽ cho DirectX nhằm đánh tan hoài nghi giới lập trình viên tảng I.Giới thiệu DirectX Sự đời phát triển • Sau DirectX phát hành, Microsoft tiến hành phát triển phiên DirectX song song với Trong đó, DirectX dự định cập nhật số tính năng, DirectX dự định phiên lớn với nhiều cải tiến • Năm 2002, Microsoft phát hành DirectX 9, hỗ trợ lập cho việc lập trình vertex pixel shader – Shader Model 2.0 Phiên Direct9.0c với Shader Model 3.0 phát hành không lâu sau đó, vào tháng năm 2004 • Tháng năm 2005, DirectShow gỡ khỏi DirectX chuyển qua tích hợp vào Microsoft Platform SDK • Phiên DirectX 12 mắt ngày 29/7/2015 hỗ trợ Windows 10 Xbox One II.Những thành phần Dưới thành phần DirectX từ phiên 9.0(c) trở phiên trước bị gỡ bỏ khỏi DirectX SDK:  DirectX Graphic: Thành phần đảm nhiệm tất chức kết xuất đồ hoạ hệ thống Nó cung cấp hàm API để người dùng quản lý trình vẽ 2D 3D  DirectInput: Tất người dùng nhập vào quản lý hàm API thành phần Nó bao gồm khả hỗ trợ thiết bị bàn phím, chuột, gamepad, joystick  DirectPlay: Khả kết nối mạng cung cấp cho hệ thống game bạn thông qua thành phần DirectPlay Những hàm phục vụ kết nối đem đến cho bạn khả phát triển ứng dụng giao tiếp với máy khác, cho phép không người chơi game DirectPlay đem đến cho bạn giao diện lập trình cấp cao nhằm giúp bạn tránh khỏi vấn đề khó khăn trình lập trình ứng dụng liên kết mạng II.Những thành phần  DirectSound: Chức DirectSound cho phép bạn tải chơi nhiều file nhạc dạng WAV toàn khả điều khiển trình chơi nhạc Nếu bạn muốn chèn thêm hiệu ứng âm nhạc nền, bạn cần phải sử dụng tới hàm API thành phần cung cấp  DirectMusic: Nó có khả hỗ trợ hầu hết chức phần mềm chơi nhạc midi tự chạy lại theo qui trình xác lập, biến đổi âm lượng để phù hợp với hoạt cảnh game, thay đổi nhịp giai điệu nhiều chức cao cấp khác  DirectShow: Bạn cắt hoạt cảnh phim lồng ghép âm game thông qua thành phần DirectShow hỗ trợ nhiều định dạng file như: AVI, MP3, MPEG , ANF, v.v Với DirectShow, bạn tải tất đối tượng file lên nhớ, thay vào truy cập trực tiếp liệu ổ cứng CD-ROM III.Mô hình đối tượng thành phần  Các hàm DirectX API thiết kế tảng Component Object Model (COM) Đối tượng COM bao gồm tập hợp giao diện nhằm cung cấp phương thức cho người lập trình truy cập DirectX Đối tượng COM hiểu nôm na tệp tin DLL đăng ký với hệ thống Đối với đối tượng DirectX COM, trình xảy DirectX cài đặt vào hệ thống Mặc dù giống với đối tượng C++, đối tượng COM cần thiết phải có giao diện để truy cập tới phương thức bên Đây thực thuận lợi so với cách sử dụng đối tượng thông thường ta xây dựng nhiều kiểu giao diện cho đối tượng COM, thuận lợi cho việc tương thích ngược (hỗ trợ ứng dụng xây dựng trước đó)  Điều thể việc, phiên DirectX chứa giao diện DirectDraw truy cập thông qua hàm API, chứa phiên trước nên không tác động tới mã lệnh viết trước Những game viết để sử dụng Direct7 hoàn toàn hoạt động với Direct9 hay Direct11 mà không gặp vấn đề III.Mô hình đối tượng thành phần  Thêm lợi điểm kỹ thuật đối tượng COM có khả hoạt động với nhiều ngôn ngữ khác C++ Người lập trình sử dụng Visual Basic, C++ hay C# mà sử dụng thư viện DirectX IV.Ưu điểm DirectX Ưu điểm DirectX (DirectX 11):  Công nghệ đường ống (Pipeline): Microsoft giới thiệu lớp công nghệ đường ống (pipeline) DirectX 11: Đổ bóng bề mặt (Hull Shader), công cụ phủ Tessellator đổ bóng vùng (Domain Shader) Bổ sung vào lớp trên, trình đổ bóng điểm cấu trúc đường ống có vài thay đổi, cho phép tính toán đổ bóng (Compute Shader - CS) nhiều tác vụ đa Theo ý kiến nhà phát triển game ứng dụng, CS có nhiều cách sử dụng Chỉ cần có cách phân luồng cho ứng dụng, có cách dùng cho CS IV.Ưu điểm DirectX  Công nghệ phủ (Tessellation): Công nghệ phủ xuất từ Microsoft công bố Xbox 360 vào cuối năm 2005 nhằm cải thiện trình chỉnh sửa nội dung cho phép nhà phát triển chuyên gia đồ họa sáng tạo nhiều đối tượng thực tế phức tạp mà không cần nhớ đồ họa lớn  Về bản, đối tượng xa chi tiết hình tam giác, tiến lại gần người xem số lượng tam giác chi tiết tăng theo hàm mũ Hình ảnh đẹp xuất toàn bộ, tổng số tam giác trung bình phải lớn số cho phép xuất hiện tượng dừng hình, nhảy hình lúc hiển thị  Theo truyền thống, việc tạo đối tượng mô hình khung Sub-D, đến hoạt cảnh ánh xạ phủ bề mặt trước lưới đa giác áp dụng Một lưới áp dụng, chia lại nhiều cấp bậc chi tiết (LOD – Level Of Detail) trước gửi đến GPU Các cấp bậc khác sử dụng cho lớp khác phần cứng chúng dùng nhân vật hay đối tượng nội dung xa hình, bổ sung nhiều chi tiết cho người xem, tốn “công sức” tốt IV.Ưu điểm DirectX  Công nghệ phủ (Tessellation) (Tiếp):  Công nghệ đường ống đồ họa DirectX 11 tập hợp mẹ DirectX 10 mà bổ sung chủ yếu công nghệ phủ Tuy công cụ phủ DirectX 11 mạnh mẽ linh hoạt thành phần phủ GPU AMD gần (bao gồm Xenos) Nhưng thật sự, Tessellator lập trình mà dựa vào thành phần Hull Shader (đổ bóng bề mặt), Hull shader cung cấp thông tin phù hợp sau đó, Domain Shader nhận liệu phủ xuất đỉnh trước chuyển xuống phần cấu trúc đường ống IV.Ưu điểm DirectX  Công nghệ phủ có Hull Shader Domain Shader:  Hull Shader nơi tiến trình phủ đối tượng thiết lập – điều khiển điểm mảng sau tính toán cấp độ phủ yêu cầu Sau bước chuyển đổi bản, điểm điều khiển chuyển vào Domain Shader – phận phủ không thấy điểm điều khiển Thay vào đó, công cụ phủ Tessellator cung cấp số TessFactor, cho biết cấp độ phủ yêu cầu miếng khảm cụ thể Hull Shader báo cho phận phủ phương thức (mode) mà nên thực – nhà phát triển định rõ cách mà tiến trình phủ thực công việc (mặc dù đơn vị phủ tính cố định, có vài phương thức để lựa chọn)  Sau đó, Tessellator nhận cung cấp Hull Shader kết hợp mảng để tạo yêu cầu hình học bổ sung Khi trình hoàn thành, điểm vùng (domain point) liệu hình học xuất IV.Ưu điểm DirectX  Các điểm vùng chuyển xuống Domain Shader (làm việc điểm bản), phận nhận điểm vùng tạo đỉnh cho giai đoạn Trong đó, liệu hình học thẳng xuống lớp gốc đường ống – lý liệu không cần đổ bóng, lại cần chuyển đổi  Điều quan trọng lớp phủ đường ống không làm việc với tam giác mà làm việc với miếng khảm điểm Các miếng khảm mô tả đường cong vùng bề mặt cạnh Tất nhiên, mảng mô tả với tam giác, điều không phổ biến, hầu hết ứng dụng chỉnh sửa 3D làm việc với cạnh Đây lần DirectX không làm việc với tam giác, bước tiến đáng kể IV.Ưu điểm DirectX  Bộ đổ bóng Compute Shader:  Compute Shader nhận liệu từ Pixel Shader Bộ đổ bóng tính toán hỗ trợ tốt cho nhiều hãng phần cứng khác nhau, gia tăng khả lập trình cho GPU đa (GPGPU – General Purpose GPU) mà NVIDIA AMD tích cực cải tiến năm gần Nhờ cải tiến Compute Shader, việc dựng hình, GPU thực tính toán khác, chẳng hạn tạo hiệu ứng bóng mờ  Microsoft cho nhà phát triển cảm thấy dễ dàng việc phát triển ứng dụng game phần cứng tận dụng hết khả IV.Ưu điểm DirectX  Hỗ trợ đa luồng:  API DirectX 11 đem lại cho lập trình viên khả điều khiển GPU từ CPU đa nhân Những thay đổi mô hình API mô hình trình điều khiển DirectX 11 cải thiện việc tính toán CPU Việc truy cập thiết bị không đồng thực thông qua hai tính đối tượng thiết bị thư viện Direct3D 11  Cách để Microsoft đạt điều tách thiết bị Direct3D thành giao diện riêng biệt: giao diện ngữ cảnh thiết bị (Device Context), giao diện ngữ cảnh trực tiếp (Immediate Context) giao diện ngữ cảnh trì hoãn (Deferred Context) Immediate Context có luồng giao diện Device Context Deferred Context có nhiều luồng hơn, định xếp hàng tác vụ cho Immediate Context Render  Mỗi giao diện thiết bị tải luồng tài nguyên cần, giao diện ngữ cảnh trì hoãn (Deferred Context interface) hoạt động ngữ cảnh thiết bị đơn luồng cho toán tử dựng hình tương lai, xếp hàng lệnh gọi (hoặc Display Lists) trước chuyển chúng vào giao diện ngữ cảnh trực tiếp IV.Ưu điểm DirectX  Liên kết đổ bóng động (Dynamic Shader Linkage):  Một vấn đề mà nhà lập trình game đối mặt mở rộng tính linh hoạt đổ bóng phức tạp Ví dụ, vài trường hợp cần nhiều shader Uber Shader lớn thường dùng kết nối tất shader cần thiết vào đoạn mã (code), tối giản lập trình  Tuy nhiên, việc tối giản lập trình theo hướng lại làm cho việc đổ bóng phức tạp vô cùng, không hiệu shader riêng lẻ mà khó bẫy lỗi Giải pháp viết shader chuyên dụng phù hợp cho tất trường hợp mà phù hợp cho lớp khác phần cứng Giải pháp lại trở nên phức tạp tốn nhiều chi phí liên quan đến việc chuyển đổi shader, Uber shader tuỳ chọn dễ dàng cho nhà lập trình viết mã dù chưa phải lý tưởng IV.Ưu điểm DirectX  Microsoft tin câu trả lời cho vấn đề thủ tục (subroutine), cho phép nhà lập trình liên kết shader với nhau, nhà lập trình tạo shader chuyên dụng cho lớp khác phần cứng định, lại giảm phần lớn việc sử dụng ghi so với việc dùng shader đơn lẻ để điều khiển tất Hi vọng rằng, điều làm cho nhà lập trình có hứng thú viết shader, nghĩa ảnh hưởng trực tiếp đến chất lượng hình ảnh mà cụ thể chất lượng đổ bóng IV.Ưu điểm DirectX  Cải thiện nén kết cấu (Texture Compression):  Đã lâu kể từ Microsoft nâng cấp thuật toán nén kết cấu DirectX, Microsoft lưu ý đến thiếu sót việc hỗ trợ cho định dạng kết cấu HDR (High Dynamic Range), đa kết cấu không ý đến giải pháp nén gốc  Để bổ sung cần thiết, Direct3D 11 giới thiệu định dạng kết cấu BC6 (hay BC6H) BC7 BC6 kết cấu định dạng cao tiếc liệu gốc nén, thay vào đó, hỗ trợ công nghệ nén 6:1 với tốc độ 16bpc (bits per channel), điều mang lại hiệu chất lượng kết cấu chưa cao trường hợp sử dụng mở rộng dải sáng có độ nhạy cao (high-dynamic) không thật nguyên gốc IV.Ưu điểm DirectX  Bên cạnh đó, BC7 định dạng kết cấu LDR (Low Dynamic Range), hỗ trợ tỷ lệ nén 3:1 RGB BC7 sử dụng với chất lượng giảm nhẹ (4:1 3:1 nói trên) đảm bảo mức cao  Hơn nữa, Microsoft cho rằng, giải nén kết cấu DirectX 11 phải làm theo cách hoàn toàn xác với thông số kỹ thuật API chất lượng giải nén kết cấu tăng lên nhiều Cho đến DirectX 11 xuất hiện, thời gian cho hãng cung cấp phần cứng điều chỉnh cách mà phần cứng hỗ trợ DirectX 10 (và DirectX cũ hơn) điều khiển giải nén kết cấu V.Ví dụ mô THE END Thanks you for listening! [...]... đối tượng của nội dung xa màn hình, bổ sung nhiều chi tiết hơn cho người xem, nhưng tốn càng ít công sức” càng tốt IV.Ưu điểm của DirectX  Công nghệ phủ (Tessellation) (Tiếp):  Công nghệ đường ống đồ họa DirectX 11 là một tập hợp mẹ của DirectX 10 mà sự bổ sung chủ yếu là công nghệ phủ Tuy công cụ phủ DirectX 11 mạnh mẽ và linh hoạt hơn các thành phần phủ của GPU AMD gần đây (bao gồm cả Xenos) Nhưng... Người lập trình có thể sử dụng Visual Basic, C++ hay C# mà vẫn có thể sử dụng cùng một thư viện DirectX IV.Ưu điểm của DirectX Ưu điểm của DirectX (DirectX 11):  Công nghệ đường ống (Pipeline): Microsoft giới thiệu 3 lớp mới trong công nghệ đường ống (pipeline) DirectX 11: Đổ bóng bề mặt (Hull Shader), công cụ phủ Tessellator và đổ bóng vùng (Domain Shader) Bổ sung vào 3 lớp trên, quá trình đổ bóng... các nhà phát triển game và ứng dụng, CS có nhiều cách sử dụng Chỉ cần có một cách phân luồng cho một ứng dụng, thì sẽ có một cách dùng cho CS IV.Ưu điểm của DirectX  Công nghệ phủ (Tessellation): Công nghệ phủ đã xuất hiện ngay từ khi Microsoft công bố Xbox 360 vào cuối năm 2005 nhằm cải thiện quá trình chỉnh sửa nội dung và cho phép các nhà phát triển cũng như chuyên gia đồ họa sáng tạo nhiều đối... hình đối tượng thành phần  Các hàm DirectX API được thiết kế trên nền tảng Component Object Model (COM) Đối tượng COM bao gồm tập hợp các giao diện nhằm cung cấp các phương thức cho những người lập trình có thể truy cập DirectX Đối tượng COM có thể hiểu nôm na là các tệp tin DLL đã được đăng ký với hệ thống Đối với những đối tượng DirectX COM, quá trình này xảy ra khi DirectX được cài đặt vào hệ thống... DirectX1 1:  Direct2D: được sử dụng cho đồ họa 2D trong các ứng dụng Win32 Nó có khả năng dựng hình đồ họa vector với hiệu suất cao  DirectWrite : được sử dụng để tạo các phông chữ và vẽ chữ trong ứng dụng Direct2D  DXGI (DirectX Graphics Infrastructure): tạo ra các chuỗi trao đổi Direct3D và liệt kê các bộ chuyển đổi thiết bị  Direct3D: được sử dụng cho tất cả các công việc về đồ họa 3D trong DirectX. .. đường ống IV.Ưu điểm của DirectX  Công nghệ phủ có cả trong Hull Shader và Domain Shader:  Hull Shader là nơi tiến trình phủ một đối tượng được thiết lập – nó điều khiển các điểm của mảng rồi sau đó tính toán cấp độ phủ yêu cầu Sau bước chuyển đổi cơ bản, các điểm điều khiển sẽ được chuyển vào Domain Shader – bộ phận phủ không thấy được các điểm điều khiển Thay vào đó, công cụ phủ Tessellator được... ở mức cao  Hơn nữa, Microsoft cho rằng, giải nén kết cấu trong DirectX 11 phải được làm theo cách hoàn toàn chính xác với thông số kỹ thuật của API thì chất lượng giải nén kết cấu mới tăng lên nhiều Cho đến khi DirectX 11 xuất hiện, vẫn còn thời gian cho các hãng cung cấp phần cứng điều chỉnh cách mà phần cứng hỗ trợ DirectX 10 (và các DirectX cũ hơn) điều khiển giải nén kết cấu V.Ví dụ mô phỏng THE... cấu định dạng cao nhưng chỉ tiếc là mất dữ liệu gốc khi nén, thay vào đó, nó hỗ trợ công nghệ nén 6:1 với tốc độ 16bpc (bits per channel), điều này mang lại hiệu quả nhưng chất lượng kết cấu chưa cao trong trường hợp sử dụng mở rộng dải sáng có độ nhạy cao (high-dynamic) và không thật sự còn nguyên gốc IV.Ưu điểm của DirectX  Bên cạnh đó, BC7 là một định dạng kết cấu LDR (Low Dynamic Range), hỗ trợ... hơn trong việc phát triển các ứng dụng game trong khi các phần cứng được tận dụng hết khả năng IV.Ưu điểm của DirectX  Hỗ trợ đa luồng:  API của DirectX 11 đem lại cho lập trình viên khả năng điều khiển GPU từ CPU đa nhân Những thay đổi trong mô hình API và mô hình trình điều khiển của DirectX 11 đã cải thiện việc tính toán của CPU Việc truy cập các thiết bị không đồng bộ giờ đây đã được thực hiện... bộ API mới được thêm vào DirectX 11 cho phép tính toán đa luồng trong GPU GPU có khả năng xử lý nhiều nhiệm vụ song song ở mức độ vật lý như: nén và giải nén video, xử lý âm thanh, và còn nhiều hơn nữa  DirectSetup: Sau khi game của bạn đã hoàn thành, bạn sẽ muốn phát hành nó DirectSetup cung cấp cho bạn những chức năng giúp ứng dụng có thể tự động cài đặt những phiên bản DirectX mới nhất lên hệ thống

Ngày đăng: 12/05/2016, 09:27

Mục lục

  • Slide 1

  • MỤC LỤC

  • I.Giới thiệu về DirectX

  • I.Giới thiệu về DirectX

  • I.Giới thiệu về DirectX

  • I.Giới thiệu về DirectX

  • I.Giới thiệu về DirectX

  • I.Giới thiệu về DirectX

  • II.Những thành phần cơ bản

  • II.Những thành phần cơ bản

  • II.Những thành phần cơ bản

  • II.Những thành phần cơ bản

  • II.Những thành phần cơ bản

  • III.Mô hình đối tượng thành phần

  • III.Mô hình đối tượng thành phần

  • IV.Ưu điểm của DirectX

  • IV.Ưu điểm của DirectX

  • IV.Ưu điểm của DirectX

  • IV.Ưu điểm của DirectX

  • IV.Ưu điểm của DirectX

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan