Sự khác biệt thực tế lớn nhất giữa BSP-Trees và các loại cây 3D khác là BSP-Trees có thể tối ưu hơn nhưng chỉ hoạt động trên hình ảnh tĩnh. Điều này là do BSP-Trees nói chung rất chậm để xây dựng, thường mất hàng giờ hoặc ngày cho một cấp độ trò chơi đô thị tĩnh điển hình. Hai (2) lý do chính mà BSP-Trees mất nhiều thời gian hơn để xây dựng là (a) chúng sử dụng các mặt phẳng phân tách không trục, mất nhiều thời gian hơn để tìm kiếm tối ưu, và (b) chúng chia nhỏ hình học trên các ranh giới trục. mặt phẳng phân chia chéo.
Các loại cây 3D khác (Octrees, Quadtrees, kd-tree, Bounding-Volume-Hierarchy) sử dụng khối lượng liên kết trục, và khối lượng (tùy chọn) được phép chồng lên nhau, vì vậy các đối tượng chứa không cần được cắt trên ranh giới khối lượng. Cả hai đều làm cho cây ít tối ưu hơn BSP-cây, nhưng nhanh hơn để xây dựng và dễ thay đổi hơn cho các đối tượng động.
ngoại suy những yếu tố này vào tình huống ... vùng
ngoài trời thường sử dụng cơ quan đại diện đất cao-field dựa, hoặc là heightmaps đơn giản hoặc kỹ thuật geo-mip-mapping phức tạp hơn như ROAM. Bản thân mặt đất không tham gia vào phân vùng không gian 3D, chỉ các vật thể được đặt trên mặt đất.
Thế giới có nhiều trường hợp hình học đơn giản và tương tự (nhà, cây, tiểu hành tinh, v.v.) thường sẽ sử dụng một cây không phải BSP (chẳng hạn như BVH), vì việc đặt hình học thành cây BSP nhân bản và tách hình dạng chi tiết cho mỗi trường hợp. Ngược lại, một lưới tĩnh tùy chỉnh lớn không có sự can thiệp, chẳng hạn như cảnh đô thị hoặc môi trường trong nhà phức tạp, thường sẽ sử dụng BSP-Tree để cải thiện hiệu suất thời gian chạy. Thực tế là BSP-Tree chia tách hình học trên các ranh giới nút là hữu ích để hiển thị hiệu suất, vì các nút BSP có thể được sử dụng như các lô kết xuất tam giác được sắp xếp trước. BSP-Tree cũng có thể được tối ưu hóa cho tắc nghẽn, tránh sự cần thiết phải vẽ các phần của BSP-Tree được biết là phía sau hình học khác.
Xem thêm: Octree vs BVH, Bounding Volume Hierarchy Tutorial, BSP Tutorial.
Nguồn
2014-10-22 21:40:01
Câu trả lời hay, mặc dù tôi không chắc chắn ý của bạn bằng cách "gửi" một đối tượng đến GPU thay vì các hình tam giác riêng lẻ. Bạn đang đề cập đến chế độ VBO vs ngay lập tức? Bởi vì điều đó có thể được thực hiện với cả hai cách tiếp cận tôi nghĩ ... – Aktau
@DavidJeske Câu trả lời đó là sáu tuổi. Một thời gian dài trong khoa học máy tính. Điều này có thể đã thay đổi ngay bây giờ. –
Nhận xét về việc vẽ chậm hơn với BSPs là sai. BSP được thiết kế để tối ưu hóa hình học tĩnh lớn. Ban đầu chúng được sử dụng để tối ưu hóa sự tắc nghẽn cho việc raster hóa phần mềm và từ đó cũng được sử dụng để tính toán trước các đợt vẽ cho việc rasterization phần cứng. BSPs không phù hợp khi có nhiều instancing, vì các đối tượng phải được instanced và được chia nhỏ thành BSP. BSP cũng có hại đối với các đối tượng động vì chúng quá chậm để xây dựng. –