MP-Aps
Mesin rendering 3D OpenGL modern. Gagasan di baliknya adalah menjadi sangat mudah digunakan: tidak ada lapisan abstraksi yang aneh, nama variabel janky, atau kelas garis 2000+ besar. Ini terutama merupakan taman bermain yang harus saya terapkan (atau setidaknya coba: p) teknik pemrograman grafis yang berbeda. Kemajuan telah lambat karena saya menyulap studi univesity penuh waktu, bekerja, dan mencoba untuk aktif secara fisik. Akhirnya, saya ingin membuat mesin "berbasis adegan", di mana Anda dapat memuat beberapa model, menambahkan beberapa lampu mewah, dan hampir menjelajahinya.
Menyusun
Ubuntu (dan serupa)
bash install-deps-ubuntu.sh
make
cd build/
./MP-APS
Tangkapan layar
Rendering gambar gambar anti-alias: 
Rendering berbasis fisik: 

LIGHTING BERBASIS IMAGE (IBL): 
Bunga: 
(Versi Lama) Pembuatan Terrain Berbasis CPU Menggunakan Perlin Noise: 
Fitur
- Pemuatan Model AssImp.
- Posting pemrosesan (HDR, Vibrance, Bloom).
- Paralel AABB Frustum Culling.
- Konfigurasi Mesin XML.
- Dukungan untuk arahan
#include di shaders. - Overlay Wireframe Berbasis Shader.
- Rendering berbasis fisik.
WIP
- Variance Shadow Mapping (bayangan lembut).
- Optimasi kedalaman buffer (https://outerra.blogspot.ca/2012/11/maximizing-depth-buffer-range-and.html).
Peta jalan
- Volume bayangan (http://www.alexandre-pestana.com/volumetric-lights/, https://www.slideshare.net/benjaminglatzel/volumetric-lightting-for-many-lights-lords-fallen).
- Tekstur array per material:
- (https://www.gamedev.net/forums/topic/662654-best-practise-texture-atlas-38-vbo/?do=findcomment&comment=5191703)
- (https://www.khronos.org/opengl/wiki/array_texture)
- Mengimplementasikan kembali ke depan+.
- Lebih banyak efek pasca-pemrosesan:
- FXAA (http://blog.simonrodriguez.fr/articles/30-07-2016_Implementing_fxaa.html).
- Penyimpangan Chromatic (https://gamedev.stackexchange.com/a/58412/74957).
- Beralih ke objek sampler.
- Semacam gui.
- Hamburan Atmospheric: (https://github.com/korgan00/tfg-atmospheric-scattering) atau (https://ebruneton.github.io/precomputed_atmospheric_scattering/)
Menggerakkan pipa
- Medan cdlod.
- Rendering planet.
- Penerangan global (volume propagasi cahaya bertingkat).
Kode pihak ketiga
- Assip.
- Glm.
- SENANG.
- Glfw.
- stb_image.
- pugixml.
- GLM AABB Wrapper: (https://github.com/iauns/cpm-glm-aabb).
Penelitian digunakan
- Ekstraksi cepat melihat pesawat frustum dari matriks World-View-Projection (http://www.cs.otago.ac.nz/postgrads/alexis/planeextraction.pdf). Gribb, Hartman (2001).
- Forward+: Membawa pencahayaan yang ditangguhkan ke tingkat berikutnya (https://takahiroharada.files.wordpress.com/2015/04/forward_plus.pdf). Harada, McKee, Yang (2012).
- Solid wireframe (http://developer.download.nvidia.com/sdk/10/direct3d/source/solidwireframe/doc/solidwireframe.pdf). Nvidia (2007).
- Rendering berbasis fisik (https://learnopengl.com/#!pbr/ibl/specular-iBl)
- Variance Shadow Mapping (http://developer.download.nvidia.com/sdk/10.5/direct3d/source/varianceshadowmapping/doc/varianceshadowmapping.pdf)
- Tessellated Medan Rendering dengan Dynamic Lod (http://victorbush.com/2015/01/tessellated-terrain/)