Từ những gì tôi hiểu, bởi vì Windows không cung cấp hệ điều hành DOS như truy cập phần cứng trực tiếp, Direct X được tạo ra.
Bạn nói đúng là Windows không cung cấp DOS như truy cập phần cứng trực tiếp. Trên thực tế không có hệ điều hành nào có bộ nhớ bảo vệ.
Và có, DirectX được tạo để cung cấp API để tăng tốc truy cập vào một số loại phần cứng nhất định. DirectX là a API để truy cập phần cứng tăng tốc, không phải THE (một và chỉ) một.
Điều đó có nghĩa Direct X là cách chắc chắn duy nhất để truy cập trực tiếp phần cứng (ish). Liệu tôi có sai?
Bạn là sai vì không có gì và không ai ngăn bạn triển khai một tuyến đường khác để truy cập phần cứng tăng tốc. Các phần mềm chịu trách nhiệm cho việc truy cập kênh vào phần cứng được gọi là trình điều khiển. Trình điều khiển chạy trong chế độ riêng, có nghĩa là, bảo vệ không gian địa chỉ không áp dụng cho chúng. Đó là, bởi vì trình điều khiển phải có khả năng giao tiếp với phần cứng.
Trình điều khiển giao tiếp với các chương trình thông thường, được gọi là Không gian người dùng thông qua API. API có thể được tiêu chuẩn hóa, sau đó có thể được chỉ định chặt chẽ hoặc chúng có thể hoàn toàn bị bắt buộc.
DirectX là một API được chỉ định, đặc tả này được Microsoft viết ra.
OpenGL theo cách tương tự là một API, nhưng thay vì được chỉ định bởi một thực thể duy nhất, trong một số biểu mẫu được chuẩn hóa với sự cộng tác của một số cộng tác viên.
Một ví dụ cho API sở hữu là lướt qua 3Dfx, phần lớn được lấy cảm hứng từ OpenGL. Trong thực tế, có một trình bao bọc tương thích được gọi là "minigl" triển khai tập hợp con OpenGL cần thiết cho động cơ Half-Life 1 để hoạt động trên các hệ thống 3Dfx/Glide.
Nhà phát triển trình điều khiển của nhà cung cấp GPU tuân thủ các đặc điểm của API, viết trình điều khiển cho DirectX, OpenGL hoặc một số giao diện riêng tư. Mỗi API này cung cấp quyền truy cập vào trình điều khiển và do đó đến phần cứng. Và có thể có nhiều API cho một tài nguyên. Trình điều khiển có thể triển khai DirectX 3D, OpenGL và bất kỳ thứ gì khác song song và cung cấp cho tất cả người dùng không gian.
Vì vậy, không, OpenGL không được xây dựng trên nền DirectX nếu giao hàng bằng trình điều khiển GPU. Windows Vista và trên tàu với mô phỏng OpenGL-1.4 được xây dựng trên nền DirectX, nhưng không hỗ trợ các trình đổ bóng, đối tượng đệm đỉnh và tất cả các còi và chuông khác. Ngay sau khi bạn cài đặt trình điều khiển GPU có hỗ trợ OpenGL, điều này thay thế hoàn toàn mô phỏng OpenGL-1.4 với thực thi cấp thấp thực tế.
Cảm ơn bạn đã trả lời rất nhiều thông tin. – Ken
+1 Để cung cấp câu trả lời chính xác ngoài câu trả lời khác không chính xác nhưng không hoàn toàn không đầy đủ. –
Là một sang một bên: minigl là cho động cơ 1 trận động đất, mà HL1 sử dụng ... – Goz