Tôi đã đọc rất nhiều câu hỏi thú vị khi hỏi về XNA so với OpenTK so với SlimDX so với OpenGL so với DX và trong khi thật sự hữu ích để có được những ấn tượng chung khác từ 100 giờ sử dụng các API / Khung khác nhau này, tôi đã không thấy bất kỳ câu trả lời nào xác định rõ phạm vi của mỗi là gì.
Về mặt lý thuyết, người ta hiểu sự khác biệt giữa API, Engine và Framework là gì, nhưng đối với một người có kinh nghiệm hạn chế với các hệ thống đồ họa, thì khó có thể thấy những gì ở khía cạnh thực tế rơi vào mỗi loại. (Không được thực hiện dễ dàng hơn bởi tất cả các phần trùng lặp! Ví dụ: XNA triển khai đường ống nội dung như một phần không thể thiếu)
Lấy ví dụ về việc loại bỏ khuôn mặt - XNA 'làm' điều này trong nền mà không cần lập trình viên cần phải suy nghĩ về nó, nhưng nó xảy ra ở đâu? Có chức năng 'cull face' trong DX phải được gọi, hoặc có lẽ ở trên trong XNA không? Hoặc GPU hoặc trình điều khiển của nó làm điều đó?
Tôi đã đọc trong tài liệu cho một trong những dự án được quản lý (thật khó chịu là tôi không thể nhớ được) về việc khó thực hiện mã kết xuất hiệu quả và cách dự án đó trừu tượng hóa nó. Điều này làm tôi lo lắng một chút và khiến tôi tự hỏi không biết XNA đang làm gì bên dưới Draw IndexedPrimologists sẽ phải được thực hiện thủ công nếu khung công tác được để lại cho thứ gì đó linh hoạt hơn.
XNA làm gì trong nền, khi kết xuất khối đó, API được quản lý sẽ không?