Megatexture hoạt động như thế nào?


21

Tôi đã suy nghĩ về việc phát triển một công cụ nhỏ không chỉ để phát triển các trò chơi thử nghiệm nhỏ mà còn là cơ sở để thử nghiệm các kỹ thuật kết xuất khác nhau và những thứ tương tự. Ngay bây giờ tôi đã suy nghĩ rất nhiều về cách xử lý họa tiết và vấp ngã trên megatexture, nhưng đây là một điều hơi khó hiểu. Có nhiều ý kiến ​​cho rằng nó tốt hơn cách tiếp cận truyền thống là có một loạt các kết cấu xung quanh và tải chúng khi cần, nhưng làm thế nào để megatexture tránh điều này, tôi đã đọc xung quanh rằng họ sử dụng phát trực tuyến và bạn chỉ có thể truyền phát bit và các phần của nó trái ngược với việc tải từng kết cấu riêng lẻ, nhưng làm thế nào để cung cấp hiệu suất tốt hơn và đó không phải là một hình thức khác?

Làm thế nào để chúng ta lấy mẫu một kết cấu như vậy khi trong một shader, chúng ta có truyền một phần của nó vào bộ nhớ sau đó làm việc với nó không. Tôi đã xem các video mới nhất của Rage và kết cấu trông rất tuyệt, nhưng đó chỉ là kết quả của các nghệ sĩ vĩ đại hay công nghệ phát huy tác dụng.

Tóm lại, nó hoạt động như thế nào, tại sao nó tuyệt vời và làm thế nào tôi có thể làm điều gì đó tương tự.

Câu trả lời:


15

Ý tưởng cơ bản của kết cấu mega là việc sử dụng một tập bản đồ kết cấu nơi bạn đóng gói tất cả các kết cấu khác nhau của bạn thành một bản lớn và sử dụng tia cực tím để lập chỉ mục vào hình ảnh này. Heuristic tốt là cần thiết để biết phần nào của kết cấu bạn cần truyền phát từ đĩa dựa trên những gì bạn nhìn thấy trên màn hình. Ưu điểm là bạn có thể có kết cấu hoàn toàn độc đáo trên toàn thế giới trò chơi và chỉ giữ dữ liệu hiển thị trong RAM. Một hệ thống truyền phát và bộ nhớ đệm tốt là cần thiết để làm cho giá cả phải chăng này.

Tôi khuyên bạn nên xem qua tài liệu trên trang này để biết thêm thông tin chi tiết về một cách tiếp cận: http://silverspaceship.com/src/svt/


4

Kiểm tra clipmapping để triển khai phần cứng SGI có sẵn.

Gần đây Megatexture đang được sử dụng làm tên pr cho Hoạ tiết ảo thưa thớt (SVT)

SVT hiển thị chế độ xem camera độ phân giải nhỏ, lưu ý kết cấu và mipmap nào sẽ cần thiết. Sau đó, một vấn đề thường xuyên của CPU sẽ tải vào hệ thống đĩa để đưa các kết cấu / mip đó vào bộ nhớ (nếu không có trong bộ nhớ) và sau đó đoạn kết cấu được tải được đặt vào một phần của tập bản đồ kết cấu lớn (thường là các đoạn có kích thước 128x128)

Khi các khối kết cấu được đưa vào, một kết cấu chuyển hướng (bản đồ trang ảo) được cập nhật, lấy một mô hình yêu cầu họa tiết và chuyển hướng nó đến một phần cụ thể của kết cấu lớn nơi nó thực sự được lưu trữ.


Điều đó giải thích khá nhiều. Tôi đã tự hỏi, nếu chỉ có phát trực tuyến đang diễn ra, làm thế nào họ quản lý để truyền các khối kết cấu khổng lồ đó, trong ổ cứng hoặc đĩa đủ nhanh để sử dụng, câu trả lời bản đồ trung gian khá độc đáo. Ngoài ra bây giờ tôi có thể thấy lý do tại sao nó hiệu quả hơn bộ nhớ mà các phương pháp truyền thống. Tôi sẽ tìm xung quanh để biết thêm chi tiết về SVT (liên kết của Flawe trông giống như một điểm khởi đầu tốt cho điều đó)
Daemoniorum

1

Bạn có thể nghĩ về Megatexture như một kết cấu "phát trực tuyến". Một hình ảnh kết cấu lớn, đầy đủ chi tiết (đặt đơn giản) được đọc dưới dạng các phần của nó là cần thiết để được hiển thị. Tôi chắc chắn rằng có rất nhiều điều hơn thế nữa, chẳng hạn như LOD / mipmapping, tải và quản lý tài nguyên trong số những điều hiển nhiên.

Wikipedia có một bài viết về nó.


2
Tôi đã đọc bài viết trước đây, nhưng nó có một chút chi tiết. Có một chút khó khăn để có được chi tiết thực tế về kỹ thuật đó. Tôi ước ID làm một tờ giấy về nó ...
Daemoniorum
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.