Di OpenGL, apa itu render "keadaan nol"?


10

Baru-baru ini di sebuah wawancara kerja, saya menyebutkan bahwa saya belajar sendiri OpenGL modern dan rendering dengan objek vertex buffer karena universitas saya hanya mengajarkan pipeline fungsi tetap dengan rendering mode langsung pada saat itu. Pewawancara sebentar menyela saya untuk mengatakan bahwa VBO secara efektif telah digantikan oleh sesuatu yang disebut "rendering keadaan nol" dan kemudian biarkan saya melanjutkan.

Saya lupa bertanya kemudian tentang apa artinya itu, karena kami dengan cepat pindah ke subjek yang berbeda dan pewawancara sudah kehabisan waktu di akhir karena jadwal yang sibuk.

Kemudian, saya mencari secara online "OpenGL zero state" dan "zero state rendering" tanpa hasil yang tampaknya relevan, sebagian besar hanya hal-hal tentang keadaan OpenGL.

Organisasi yang dimaksud adalah sangat berbasis penelitian, jadi apakah ada kemungkinan bahwa itu adalah perpanjangan dengan dukungan saat ini sedikit, atau bahwa terminologi yang digunakan bervariasi karena sifatnya yang terdepan?


Apakah Anda yakin itu "nol negara", atau mungkinkah ada sesuatu yang lain dengan kata "nol" di dalamnya? Dugaan saya adalah bahwa dia berbicara tentang nol overhead: gdcvault.com/play/1020791
Lasse

Ada peluang bagus bahwa itu bisa menjadi 'nol dengar', dari membaca sepintas lalu video, meskipun saya 100% yakin kata-katanya yang sebenarnya adalah 'nol keadaan'. Asumsi saya adalah bahwa dia mengacu pada satu fitur baru yang digunakan untuk panggilan draw, sebagai lawan untuk mengoptimalkan apa yang sudah tersedia. Apakah 'nol overhead' adalah cara baru dan disarankan untuk menggambar sesuatu di OpenGL?
usm

6
Mungkinkah itu "atribut nol"? Render atribut-nol (sering disebut "rendering tanpa atribut") memang menggantikan VBO.
Trevor Powell

5
Pertanyaan ini bukan di luar topik, pertanyaan terminologi benar-benar diizinkan.

1
Saya cukup yakin bahwa apa yang dibicarakan pewawancara Anda adalah apa yang lebih dikenal sebagai Bindless Rendering. Singkatnya, ini menghilangkan kebutuhan untuk mengikat objek individu ke pegangan global untuk mengubah atau menggunakannya. Anda harus mendapatkan hasil pencarian yang lebih baik.
kevintodisco

Jawaban:


9

Pewawancara Anda sedang berbicara, dengan kata-katanya sendiri, tentang API tanpa batas . nVidia membuat presentasi bagus baru-baru ini tentang semua itu, yang mereka sebut akses negara langsung ( 1 , 2 ). Ini tidak menggantikan VBO.


EDIT : Sebenarnya, mari kita pertimbangkan saran Trevor Powell:

Ini sepertinya beberapa orang pasti dapat memutuskan untuk menjatuhkan VBO, mendukung rendering atribut-kurang, menggunakan shader geometri mengambil data atau tekstur yang seragam, seperti yang disebutkan dalam artikel ini .

Saya dapat melihat bagaimana seseorang dapat memutuskan untuk mengganti mesinnya menjadi kurang attirubte penuh, tetapi saya tidak akan memaafkan langkah seperti itu jika saya berada di tim: Alasannya — jika Anda membaca ikhtisar pipa ini dengan cermat — adalah karena dengan atribut- kurang, cache FIFO vertex menjadi tidak dapat digunakan karena dilewati sama sekali. Tanpa atribut maka menghilangkan peluang optimisasi yang bagus.

Ini tentu saja memerlukan pembandingan, tetapi murni a-apriori, kedengarannya seperti ide buruk untuk solusi generik dan serba guna.

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.