Các tập quán của rasterization phần mềm trong các công cụ trò chơi hiện đại là gì?


9

Tôi đang tham gia một khóa học Đồ họa máy tính trong quý này. Một trong những dự án phòng thí nghiệm của chúng tôi là về rasterization phần mềm.

Bây giờ tôi đang lên kế hoạch đề xuất dự án và suy nghĩ về cách làm cho nó hữu ích cho những người khác trong phát triển trò chơi đương đại.

Sau một số tìm kiếm ngắn gọn, tôi đã học được một kỹ thuật gọi là Phần mềm ngăn chặn phần mềm. Nó thực hiện rasterization phần mềm trên các bộ đệm của các độ phân giải khác nhau. Và chúng ta có thể truy vấn tắc bằng cách sử dụng bộ đệm z phân cấp.

Câu hỏi của tôi : các cách sử dụng rasterization phần mềm trong các công cụ trò chơi hiện đại bên cạnh Culling Loại trừ phần mềm là gì?

Câu trả lời:


4

Theo hiểu biết của tôi, Software Ocinating Culling (mà bạn đã đề cập), gần như là thứ duy nhất mà trình rasterizer phần mềm vẫn sẽ được sử dụng. Procworld sử dụng một kỹ thuật tương tự để hiển thị các môi trường voxel khổng lồ của nó.

Hầu hết các phương pháp loại bỏ khác như loại bỏ bực bội đều hoạt động trên CPU, nhưng, để tuân theo ví dụ, thử nghiệm chống lại sự thất vọng xảy ra ở cấp độ đối tượng, có thể là với hộp giới hạn căn chỉnh trục (AABB). Thử nghiệm giao cắt này đơn giản hơn nhiều so với sử dụng trình rasterizer phần mềm toàn diện.

Trong một số trường hợp nhất định, rasterization phần mềm có thể được sử dụng để chọn chuột của các đối tượng. Trong các công cụ trò chơi, điều này thường được giải quyết bằng cách sử dụng một công cụ vật lý và va chạm tam giác tia với lưới đơn giản hóa.

Với CPU không hoạt động trong khi chờ GPU trong các ứng dụng 3D tương tác hiện đại, người ta có thể nghĩ rằng có thể có ích khi sử dụng các chu trình nhàn rỗi này để kết xuất trên CPU bằng trình rasterizer phần mềm. Vấn đề ở đây, bên cạnh việc kết xuất trở nên phức tạp khủng khiếp và phức tạp, thường sẽ là băng thông. Hình ảnh được hiển thị trên CPU cần phải được chuyển sang GPU trước khi được hiển thị, điều này có thể hủy bỏ lợi ích.


0

Các trò chơi có khái niệm "sương mù chiến tranh" thường có lưới khả năng hiển thị để xác định trạng thái của sương mù chiến tranh tại mỗi địa điểm. Rasterization đôi khi được sử dụng để sửa đổi sương mù của trạng thái chiến tranh cho các hình dạng cụ thể trên lưới.

Chẳng hạn, sử dụng một khả năng cho thấy một vòng tròn của bản đồ với bán kính cụ thể hoặc có lẽ là thứ gì đó cho thấy một hình vuông.

Không nghiêm ngặt liên quan đến đồ họa, nhưng chắc chắn là việc sử dụng rasterization trong các trò chơi hiện đại và một kỹ thuật mà tôi đã thấy được sử dụng trong RTS.

Dữ liệu dựa trên lưới khác trong các trò chơi có thể sử dụng rasterization cho các tình huống tương tự.


-2

Rasterization là một chủ đề lớn với nhiều phần và tôi không phải là lập trình viên động cơ, nhưng tôi sẽ cố gắng hết sức để đưa ra một số loại tổng quan (đây sẽ là một danh sách hoàn chỉnh!).

Một số thứ rất cơ bản, lowlevel bao gồm:

  • Loại bỏ Frustrum: loại bỏ mọi thứ bên ngoài sự thất vọng của máy ảnh (nghĩ về nó như khu vực xem của máy ảnh).
  • Backface culling: vứt bỏ mọi đa giác không hướng đến máy ảnh.
  • Thuật toán của họa sĩ: vẽ các vật thể theo thứ tự khoảng cách của chúng với máy ảnh, bắt đầu với các vật ở xa, sau đó đi về phía máy ảnh.

Nhiều thứ được sử dụng trong các trò chơi bao gồm những thứ như:

  • T shipation : thực sự khá giống LOD (xem bên dưới), nhưng giờ đây, các Phiên bản DirectX mới nhất được giới thiệu là tàu, cung cấp phân chia hoặc giảm lưới tự động. Điều này mang lại hiệu suất đồ họa lớn, bởi vì bạn có thể nhận được các polys nếu bạn cần chúng và loại bỏ chúng nếu bạn không muốn chúng nữa.
  • LOD : Một hệ thống mức độ chi tiết thay thế lưới của một đối tượng dựa trên khoảng cách giữa đối tượng và máy ảnh. ví dụ, nhân vật của bạn có ba mắt lưới: một với 10.000, một với 5.000 và một với 1.000 polys. Nếu bạn ở ngay trước mặt anh ta, lưới độ phân giải cao (10.000 polys) sẽ hiển thị, nếu bạn di chuyển ra xa, sau 100m, ký tự được thay thế bằng lưới trung bình và sau 100m nữa, nó được thay thế bằng lưới có độ phân giải thấp. Thay vì thay thế lưới, bạn có thể giảm nó, nhưng điều này sẽ phức tạp hơn để viết mã.
  • phân vùng không gian nhị phân : không gian được chia thành hai khối. điều này sẽ được lặp lại cho đến khi bạn đạt được mục tiêu của mình, ví dụ cho đến khi không gian chỉ chứa các hình ảnh nên được vẽ trên màn hình
  • Cổng và ô : (còn gọi là loại bỏ Cổng thông tin) được sử dụng trong các cảnh trong nhà và / hoặc game bắn súng góc nhìn người thứ nhất. Khung cảnh được chia thành các ô (ví dụ: các phòng của một tòa nhà) được kết nối với các cổng ném (ví dụ: cửa ra vào). bạn có thể đặt cổng được mở và đóng.

Giả sử bạn có hiểu biết cơ bản về đường ống đồ họa, tôi đã cố gắng tập trung vào rasterization. bạn cũng có thể xem ánh sáng và bóng hoặc những thứ khác ..

Chúng chỉ bao gồm một vài công nghệ có thể có để đưa vào dự án của bạn. vì tôi không đủ danh tiếng trên stackexchange, tôi không thể cung cấp nhiều liên kết, nhưng bạn sẽ tìm thấy tất cả những thứ đó trong google :)


2
Câu hỏi là về rasterization phần mềm (đọc: CPU). Một số thông tin bạn đưa ra là về rasterization nói chung, một số kỹ thuật - trong cuốn sách của tôi - không liên quan gì đến rasterization cả. Bạn có thể vui lòng làm rõ trong câu trả lời của bạn về cách các kỹ thuật sử dụng hoặc hưởng lợi từ việc rasterization phần mềm?
David Kuri
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.