说在前面!
-
本系列并非是教程,只是个人学习感想,关于图形学,个人是感兴趣的,但也只是感兴趣而已,并没有像大佬们那样学习的很深
-
本系列主要学习自这里,链接里的文章写的很好,但是很多知识谈的太粗略,对于懂的大佬自然懂,不懂的萌新看着会比较吃力
-
本系列不会讲述太细节的图形学基础知识,但能提到尽量都会提,纯萌新的话还是建议先看看Games101的图形学入门课程
-
本系列完全只考虑图形学相关的知识,例如矩阵计算库或者win32等知识都不会涉及,这些会直接调用现成的库
准备工作
用VS新建一个空的项目,我取名叫做SoftwareRender
把这个仓库下载下来,里面两个文件是作为我们绘制的库进行使用,把他们丢到你新建的VS项目中,然后通过VS导入
最终你的项目应该如此
新建一个main.cpp,简单测试一下
#include "tgaimage.h"
// 定义颜色
const TGAColor white = TGAColor(255, 255, 255, 255);
const TGAColor red = TGAColor(255, 0, 0, 255);
int main()
{
// 定义一张图片,以像素为单位,左上角是(0,0),右下角是(100,100)
TGAImage image(100, 100, TGAImage::RGB);
// 设置坐标(52,41)处的像素为红色
image.set(52, 41, red);
// 垂直翻转,那样就能够让左下角变为(0,0)坐标,符合正常坐标系习惯
image.flip_vertically();
image.write_tga_file("output.tga");
return 0;
}
点击运行,项目目录下应该会生成一张output.tga的图片,其内容是
如果到这一步了,那准备工作就完成了,欢迎正式开始软光栅的学习之旅~