GAMES202
不仅完成了作业的基础和提高,还为202扩展了其他算法:Efficient GPU SSR,Hiz-SSR,IBL,SVGF。GAMES101在另一个分支,完成了Final Project,还扩展了Roughness BSDF!
Install / Use
/learn @Howl144/GAMES202README
games202
介绍
用webgl和CPP实现games202所提到的实时渲染的相关算法。为了节省存储空间,Github仓库未包含代码的原理解释等。
电脑GPU(GPU AMD Radeon(TM) 530)很拉,部分结果无法更好展示,抱歉了😞。
如果该项目对你有帮助,请给个星星吧😝~
1. Percentage Closer Soft Shadows
PCSS

PCSS作业的基础要求,更多内容请参考我的博客-PCSS。
2. Precomputed Radiance Transfer
PRT

PRT作业的基础要求,更多内容请参考我的博客-PRT。
3. Screen Space Reflection
Hierarchical-Z SSR

Efficient GPU SSR

World Space Ray Marching SSR

Hi-z SSR的帧率是World Space SSR的4倍左右😆。而Efficient GPU SSR的帧率是World Space SSR的2倍左右,可能是因为GPU太拉胯,这种复杂的场景导致它们显示的帧率几乎一致,我在作业三的README里面用简单的场景重新测试了一下,结果是2倍。
Hierarchical-Z SSR最初是由GPU Pro 5提出的,国外有UP对这一技术做了较好的解释,感兴趣的可以直接阅读原文,另外本次作业中我也对该方法的原理和代码做了详细说明,部分内容借鉴于该UP。
Efficient GPU SSR是直接参考的一篇JCGT论文(Efficient GPU Screen-Space Ray Tracing),该论文的核心内容我也做了详细说明。
World Space Ray Marching SSR则是作业的基础要求。
更多内容在我的博客-SSR。
4. Kulla-Conty BRDF
IBL and Split Sum Kulla-Conty BRDF

Split Sum为作业的提高内容,IBL为个人扩展内容,更多内容请参考我的博客-KullaConty。
5. Real-Time Ray Tracing Denoisers
Spatiotemporal Variance-Guided Filtering Method

Joint Bilateral Filter A-Trous Method

SVGF是参考文刀秋二大佬发表的论文,论文表示filter的对象是像素Irradiance的灰度值,而且是直接光和间接光分开处理,最后进行Modulate时将Emission和Albedo加回去,这样就可以保留图像的高频信息了。但是作业没有给每帧的Albedo,无法得到像素的Irradiance,而且直接光和间接光也是混合在一起进行filter的,所以右边那幅图像看起来会比较糊,更多内容请参考我的博客-SVGF。
JBF-atrous则是作业的提高内容。
Related Skills
node-connect
351.2kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
110.6kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
351.2kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
351.2kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
