DirectX Raytracing (DXR) Tier 1.1 Các tính năng mới có thể hoạt động với chỉ hỗ trợ trình điều khiển mà không cần sửa đổi phần cứng nặng

Ray Tracing chắc chắn là một tính năng mà các game thủ, đặc biệt là với các card đồ họa cao cấp của NVIDIA và AMD, rất háo hức chờ đợi. Các nhà sản xuất GPU hàng đầu, bao gồm cả Intel, đang tích cực xây dựng phần cứng của họ để hỗ trợ tính năng hiển thị hiệu ứng ánh sáng và bóng tối một cách chân thực dựa trên các quy luật vật lý trong thế giới thực, đồng thời mang lại hình ảnh siêu thực và sống động.

Trong khi đó, Microsoft đang đảm bảo hệ sinh thái Windows OS phù hợp như một nền tảng lý tưởng để chơi các trò chơi cao cấp. Nền tảng DirectX của công ty, từ lâu đã trở thành tiêu chuẩn hàng đầu cho trò chơi trên máy tính để bàn, đang được tinh chỉnh để hỗ trợ nguyên bản và thậm chí tăng cường ‘Truy tìm tia thời gian thực’. Trên thực tế, DirectX Raytracing (DXR) Tier 1.1 là tiêu chuẩn mới nhất hỗ trợ một loạt các tính năng mới. Một số tính năng thú vị mà dò tia theo thời gian thực có thể hỗ trợ trong tính năng gần bao gồm dò tia nội tuyến, Cuộc gọi DispatchRays () qua ExecuteIndirect (), Phát triển các đối tượng trạng thái thông qua AddToStateObject (), GeometryIndex () trong raytracing shader, và nhiều hơn nữa. Hãy cùng xem xét một số tính năng mới mà DirectX 12 dành cho Windows 10 sẽ hỗ trợ cho việc dò tia.

Truy tìm tia nội tuyến:

Một hình thức dò tia thay thế, dò tia nội tuyến không sử dụng bất kỳ bảng đổ bóng động hoặc bảng đổ bóng riêng biệt nào. API cho tính năng này ẩn quyền truy cập vào cấu trúc tăng tốc (ví dụ: chuyển ngang cấu trúc dữ liệu, hộp, giao điểm tam giác). Điều này về cơ bản để nó cho phần cứng / trình điều khiển. Điều thú vị là tất cả các mã ứng dụng cần thiết để xử lý cả số lần truy cập ứng viên được liệt kê và kết quả của một truy vấn (ví dụ: nhấn và bỏ lỡ) có thể tự chứa trong bộ đổ bóng. RayQuery.

Theo dõi tia nội tuyến cung cấp cho các nhà phát triển tùy chọn để thúc đẩy nhiều quy trình dò ​​tia hơn, trái ngược với việc giao hoàn toàn lịch trình công việc cho hệ thống. Không cần phải nói thêm, việc tối ưu hóa các quy trình này khá hữu ích cho các nhà phát triển đang chen lấn với nhiều bóng tối. Hơn nữa, các nhà phát triển hoàn toàn có quyền tự do chuyển đổi động sang dạng nội tuyến cho các tia đệ quy đơn giản.

Cuộc gọi DispatchRays () qua ExecuteIndirect ():

Tính năng này cho phép các trình tạo bóng trên GPU tạo ra một danh sách DispatchRays () cuộc gọi. Chúng bao gồm các tham số riêng lẻ như số luồng, cài đặt bảng đổ bóng và các cài đặt tham số gốc khác. Khía cạnh tốt nhất của tính năng này là toàn bộ danh sách có thể được thực thi mà không cần quá trình thực hiện một vòng quay trung gian trở lại CPU.

Tất cả các tình huống chuẩn bị raytracing hoạt động trên GPU và sau đó ngay lập tức tạo ra nó, sẽ được hưởng lợi vô cùng từ tính năng này. Không cần phải nói thêm, tính năng này sẽ giúp ích rất nhiều cho một số kịch bản raytracing thích ứng như chọn lọc, sắp xếp, phân loại và sàng lọc dựa trên bóng đổ.

Phát triển các đối tượng trạng thái thông qua AddToStateObject ():

Một tính năng tối ưu hóa, tính năng mới này cố gắng giảm bớt các luồng xử lý lãng phí. Ngày nay, khá nhiều ứng dụng và quy trình tạo ra một đường ống dò tia có dân số đầy đủ, điều này gây lãng phí nhiều tài nguyên và tạo gánh nặng cho hệ thống. Hiện tại, thời gian chạy D3D12 vẫn phân tích cú pháp đối tượng trạng thái đầy đủ đang được tạo từ các khối xây dựng.

Mặc dù nó được thực hiện để xác minh tính đúng đắn, với AddToStateObject (), một đối tượng trạng thái mới có thể được thực hiện bằng cách thêm bộ đổ bóng vào một đối tượng trạng thái bộ đổ bóng hiện có. Không cần thêm, chi phí CPU sẽ chỉ tỷ lệ thuận với dữ liệu được thêm vào.

GeometryIndex () Trong Ray Tracing Shader:

Tính năng này cho phép các shader phân biệt hình học bên trong các cấu trúc gia tốc mức dưới cùng. Trước đó, các hình có thể được phân biệt bằng cách thay đổi dữ liệu trong các bản ghi bảng đổ bóng cho từng hình, nhưng với phương pháp mới, ứng dụng được giải phóng khỏi gánh nặng. Hơn nữa, nếu tất cả các hình đều chia sẻ cùng một bộ đổ bóng, ứng dụng có thể chọn đặt MultiplierForGeometryContributionToHitGroupIndex tham số cho TraceRay () 0.

Điều này về cơ bản sẽ đảm bảo chỉ số hình học không còn ảnh hưởng đến tính toán lập chỉ mục bảng chức năng cố định của bộ đổ bóng. Tuy nhiên, nếu cần hoặc muốn, các trình tạo bóng có thể sử dụng GeometryIndex () để lập chỉ mục vào cấu trúc dữ liệu riêng của ứng dụng.

Ngoài các tính năng nói trên, DirectX Raytracing (DXR) Tier 1.1 cũng bao gồm RAY_FLAG_SKIP_TRIANGLES và RAY_FLAG_SKIP_PROCEDURAL_PRIMITIVES cờ. Trong khi các cờ này có sẵn cho các lệnh gọi raytracing riêng lẻ, chúng cũng có thể được khai báo toàn cầu thông qua cấu hình đường ống raytracing.

Rõ ràng là Microsoft đang cố gắng tối ưu hóa DirectX 12 cho các trò chơi đồ họa chuyên sâu. Hơn nữa, với tính năng dò tia hứa hẹn là một trong những tính năng quan trọng nhất cho các trò chơi và game thủ cao cấp, công ty đang đảm bảo rằng hệ thống, CPU và GPU được sử dụng tối ưu với mức dư thừa tối thiểu.

Facebook Twitter Google Plus Pinterest