断断续续的看3d方面的知识已经近2年的时间,因为主战场是服务端,3d的东西总是缺缺补补,不过总体还算是系统。从开始的3d数学基础,龙书,紧接着不自量力的挑战了Real-time Rendering(3rd) ,这本图形学界的武林秘籍目录对当时的我来说还是过于专业难懂,看了不到一半,暂时搁置了,然后接触了优秀的客户端同事,在他的推荐下看到了 游戏程序员养成计划 这篇前辈留下来指导后生的3d程序员养成计划,知道自己应该如何去看书,看哪些书。按照文章中的指引,我才真正开始了3d的学习旅程。
看了不少书之后,一直想动手证明一下自己所学成果,相对于架构一个庞大,复杂的引擎,这种耗费体力和精力的事情,我更喜欢写一些简单,小巧的东西。所谓深入浅出嘛,于是就有了写软渲染的想法。这个想法成型于几个月前,不过由于生活和工作以及我个人的懒散原因,此项目一直处于搁置状态。但最近在跟项目经理表达想转客户端的想法后,他表示质疑,为了打消他的疑虑,我决定牺牲周六日的时间,完成这个小东西。麻雀虽小,五脏俱全。
从一开始的画布,到后来的线框,然后是顶点颜色,再到纹理,以及昨天我增加了光照。一个小小的 Soft Rendering 就写完了。
1. 线框
2. 颜色
3. 纹理+光照
源码在此,有兴趣的可以关注一下。