# SoftRenderer **Repository Path**: alienity/soft-renderer ## Basic Information - **Project Name**: SoftRenderer - **Description**: 一个练习用的软光栅器,实现了PBR材质系统,ShadowMap,IBL,球谐光照 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2020-10-23 - **Last Updated**: 2022-05-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # SoftRenderer ## 介绍 一个练习用的软光栅器,参考了 [https://www.cnblogs.com/zhangbaochong/p/5751111.html](https://www.cnblogs.com/zhangbaochong/p/5751111.html) 和 [https://github.com/skywind3000/mini3d](https://github.com/skywind3000/mini3d),暂时没有swapchain只使用一个framebuffer,已经做了透视纹理修正[https://blog.csdn.net/dengyibing/article/details/80784939](https://blog.csdn.net/dengyibing/article/details/80784939),绘制扫描线和线框都是用的[Bresenham算法](https://rosettacode.org/wiki/Bitmap/Bresenham%27s_line_algorithm#C.2B.2B) ## 使用的第三方库 - stb 用于纹理加载,只使用了stb_image.h - SDL 用于跨平台绘制,直接使用gdi绘制效率实在是太低了 ## 球谐光照 ![根据skybox计算出的球谐1](https://images.gitee.com/uploads/images/2020/1223/234714_ccacef0d_601336.png "屏幕截图.png") ![根据skybox计算出的球谐2](https://images.gitee.com/uploads/images/2020/1223/235100_5e2a9997_601336.png "屏幕截图.png") ![根据skybox计算出的球谐3](https://images.gitee.com/uploads/images/2020/1223/235127_6044094a_601336.png "屏幕截图.png") ![根据skybox计算出的球谐4](https://images.gitee.com/uploads/images/2020/1223/235155_f4e7369f_601336.png "屏幕截图.png") ## IBL 参考 ![从左到右roughness递增,从下到上metallic递增](https://images.gitee.com/uploads/images/2020/1223/235751_858c1e9f_601336.png "屏幕截图.png") ![把阴影也加上](https://images.gitee.com/uploads/images/2020/1226/202321_e383622b_601336.png "屏幕截图.png")