HRE adalah penyaji Clustered real-time, berbasis fisik, yang dibuat dengan OpenGL dan berdasarkan teknik yang dijelaskan pada makalah Clustered Deferred dan Forward shading oleh Ola Olsson, Markus Billeter, dan Ulf Assarsson. Tujuan dari proyek ini adalah untuk membangun kerangka pengujian untuk menampilkan teknik grafis yang ditangguhkan dan maju (karenanya merupakan bagian hybrid) dan untuk menguji kekuatan bayangan Clustered. Saya menulis postingan blog panjang yang penuh dengan animasi keren yang dapat berfungsi sebagai pengenalan algoritma rendering yang efisien serta panduan mendetail tentang implementasi Clustered Shading saya, jadi pastikan untuk memeriksanya di sini!
Algoritme ini dipilih karena dua keunggulan utamanya dibandingkan solusi penundaan/ubin tradisional: algoritme ini memberikan lebih banyak kebebasan untuk memilih jalur bayangan maju atau mundur sesuai keinginan dan lebih cocok untuk jangka panjang dengan tren performa GPU modern. Ini telah berhasil diterapkan di beberapa game dengan tampilan terbaik dalam beberapa tahun terakhir, dengan beberapa contoh penting adalah: DOOM 2016, Just Cause 3 dan Detroit: Menjadi Manusia.
Sayangnya proyek ini tidak lagi dipertahankan. Saya dipekerjakan untuk bekerja di Rockstar Games sebagai Pemrogram Grafis segera setelah memposting ini dan tidak punya waktu lagi untuk mengerjakan proyek sampingan sebesar ini. Saya berencana untuk mempertahankannya (dan juga proyek grafis besar saya yang lain SSGE) sehingga orang lain dapat melihat apa yang saya perlukan untuk memasuki industri ini. Saya akan tetap membantu siapa pun yang mengalami masalah apa pun atau memiliki pertanyaan tentangnya. Jangan ragu untuk menghubungi saya di sini atau di twitter saya tentang hal ini atau topik GFX lainnya yang ingin Anda bicarakan! Terima kasih kepada semua orang yang telah memeriksa proyek ini! :D
Versi stabil dapat ditemukan di halaman rilis HRE.
Saat ini hanya platform Windows yang didukung.
Siklus pengembangan pertama dimulai pada September 2018 dan berakhir pada Desember 2018 dengan dimasukkannya Pencahayaan Berbasis Gambar dan dirilisnya versi stabil pertama: HRE 0,01 "Aachen". Selama beberapa bulan ke depan saya akan menangani masalah yang diuraikan di bagian Proyek dimulai dengan perbaikan untuk bug non-kritis yang tersisa dan kemudian beralih ke penulisan ulang sistem material secara besar-besaran. Berikut ini adalah daftar fitur mesin yang ingin saya sertakan dalam beberapa bulan mendatang, jelas dapat berubah dan sebagainya.
Saya akan menulis postingan blog yang menyertainya di akhir setiap pencapaian besar, menguraikan fitur-fitur baru dan penerapannya serta komplikasi apa pun yang saya temukan selama prosesnya. Sementara itu, Inilah postingan pertama yang berisi ikhtisar algoritma rendering tradisional lainnya dan membangun kasus untuk rendering Clustered.
Hybrid Rendering Engine
| -- assets
| | -- models # Meshes and textures
| | -- scenes # Scene description files in JSON format
| | -- shaders
| | | -- computeShaders # Compute shaders for clustered forward
| | | -- OldShaders # Shaders not currently in use
| | ` -- currentShaders # Shaders for the current rendering pipeline
| ` -- skyboxes # Skyboxes in either cubemap or equirectangular map form
| -- build # CMake compile
| -- include # Project header files
| -- libs # Check dependencies section for descriptions & links
| | -- ASSIMP
| | -- Dear imgui
| | -- Glad
| | -- Json c++
| | -- GLI
| | -- GLM
| | -- stb_image
| ` -- SDL2
| -- modules # CMake lib setup scripts
|-- src # C++ implementation files
` -- CMakeLists.txt # CMake build script
Dalam proyek saya sebelumnya, SSGE, saya berupaya mengurangi jumlah ketergantungan seminimal mungkin. Namun kali ini, pendulum telah berayun ke arah lain dan saya tidak membuat batasan apa pun (sesuai alasan) mengenai perpustakaan apa yang dapat saya sertakan dalam proyek ini. Saya melakukan ini karena saya ingin lebih nyaman dengan proses memasukkan dan bekerja dengan perpustakaan eksternal di C++.
Berikut daftar perpustakaan yang saat ini disertakan dalam proyek:
Berikut daftar perpustakaan yang tidak disertakan:
Semua perpustakaan yang disertakan diwakili di sini di bawah lisensi masing-masing yang dapat ditemukan di tautan di atas atau di dokumen lisensi.txt di folder libs.
Ada daftar referensi lengkap yang terindeks untuk proyek yang kurang lebih saya perbarui di halaman wiki ini. Namun, saya menemukan diri saya terus-menerus kembali ke sebagian dari mereka untuk dibaca lebih lanjut atau ketika saya membutuhkan inspirasi, jadi saya menambahkan tautan di bawah untuk membagikannya dan menyebarkan berita tentang kehebatan mereka. Coba lihat!
Terima kasih kepada semua seniman 3D & tekstur yang telah membuat asetnya gratis untuk digunakan dan sangat indah untuk dilihat. Jika bukan karena kalian, aku mungkin masih menatap teko teh utah yang sama membosankannya sepanjang hari!
Jika saya salah mengenali, salah mengatribusikan, atau melewatkan referensi apa pun, silakan buat masalah GitHub baru atau kirimi saya DM di Twitter dan saya akan pastikan untuk segera memperbaikinya.
Teriak kepada Kostas Anagnostou dan Eric Arnebäck karena telah meluangkan waktu untuk menjawab semua pertanyaan saya selama beberapa bulan terakhir, penjelasan Anda membuat pemahaman setiap topik menakutkan menjadi lebih mudah!
Lisensi MIT
Hak Cipta (c) 2018 Angel Ortiz
Izin dengan ini diberikan, secara gratis, kepada siapa pun yang memperoleh salinan perangkat lunak ini dan file dokumentasi terkait ("Perangkat Lunak"), untuk menggunakan Perangkat Lunak tanpa batasan, termasuk namun tidak terbatas pada hak untuk menggunakan, menyalin, memodifikasi, menggabungkan , mempublikasikan, mendistribusikan, mensublisensikan, dan/atau menjual salinan Perangkat Lunak, dan mengizinkan orang yang menerima Perangkat Lunak untuk melakukan hal tersebut, dengan tunduk pada ketentuan berikut:
Pemberitahuan hak cipta di atas dan pemberitahuan izin ini akan disertakan dalam semua salinan atau sebagian besar Perangkat Lunak.
PERANGKAT LUNAK INI DISEDIAKAN "APA ADANYA", TANPA JAMINAN APA PUN, TERSURAT MAUPUN TERSIRAT, TERMASUK NAMUN TIDAK TERBATAS PADA JAMINAN KELAYAKAN UNTUK DIPERDAGANGKAN, KESESUAIAN UNTUK TUJUAN TERTENTU, DAN TIDAK ADA PELANGGARAN. DALAM KEADAAN APA PUN PENULIS ATAU PEMEGANG HAK CIPTA TIDAK BERTANGGUNG JAWAB ATAS KLAIM, KERUSAKAN, ATAU TANGGUNG JAWAB LAINNYA, BAIK DALAM TINDAKAN KONTRAK, HUKUM ATAU LAINNYA, YANG TIMBUL DARI, ATAU SEHUBUNGAN DENGAN PERANGKAT LUNAK ATAU PENGGUNAAN ATAU HAL-HAL LAIN DALAM PERANGKAT LUNAK.