Trái ngược với CPU hoặc phần mềm kết xuất tôi giả sử?
Nhìn chung, tất cả các kết xuất hiện tại đều dựa trên GPU, xem như bạn sẽ sử dụng OpenGL hoặc Direct X?
Ai đó có thể cho tôi một số thông tin ở đây, không thể tìm thấy câu trả lời phù hợp?
Trái ngược với CPU hoặc phần mềm kết xuất tôi giả sử?
Nhìn chung, tất cả các kết xuất hiện tại đều dựa trên GPU, xem như bạn sẽ sử dụng OpenGL hoặc Direct X?
Ai đó có thể cho tôi một số thông tin ở đây, không thể tìm thấy câu trả lời phù hợp?
Câu trả lời:
Như bạn đã biết rõ kết xuất GPU là gì ... hãy để tôi trả lời những gì bạn dường như đang hỏi.
Theo truyền thống, kết xuất phần cứng đã mang một sự kỳ thị là rất phức tạp. Điều này phần lớn là do thiết kế các giao diện lập trình ứng dụng (API) chưa được định hướng tốt để che giấu sự phức tạp; đó là, đường cong học tập đã được dốc. Một phần cũng là do sự hiểu biết rằng việc viết các ứng dụng 3D - mà các API này được định hướng rất nhiều - phức tạp hơn nhiều so với việc viết các ứng dụng 2D. Giao diện phức tạp, tôi đang đề cập đến các giao diện như OpenGL và DirectX. Re 3D vs 2D, tôi đang đề cập đến toán học và hình học xây dựng các cảnh 3D, so với sự đơn giản mà tâm trí không được đào tạo có thể tiếp cận các vấn đề 2D.
Tuy nhiên, trong những năm gần đây, không chỉ các tài liệu học tập trở nên sẵn có hơn rất nhiều, mà còn, nhiều thư viện bao gồm các phức tạp cơ bản của các giao diện này đã trở nên có sẵn và đã hạ thấp các rào cản gia nhập. Tất cả những điều này đã đưa trở lại vào một chu kỳ quan tâm ngày càng tăng do tầm quan trọng ngày càng tăng của trực quan hóa, giao diện người dùng bóng bẩy và hiệu suất trên các thiết bị có công suất thấp.
Vì vậy, kết xuất phần mềm và kết xuất 2D là điểm khởi đầu tốt và là khu vực trọng tâm cho những người mới làm quen với đồ họa và / hoặc muốn tạo ra một sản phẩm trong đó kết xuất không mất quá nhiều thời gian có sẵn cho một dự án. Ít nhất là liên quan đến 2D, điều này vẫn được áp dụng; công nghệ phần lớn đã che lấp khoảng trống trong việc đưa kết xuất 2D lên GPU.
Có một số câu trả lời thực sự tốt ở đây, vì vậy chỉ để bổ sung chúng.
Một động lực chính đằng sau kết xuất phần mềm là khả năng. Điều này đã được đề cập đến trong một trong các câu trả lời, nhưng tôi sẽ phải thực hiện một điểm đối lập: phần mềm vẽ thực sự có thể được nhiều hơn khả năng hơn render phần cứng, không ít.
Với phần cứng, bạn thường bị giới hạn ở khả năng của chính phần cứng, mặc dù OpenGL cho một người có khả năng mô phỏng phần mềm rất nhiều thứ có thể không tồn tại trong phần cứng. Điều đó có nghĩa là nếu bạn cố gắng sử dụng Tính năng X nhưng phần cứng không hỗ trợ, một trong hai điều sẽ xảy ra: hoặc bạn sẽ quay lại mô phỏng phần mềm (kịch bản OpenGL điển hình) hoặc bạn không nhận được sử dụng nó ở tất cả (kịch bản D3D điển hình).
Với phần mềm kết xuất, bạn có thể tự viết mã. Bạn có thể thao tác mọi thứ và có toàn quyền kiểm soát những gì xảy ra xuống mức pixel. Để đưa ra một ví dụ về vụ nổ từ quá khứ, Quake đã tạo các pixel shader được triển khai trong phần mềm vào năm 1996, vào thời điểm mà các thẻ 3D (lúc đó chúng không được gọi là "GPU") có thể tạo ra vài chục hình tam giác có họa tiết.
Đây cũng là trường hợp tương tự với các GPU hiện tại, nhưng vẫn có những phần quan trọng của đường ống đồ họa được thể hiện dưới dạng chức năng cố định (hoặc thậm chí không được phơi bày).
Phần mềm kết xuất có thể mở rộng tốt hơn. Chỉ tương đối gần đây chúng ta đã thấy các thiết lập đa GPU trở nên thực sự khả thi, nhưng phần mềm có thể mở rộng trên nhiều lõi CPU trong nhiều máy chủ. Bạn có thể có toàn bộ trang trại máy chủ dành riêng cho việc này và các trang trại kết xuất chuyên nghiệp vẫn sẽ sử dụng kết xuất phần mềm.
Phần mềm có thể phơi bày các mô hình kết xuất khác nhau. Phần cứng hiện tại rất tập trung xung quanh mô hình tam giác / đỉnh / đoạn / rasterization; đó là một trường hợp chọn một thứ và tối ưu hóa nó cho đến khi nó hét lên vì thương xót. GPU vẫn là một lựa chọn kém cho ví dụ dò tia, thường được triển khai trong phần mềm.
Tất nhiên, khi nói đến việc so sánh trực tiếp, GPU sẽ đánh bại phần mềm vào bất kỳ ngày nào trong tuần - miễn là chúng ta so sánh các khu vực nơi GPU mạnh hơn. Nhưng điều đó không có nghĩa là họ mạnh hơn ở mọi khu vực. Mặc dù vậy, và cho các mục đích của trang SE này, sử dụng phần cứng nói chung là cách tốt nhất nhưng chỉ cần lưu ý rằng có những trường hợp sử dụng ngoài kia, nơi phần mềm cũng khả thi.
Kết xuất phần cứng hoặc GPU là, như bạn đã đoán bằng cách sử dụng đơn vị xử lý đồ họa (còn gọi là Thẻ video) để hiển thị hình ảnh. Ngược lại là kết xuất phần mềm nơi CPU được sử dụng.
Kết xuất phần mềm thường được sử dụng làm dự phòng khi không có GPU (phù hợp). Tuy nhiên, vì GPU là đơn đặt hàng có cường độ nhanh hơn nên hầu như không bao giờ có ích vì CPU thường sẽ không thể hiển thị hình ảnh trong thời gian thực. Kết xuất phần mềm rất hữu ích khi cần độ chính xác cao nếu công thức cực kỳ phức tạp được yêu cầu để hiển thị hình ảnh. Vì CPU là mục đích chung hơn nên GPU và do đó có nhiều khả năng hơn. Tuy nhiên, đối số này ngày càng ít có giá trị vì GPU ngày nay có thể xử lý các tác vụ ngày càng phức tạp hơn và không còn bị giới hạn chỉ là các phao 32 bit để thể hiện các con số.
Tôi nghĩ rằng đây là một câu hỏi thực sự tốt.
Những gì tôi có thể tưởng tượng là:
VRAM bị giới hạn nhiều hơn bộ nhớ RAM nói chung. Trong trường hợp kết xuất GPU - mọi kết cấu đều là vấn đề. Bạn có thể lưu trữ trung bình khoảng 4 đến 8 lần dữ liệu trong RAM so với VRAM. Tất nhiên kịch bản này giả định rằng không có hệ thống nào chịu trách nhiệm giải phóng / đẩy các kết cấu không sử dụng / yêu cầu từ / đến RAM / VRAM
Về mặt đa luồng, nó dễ dàng hơn nhiều khi bạn làm việc với kết xuất phần mềm - không cần chia sẻ bối cảnh
Nếu bạn đang thực hiện đồ họa 2D - thường thì hầu hết các khung đều mang theo sự đánh giá của Đánh giá hình chữ nhật bẩn - điều giải quyết nhiều vấn đề về hiệu năng.
Tuy nhiên, kết xuất bằng OGL / D3D mang lại hiệu năng và khả năng cao hơn rất nhiều. Shader có thể làm những điều thực sự tuyệt vời, gần như không thể với kết xuất phần mềm.
Nhưng các kỹ thuật như làm mờ, sử dụng colorkey, có cảm giác riêng của chúng như thể bạn ở cấp độ cơ sở, nguồn gốc của thế giới đồ họa máy tính.
Tôi nghĩ rằng ít nhất là tốt để biết về kết xuất phần mềm. Đó thực sự là một thế giới rất thú vị, không đề cập đến việc nó là gốc rễ của tất cả những gì chúng ta thấy ngày nay.