Bagaimana cara kerja Megatexture?


21

Saya telah berpikir tentang mengembangkan mesin kecil tidak hanya untuk mengembangkan game eksperimental kecil, tetapi juga berfungsi sebagai dasar untuk menguji berbagai teknik render dan hal-hal seperti itu. Saat ini saya telah banyak berpikir tentang bagaimana menangani tekstur dan menemukan megatexture, tetapi ini adalah sesuatu yang agak membingungkan. Ada banyak pembicaraan tentang hal itu menjadi lebih baik daripada pendekatan tradisional untuk memiliki banyak tekstur di sekitar dan memuatnya sesuai kebutuhan, tetapi bagaimana megatexture menghindari ini, saya telah membaca bahwa mereka menggunakan streaming dan Anda dapat melakukan streaming bit dan potongan itu sebagai lawan memuat masing-masing tekstur secara individual, tetapi bagaimana itu menawarkan kinerja yang lebih baik, dan bukankah itu hanya bentuk lain dari pengolahan?

Bagaimana kita mencicipi tekstur seperti itu ketika dalam shader, kita mengalirkan sebagian ke dalam memori kemudian bekerja di atasnya. Saya telah melihat video-video terbaru dari Rage dan teksturnya memang terlihat hebat, tetapi apakah itu hanya hasil dari seniman-seniman hebat atau apakah teknologi ikut berperan.

Singkatnya, bagaimana cara kerjanya, mengapa itu bagus dan bagaimana saya bisa melakukan hal serupa.

Jawaban:


15

Ide dasar tekstur mega adalah penggunaan atlas tekstur tempat Anda mengemas semua tekstur berbeda menjadi besar dan menggunakan UV untuk mengindeks ke dalam gambar ini. Heuristik yang baik diperlukan untuk mengetahui bagian mana dari tekstur yang Anda butuhkan untuk streaming dari disk berdasarkan apa yang Anda lihat di layar. Keuntungannya adalah Anda dapat memiliki tekstur yang benar-benar unik di seluruh dunia game dan hanya menyimpan data yang terlihat dalam RAM. Sistem streaming dan caching yang baik diperlukan untuk membuat ini terjangkau.

Saya sarankan membaca materi di halaman ini untuk info lebih rinci tentang satu pendekatan: http://silverspaceship.com/src/svt/


4

Periksa pemetaan klip untuk implementasi perangkat keras SGI yang sudah ada sebelumnya.

Baru-baru ini Megatexture digunakan sebagai nama pr untuk Sparse Virtual Texturing (SVT)

SVT memberikan tampilan kamera resolusi kecil, mencatat tekstur dan mipmap mana yang akan dibutuhkan. Kemudian masalah rutin CPU memuat ke sistem disk untuk membawa tekstur / potongan chip ke dalam memori (jika tidak dalam memori) dan kemudian potongan tekstur yang dimuat ditempatkan ke bagian atlas tekstur besar (biasanya dalam potongan katakan 128x128)

Ketika potongan tekstur dibawa, tekstur pengalihan (peta halaman virtual) diperbarui yang mengambil model tekstur yang diperlukan dan mengarahkannya ke bagian tertentu dari tekstur besar di mana sebenarnya disimpan.


Itu menjelaskan sedikit. Saya bertanya-tanya, jika hanya ada streaming yang terjadi, bagaimana mereka dapat melakukan streaming potongan tekstur besar, baik dalam HDD atau disk yang cukup cepat untuk digunakan, atlas perantara menjawab dengan cukup baik. Saya juga sekarang dapat melihat mengapa lebih hemat memori daripada metode tradisional. Saya akan melihat-lihat untuk rincian lebih lanjut tentang SVT (tautan Flawe terlihat seperti titik awal yang baik untuk itu)
Daemoniorum

1

Anda dapat menganggap Megatexture sebagai semacam tekstur "streaming". Satu gambar tekstur yang sangat detail dan terperinci (disederhanakan) yang dibaca sebagai bagian dari itu perlu ditampilkan. Saya yakin ada banyak hal yang lebih dari itu, seperti LOD / pemetaan, pemuatan dan manajemen sumber daya di antara hal-hal yang jelas.

Wikipedia memiliki artikel tentang itu.


2
Saya sudah membaca artikel sebelumnya, tetapi sedikit detail. Agak sulit mendapatkan perincian aktual tentang teknik itu. Saya berharap ID membuat kertas itu ...
Daemoniorum
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.