Jika gambar ditampilkan untuk sudut tampilan yang besar (mis. TV yang sangat besar atau headset VR), pemirsa tidak dapat benar-benar fokus pada keseluruhan gambar, hanya sebagian saja. (Sebenarnya, ini adalah kasus untuk layar berukuran biasa juga.)
Dikombinasikan dengan cara untuk melacak mata pemirsa (yang sebagian besar layak di VR kurasa), Anda secara teoritis dapat mengeksploitasi ini dan membuat grafik menjauh dari fokus pemirsa dengan semakin sedikit detail dan resolusi, mendapatkan kinerja, tanpa kehilangan kualitas yang dirasakan.
Apakah ada teknik untuk ini tersedia atau sedang dikembangkan saat ini?
opengl
directx
rendering
virtual-reality
Bart van Heukelom
sumber
sumber
Jawaban:
Ada beberapa contoh efek yang Anda bicarakan di banyak gim. Pertama, ada Depth of field , yang membuat objek dari kejauhan terlihat buram, seperti halnya kamera memfokuskan pada hal-hal yang hanya dekat dengannya, seperti dalam contoh ini. Anda dapat menjelajahi lebih banyak sampel terkait dengan ini dalam paket DirectX SDK - mereka juga memiliki kode sampel di sana. Untuk OpenGL, Anda akan mendapatkannya di internet jika Anda mencari.
Hal kedua yang mungkin ingin Anda lihat adalah apa yang mungkin dikenal sebagai Geometry MipMaping atau Progressive Meshes yang, seperti namanya, mirip dengan pemetaan tekstur mip, tetapi untuk geometri. Jumlah poligon dalam jaring berkurang karena objek semakin menjauh dari kamera. Ini membantu dalam meningkatkan kinerja. Di D3D, ada fungsi yang akan membantu dalam menghasilkan jaring Progresif secara otomatis. Ini dia:
Berikut ini contohnya:
EDIT: Pertimbangkan gambar berikut-
Ini adalah frustum pemusnahan kamera. Garis yang melewati tengah adalah vektor LookAt. Sekarang, dengan asumsi pemain akan selalu ingin fokus di tengah layar, Anda menentukan sudut x. Setiap objek yang akan diposisikan pada sudut lebih dari x yang diputuskan akan memiliki rendering resolusi rendah, dan yang berada di dalam sudut akan dirender dengan detail. Seperti ini, objek di tengah layar akan lebih detail daripada yang ada di samping. Karena jika pemain tidak melihat ke tengah, maka sesuaikan saja garis tengah ke arah di mana pemain melihat. (atau mungkin memutar seluruh kamera ke arah itu).
sumber
Ya, Foveated Rendering menggunakan pelacakan mata untuk hanya menampilkan apa yang dilihat pengguna dengan sangat rinci. Yang lainnya, dapat dirender dalam detail yang lebih rendah.
Meskipun cukup jelas ketika melihat tangkapan layar seperti ini, dilaporkan tidak terlihat oleh pengguna di VR.
Headset utama yang ada tidak menyertakan pelacakan mata (belum), tetapi ada beberapa solusi after-market untuk menambahkan pelacakan mata. Selanjutnya diperlukan sedikit pemrosesan tambahan untuk proses rendering. Namun manfaatnya signifikan. Dengan render yang diimplementasikan, hanya persentase kecil FOV yang perlu dirender dalam detail tinggi, ini dapat menghasilkan frame rate yang jauh lebih tinggi. Angka yang tepat tergantung pada implementasinya.
Lebih jauh, ini bahkan tidak terbatas pada headset VR. Ini dapat digunakan pada monitor desktop juga (dengan tambahan pelacakan mata dan efek yang lebih terbatas).
sumber
Memperluas jawaban Byte56, ya hal semacam ini sedang dikembangkan di industri. Perbaikan Foveated Rendering adalah teknik yang digunakan oleh Valve dalam demo perbaikan robot mereka ( https://youtu.be/DdL3WC_oBO4?t=769 ) dan dalam beberapa game komersial (Resident Evil VII untuk PSVR terlintas dalam pikiran). Fixed Foveated Rendering tidak menggunakan pelacakan mata tetapi ini berarti ia bekerja dengan baik dengan versi headset VR saat ini yang saat ini tidak memiliki kemampuan pelacakan mata apa pun. Meskipun saat ini Vive seharusnya mendapatkan kit upgrade yang eye-tracking sehingga Anda dapat melihat beberapa judul AAA VR memanfaatkannya.
Anda tidak akan menemukan banyak sampel kode yang tersedia terkait hal semacam ini tetapi Nvidia memang memiliki beberapa ekstensi perangkat keras yang didokumentasikan dengan baik. Multi-resolusi dijelaskan dengan cukup baik tetapi merupakan fitur yang terkait dengan perangkat keras mereka.
sumber