Ada banyak bahasa pelindung yang dibangun di atas GLSL atau HLSL - masalah apa yang biasanya mereka pecahkan, dan kemajuan berharga apa yang mereka buat?

8

Wah, itu judul yang panjang.

Either way, saya mengajukan pertanyaan ini, karena saya suka memikirkan berbagai hal, dan terpikir oleh saya bahwa sebenarnya tidak ada lapisan open source yang sederhana di atas GLSL, bahkan jika hanya untuk menambahkan hal-hal sederhana seperti termasuk, atau fungsi yang biasa digunakan.

Sebagai semacam penelitian, saya mengajukan pertanyaan ini, karena kesadaran saya sendiri tentang bahasa seperti itu sangat kecil untuk sedikitnya - saya tahu bahasa shading bgfx, dan Unity's ShaderLab, tapi saya tidak benar-benar tahu apa yang mereka capai - atau mengapa - Menjadi pemula relatif untuk grafis komputer.

Atau, apa daftar keinginan Anda untuk bahasa bayangan seperti ini? Milik saya sejauh ini termasuk, beberapa kompatibilitas antara versi, input "tersembunyi" opsional yang memungkinkan dengan mudah mengakses tekstur pada offset piksel, atau ukuran gambar, dll. Dan mungkin melewati - untuk, katakanlah, gaussian blur dua lintasan.

Pikiran?

Llamageddon
sumber
4
Ini terdengar lebih seperti diskusi forum daripada pertanyaan spesifik. Situs ini berfungsi paling baik dengan pertanyaan yang dapat dijawab dengan satu jawaban faktual. Bagian "apa daftar harapan Anda" jelas tidak cocok untuk situs SE.
Dan Hulme
1
Anda dapat datang ke kotak cornroom ruang obrolan kami dan memulai diskusi
ratchet freak

Jawaban:

2

Saya pikir itu adil untuk mengatakan bahwa alasan ada begitu banyak variasi niche GLSL / HLSL / Cg / yang lainnya adalah karena tidak ada bahasa pemrograman juga tidak akan pernah menjadi satu ukuran cocok untuk semua alat. Masalah yang berbeda membutuhkan alat yang berbeda, jadi terkadang ada baiknya upaya mengembangkan alat yang dibuat khusus jika akan terbayar dalam jangka panjang.

Stock GLSL dengan sendirinya cukup banyak tidak dapat digunakan. Itu bahkan belum memperoleh banyak stabilitas di seluruh versi, jadi untuk program yang menargetkan lebih dari satu versi OpenGL, semacam preprocessing adalah suatu keharusan. HLSL sedikit lebih stabil di seluruh versi, tetapi sekali lagi, jika menargetkan lebih dari satu versi D3D, beberapa pekerjaan perlu dilakukan untuk mendapatkan portabilitas yang baik.

Jenis hal yang biasanya dilakukan orang adalah apa yang Anda katakan, seperti menambahkan dukungan untuk fitur pemrograman dasar seperti modul dan sintaksis yang seragam antar versi, atau bahkan portabilitas di berbagai API (GL / D3D) tanpa harus menulis ulang kode shader. Hal-hal yang lebih canggih termasuk sistem material yang lengkap atau hal-hal seperti membuat program shader dengan cepat .

Bahasa shading mungkin akan menjadi lebih baik dan lebih umum di masa depan, menggabungkan hal-hal yang saat ini umumnya digulung tangan sebagai fitur inti. Arsitektur GCN baru adalah pertanda. Jadi bahasa shading akan lebih dapat digunakan di luar kotak beberapa saat dari sekarang, tetapi solusi yang dibuat khusus tidak akan pernah hilang karena hanya ada begitu banyak yang dapat digeneralisasi.

Glampert
sumber
Saya ingin tahu - bahasa seperti apa yang ada di luar sana? Saya tahu ada yang spesifik mesin seperti sistem shader Unity atau UE4, ditambah beberapa hal penelitian akademis seperti Spark , tapi saya tidak mengetahui hal lain yang sedang digunakan saat ini di ruang ini.
Nathan Reed
@NathanReed, mungkin Apple's Metal adalah salah satu yang paling terkenal, sampai sekarang, tapi saya belum melihat banyak detail ...
glampert
Oh oke. Logam tidak di atas HLSL atau GLSL; itu adalah bahasa utama shading untuk Apple GPU yang mengkompilasi langsung ke mikrokode HW (melalui backend LLVM eksklusif yang saya percaya).
Nathan Reed