看完一遍图形学的书之后,想着做点什么来着。看到很多人说可以做一个3D软渲染引擎。
软渲染的概念网上并没有直接的中文解释。参考英文维基(Software Rendering)和一些其他资料后,整理要点如下:
- OpenGL和DirectX的都是基于硬件的接口,走GPU处理
- 软渲染就是纯粹通过软件程序实现渲染,走CPU处理
- 最早的时候还没有显卡,都是软渲染,后来随着卡马克的Quake等3D游戏的流行,显卡开始被大量使用
尽管硬件渲染在性能方面有绝对优势,然而软渲染的理念并未消亡,体现在:
- 渲染管线中的可编程部分(shader),就是用软件的方式实现,避免走硬件的固定管线的限制
- 可以将软渲染作为一种fallback,在硬件渲染失败时使用
自己实现软渲染的参考:
- 韦易笑的mini3D
- milo yip的《用JavaScript玩转计算机图形学》系列
- 《3D游戏编程大师技巧》