OpenGL ES 2.0: Repositori Quality Shaders [ditutup]

10

Bisakah saya bertanya, untuk menyarankan saya repositori vertex dan fragmen OpenGL (OpenGL ES 2.0) berkualitas tinggi , tolong?

Saya mencari ligting shaders berbasis pixel (seperti phong ) dan simmilar. Akan menyenangkan untuk melihat lebih banyak dari mereka, untuk dapat memilih antara kualitas vs kinerja shader.

Bunkai.Satori
sumber

Jawaban:

16

Shaders dari segala kerumitan pada umumnya bukan hal yang dapat Anda unduh dan masukkan ke proyek Anda seperti gigi yang dapat dipertukarkan. Biasanya efek yang lebih menarik membutuhkan sedikit penggandengan pada subsistem rendering sisi CPU untuk mencapai hasil mereka. Hal yang sama pada umumnya berlaku untuk kinerja - pertukaran kinerja sehubungan dengan akurasi dan kualitas dibandingkan jumlah instruksi atau perpipaan cenderung berakar pada persyaratan khusus aplikasi.

Akibatnya, tidak ada banyak hal yang Anda pikirkan dalam cara repositori. Buku-buku Permata GPU menawarkan koleksi yang baik dari deskripsi gaya buku resep teknik dengan kedua gim dan contoh kode teduh yang mungkin ingin Anda lihat. Begitu juga buku-buku Shader X.


sumber
+1 untuk komentar yang sangat berharga. Hai, Josh. Terimakasih atas tanggapan Anda. Nah, jika seseorang berada di awal pengembangan shader, itu akan sangat membantu untuk melihat bagaimana beberapa standar shaders diimplementasikan: Misalnya bagaimana Phong (yang merupakan algoritma yang sangat standar) dilakukan, pixel shaders lighting, dll. Saya mengerti Anda titik, dan sumber yang Anda berikan suara sebagai bahan yang baik. Saya akan melihat mereka. Sejauh ini, sumber daya terbaik yang saya temukan adalah: Buku Bahasa OpenGL Shading dan situs Lighthouse 3D.
Bunkai.Satori
2
Oleh karena itu saya masih akan menyambut repositori shader berkualitas baik , menggambarkan pengembangan efek menarik. Script dapat digunakan sebagai ruang bawah tanah untuk menggabungkan mereka dan menciptakan efek menarik baru.
Bunkai.Satori
@ Bunkai Satori Saya pikir Josh memaksudkan itu sebagai alasan bahwa repositori semacam ini sebagian besar tidak ada.
Bebek Komunis
@The Communist Duck: Hai, terima kasih atas komentar Anda. Aku mengerti itu. Saya bersyukur untuk setiap tanggapan di sini, dan untuk tanggapan Josh juga. Namun, yang terlintas di benak saya adalah, bahwa internet begitu besar, sehingga mungkin orang lain selain Josh akan ingat melihat beberapa tempat untuk mendapatkan inspirasi dari para shader tertentu. Saya bisa membayangkan, bahwa sebuah perusahaan / indidvidual yang banyak menggunakan shader, akan mengumpulkannya, dan beberapa dari mereka mungkin juga menerbitkannya. Bagaimanapun juga, jawaban Josh adalah kandidatku untuk Jawaban yang Diterima , jadi jika tidak ada yang berkontribusi dalam waktu dekat, aku akan menutup utas ini untuk menandai jawabannya.
Bunkai.Satori
13

Tidak banyak, tetapi setidaknya beberapa shader dasar untuk memulai juga dapat ditemukan di antara file engine open sorce saya:

file .vsh berisi vertex shaders dan .fsh file fragmen shaders, tapi kurasa itu menjelaskan sendiri ...

Pada perangkat keras seluler saat ini, Anda harus melakukan sebanyak mungkin dalam vertex shader dan trik untuk permainan yang tampak hebat dan cepat adalah dengan menulis banyak shader khusus yang selalu melakukan apa yang dibutuhkan untuk membuat sesuatu terlihat seperti yang seharusnya. Setidaknya itulah pengalaman saya dengan iPhone 3GS saya, yang menampilkan GPU yang sama dengan iPhone 4 tetapi memiliki piksel lebih sedikit untuk mengirimkan data. Ini kemungkinan besar sudah jauh lebih baik dengan Tegra 2 dan bahkan lebih baik dengan chip apel A5, tetapi untuk saat ini, ini berarti Anda tidak boleh mencoba mem-port shader untuk desktop GPU ke ponsel dan mengharapkan kinerja yang hebat: P Ini juga berarti layar penuh efeknya, terutama pada perangkat dengan tampilan resolusi tinggi cenderung lambat.

Semoga ini juga sedikit membantu :).

Slin
sumber
Hai, selamat datang di GDSE. Jawaban bagus!
Notabene
+1 untuk jawaban yang bagus. Hai Slin, dan selamat datang di GDSE. Terima kasih atas jawaban yang bagus dan untuk contohnya. Saya senang, Anda berbagi pengalaman Anda dengan pemrograman shader untuk platform seluler. Pada saat ini, saya melakukan semua pengembangan pada PC, berencana untuk port nanti. Jadi pengalaman Anda akan dihargai saat itu.
Bunkai.Satori
9

mungkin menyambar beberapa pengetahuan misterius dari sini http://glslsandbox.com/

UlanB
sumber
Hai UlanB. Koleksi ini tampak hebat. Bisakah Anda jelaskan bagaimana cara mengunduh shader ini. Saya mendapatkan kesalahan yang mengatakan "WebGL tidak didukung" ketika saya mencoba membuka koleksi shader di chrome. Terima kasih.
Vinodtiru
Maaf, saya tidak bisa memberikan dukungan teknis pada kompatibilitas webgl. Mungkin Perangkat Keras Anda yang tidak mendukung webgl. Linux Chrome Builds juga belum mendukungnya.
UlanB
4

Ketika saya sedang mencari cara menerapkan kabut di bawah OpenGL ES 2.0, saya telah menemukan tautan ke OpenGL ES 2.0 yang kompatibel dengan fungsionalitas implementasi proyek yang terbelakang , yang tidak ada dalam OpenGL ES 2.0, Misalnya kabut, per simpul, per bayangan fragmen (piksel). Anda dapat melihat langsung ke sumber shader .

Saya telah menerapkan pencahayaan per fragmen juga, memodifikasi contoh ini dibuat oleh ClockworkCoders (bukan OpenGL ES 2.0).

Anda juga dapat melihat tutorial hebat ini oleh lighthouse3D

martin pilch
sumber
+1 untuk komentar yang bagus. Hai Martin, terima kasih atas tautan Anda. ya, saya menemukan Lighthouse3D, dan sepertinya sumber daya yang berkualitas.
Bunkai.Satori
1

Paket AMD RenderMonkey berisi shader yang sangat canggih untuk OpenGL ES 2.0 di antara file sampel.

Lihatlah terutama pada contoh shader Renderman di direktori sampel GLES, yang menyediakan lebih banyak atau lebih sedikit tulang telanjang shader OpenGL ES 2.0 yang mungkin berfungsi sebagai titik awal yang baik. Dan mungkin juga memberi Anda ide yang bagus tentang mengapa tidak ada banyak contoh tempel yang bagus di luar sana. Masalah mendasar: bahwa shader dipasangkan dengan erat dengan konfigurasi server OpenGL ES, dan model yang diberikan pada mereka. Masih. Shader Renderman adalah titik awal yang sangat baik, jika Anda dapat melepaskannya dari alat REnderMonkey.

rerdavies
sumber
1

Lihatlah GPUImage ( https://github.com/BradLarson/GPUImage ), ini mungkin koleksi shader paling lengkap yang saya temukan di web sejauh ini. Karena semuanya dirancang untuk bekerja dengan GPUImage, semuanya memiliki struktur yang sama, jadi jika Anda mengadaptasi struktur yang sama dalam aplikasi / game Anda, Anda harus dapat dengan cepat mengimpor sejumlah efek yang berbeda.

Bersulang!

ekskripto
sumber