从0开始制作软渲染器(三)
本文开始编写渲染器的代码。
本着色器很大程度上参考了韦易笑大神的RenderHelp渲染器。我的渲染器的理论是跟着Games101和《Fundamentals of Computer Graphics, Fourth Edition》这本书来的,和韦大神渲染器中的方程不太一样(尤其是透视投影,深度测试的地方),所以如果要跟着我这系列博客学习,请务必从头看到尾,以避免公式和细节不一致的情况出现。
最后的渲染器项目在这里,gitee上也有同名镜像。
本文开始编写渲染器的代码。
本着色器很大程度上参考了韦易笑大神的RenderHelp渲染器。我的渲染器的理论是跟着Games101和《Fundamentals of Computer Graphics, Fourth Edition》这本书来的,和韦大神渲染器中的方程不太一样(尤其是透视投影,深度测试的地方),所以如果要跟着我这系列博客学习,请务必从头看到尾,以避免公式和细节不一致的情况出现。
最后的渲染器项目在这里,gitee上也有同名镜像。
本文介绍了基本的渲染管线知识。
本文说了有关光栅化的事情
本文讲述了MVP矩阵的意义,投影变换(透视投影和平行投影)矩阵的推导以及视口变换
这里介绍了一些随机数生成算法
这里是SpaceWar游戏开发的一些感想。游戏视频可以在这里看到
这里说明一下如何在SDL2中使用OpenGL。
我们都知道,const T&这种形式的参数可以避免拷贝,从而提高性能。但是几乎没有人会对基本数据类型写这样的参数。这是因为这样做并不能提高性能。
本文说明了程序热加载的原理。
热加载原理很简单,就是让程序在运行时打开动态库,并且获得里面的新函数。
本文介绍了如何在不使用SDL_mixer的情况下,只使用SDL2进行声音的播放和录制。