天天看點

01 軟光栅·前言

說在前面!

  1. 本系列并非是教程,隻是個人學習感想,關于圖形學,個人是感興趣的,但也隻是感興趣而已,并沒有像大佬們那樣學習的很深
  2. 本系列主要學習自這裡,連結裡的文章寫的很好,但是很多知識談的太粗略,對于懂的大佬自然懂,不懂的萌新看着會比較吃力
  3. 本系列不會講述太細節的圖形學基礎知識,但能提到盡量都會提,純萌新的話還是建議先看看Games101的圖形學入門課程
  4. 本系列完全隻考慮圖形學相關的知識,例如矩陣計算庫或者win32等知識都不會涉及,這些會直接調用現成的庫

準備工作

用VS建立一個空的項目,我取名叫做SoftwareRender

把這個倉庫下載下傳下來,裡面兩個檔案是作為我們繪制的庫進行使用,把他們丢到你建立的VS項目中,然後通過VS導入

01 軟光栅·前言

最終你的項目應該如此

01 軟光栅·前言

建立一個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;
}