說在前面!
- 本系列并非是教程,隻是個人學習感想,關于圖形學,個人是感興趣的,但也隻是感興趣而已,并沒有像大佬們那樣學習的很深
- 本系列主要學習自這裡,連結裡的文章寫的很好,但是很多知識談的太粗略,對于懂的大佬自然懂,不懂的萌新看着會比較吃力
- 本系列不會講述太細節的圖形學基礎知識,但能提到盡量都會提,純萌新的話還是建議先看看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;
}