Graphics
Overview
I. Postmodern OpenGL 4 Series 后现代OpenGL4系列
虽然 OpenGL 在现代 Vulkan, DX12, Wgpu 大行其道势如破竹的时候,可能有些过时了。但它仍然是趁手的,对个体开发者有生产力的。
本系列讲介绍 GL4 高级特性。可能需具备 GL3 基础。
- All Draw Functions
所有 Draw 函数,从基本的 glDrawArrays/Elements,到 MultiDraw, Instancing, Indirect, MultiDraw Indirect MDI, Transform Feedback.. - Shader Storage Buffer Objects. SSBOs
SSBO 可用于shader之间传输(读/写)大量数据, 也可用于CPU和shader之间传输大量数据。 - Programmable Vertex Pulling with SSBOs
摆脱 VBO, VAO, etc. 使用特制的数据格式,在着色器中手动解包数据 - Bindless Texture
Bindless texture 允许 shader 直接通过 integer handle, (从SSBOs中)访问大量 textures, 而无需 bind texture unit. - Compute Shader
. - MultiDraw Indirect. MDI
MultiDraw 与 Indirect. Command 录制 & 多帧复用,实例。 - Tessellation Shader
细分曲面 - Direct State Access. DSA
性能对比,简要概述总结,和一些示例
Resoueces
- Khronos OpenGL4.6 Quick Reference Card
- Guide-to-Modern-OpenGL-Functions by fendevel
- GL Wrapper by Luna
- https://github.com/PacktPublishing/3D-Graphics-Rendering-Cookbook
- https://juandiegomontoya.github.io/modern_opengl.html
- https://blog.mecheye.net/2020/06/modern-graphics-apis-1-intro/
- https://alain.xyz/blog/a-review-of-shader-languages
- https://alain.xyz/blog/unreal-engine-architecture
- https://alain.xyz/blog/game-engine-architecture
- https://alain.xyz/blog/realtime-renderer-architectures
- Vertex Pooling Voxels
II. Modern Graphics APIs
- Vulkan Review
快速过一遍Vulkan 1000行的Hello Triangle - OpenGL4 Review
100行 OpenGL 4.6, Hello Triangle. GLFW+GLAD+Cpp20 - Wgpu Review
快速过一遍Wgpu 200 行的 Hello Triangle。对比和 OpenGL, Vulkan 的性能。 - DirectX 12 Review
- DirectX 9 Review
- Comparison
- Vulkan 1.3 Dynamic Rendering
使用DynamicRendering特性化繁为简,去除针对Tiling GPU的依赖,去除RenderPass Framebuffer - DirectX 12 Task Graph
DX12 TaskGraph 分析。
- Virtual Textures
- Render Graph
- Virtual Geometry(Nanite/Meshlet)
III. GFX
- Atmosphere (Rayleigh Scattering)
大气Rayleigh散射渲染 - Volumetric Fog & Light
体积雾 - Rectilinear Texture Warping Shadow Mapping. RTWSM
结合EyeFish扭曲矫正,对比CSM联级阴影 - Volumetric Clouds
体积云 - Isosurface + ComputeShader
CS GPU端即时生成 Isosurface Mesh - ComputeShader + Instancing Massive Stars Rendering nbodysim
大量小行星渲染&积分 - RayMarching Voxels
- Skeleton Animation
Lighting Model
https://alain.xyz/blog/advances-in-material-models#lambertian
Lambertian [Heinrich Lambert 1982]
Phong [Tuong Phong 1975]
Blinn-Phong [F. Blinn 1977]
Schlick [Schlick 1994]
GGX [Walter et al. 2007] [Karis 2013]
Disney [Burley 2012]
Smith Microfacet [Heitz et al. 2016]
https://bartwronski.com/wp-content/uploads/2014/08/bwronski_volumetric_fog_siggraph2014.pdf
Bokeh: https://www.scratchapixel.com/lessons/digital-imaging/simple-image-manipulations/bookeh-effect.html