原创 計算機圖形學常用算法實現2 中點畫圓法

在winform下實現,如果在其他環境,思路完全一樣,只需替換畫圖的函數即可。 中點畫圓法算是中點畫線法思路的一種實際應用,本質是一樣的。 1.對稱畫圖,只需要畫1/8部分的圓(我們的函數裏面取45~90度部分),其他部分對稱畫過

原创 計算機圖形學常用算法實現3 多邊形掃描轉換算法-掃描線算法

運行環境 vs2015 winform 其他環境只需要替換對應的畫點畫線算法即可。 這個算法其實很複雜的,實現起來需要有耐心,一步一步按照算法思路來寫代碼。 在算法中,我使用的是靜態鏈表(c#沒有指針-_-||) 下面的AET爲

原创 計算機圖形學常用算法實現4 多邊形掃描轉換算法-邊界標誌算法

代碼是在winform中運行的。 看書上這個算法寫起來輕描淡寫的,實際上實現起來還是有很多難點的,難點如下: 1.無法判斷經過某個點的時候是不是應該變號。 2.掃描算法畫直線的時候,可能同一行有多個點相鄰的情況,如果遇到這樣的點就

原创 unity 深度紋理和法線紋理

原理 在實現某些屏幕後處理的時候,僅僅只有圖像的rgb信息是很難實現的,同簡單的圖像處理不同的是,我們能在shader中獲得圖像每個像素的深度信息和法線信息。 想要理解深度紋理的原理就必須要對渲染流水線有個比較深入的瞭解,深度紋理

原创 四元數的差、對數、指數、冪以及差值

概要 對於四元數的學習基本上都是參照《3D數學基礎-圖形與遊戲開發這本書的內容的》對於這本書前面的部分還是很好理解的,但是從四元數的差這裏開始,就過於抽象了,不配合實例很難去理解。 因此,這一段被我單獨提取出來,在實踐中進一步去理

原创 計算機圖形學常用算法實現1 DDA,中點畫線法,bresenham算法

打算手動實現圖形學中的絕大部分算法。 運行環境winform+c# (代碼是通用的,如果在其他地方畫圖,只需要替換掉畫點的函數即可) 我們的函數默認是按x座標順序遞增傳入的,因此在調用下面函數之前,需要保證p1.x<p2.x(可以

原创 計算機圖形學常用算法實現9 梁友棟-Barskey裁剪算法

這個算法的效率比前面提到的Cohen-Sutherland要高 思路是把直線表示爲參數方程形式, x= x1+udx y = y1+udy 由xmin<x<xmax ymin<y<ymax 可以得到四個不等式,簡化成同一個形式up

原创 計算機圖形學常用算法實現11 掃描線z-buffer算法

圖形學作業要到deadline了,趕緊寫一個 這個算法比之前的算法的工作量都要大,但是隻要思路清晰,也不是很難。 1.創建各種需要的數據結構類 //點的類 class Point { public: float x; floa

原创 歐拉角、四元數、旋轉矩陣的互相轉換

概述 方法來自於《3D數學基礎,圖形與遊戲開發》這本書。 學習這些轉換可以加深自己對這些知識點的理解~兩兩轉換一共有六種情況,下面就依次列舉一下這六種情況。 1.從歐拉角轉換到矩陣 這種情況的轉換不難,還記得我們的旋轉矩陣長啥樣嗎

原创 unity屏幕特效綜述3 運動模糊

1.原理 這裏運動模糊特效值得是攝像機在運動的時候,場景會產生模糊的效應,而攝像機不動物體運動這種情況則不會產生。 原理很容易,我們有很多方法實現,比如說直接獲取相鄰幀的圖像,然後和這一幀圖像進行混合,在這裏我們採取另外一種方式,

原创 unity 水波效果

這個水波效果並非真實的讓頂點去運動而產生的的效果,而是通過法線擾動而產生的模擬效果,產生效果主要分爲三個步驟,第一個步驟是計算折射,第二個步驟是計算反射,最後一個步驟是混合反射和折射的值。 首先是計算折射值,這個也是這三個中最複

原创 unity shader 入門精要閱讀筆記-----渲染流水線

1渲染流水線 這一部分的重點就是渲染流水線,理解渲染流水線對於後面的學習來說至關重要,這也是圖形學的一個重要的基礎知識環節。 我們探討空間中的模型是怎樣一步一步轉換到我們的屏幕座標,然後顯示在我們的面前的。 我們把步驟分成四個步

原创 unity屏幕特效綜述4 邊緣檢測

這個屏幕特效我挺喜歡的,可以用來描邊,也可以用來提取邊緣,獲得很多很棒的效果。 什麼樣的點可能是邊緣部分所在的點呢,如果該點附近的法線值或者是深度值相差的很多,那麼這個點就可以被認爲是一條邊,具體的值可以用參數來控制。法線以及深

原创 unity billboard效果

這種效果是讓一個平面能跟着視角進行旋轉,從而使得該平面一直朝向着攝像機,形成一種立體的感覺. billboard主要有兩種,第一種是固定向上方向的billboard,比如說草地,一個草地貼圖向上的方向一定是(0,1,0),unit

原创 繞座標軸以及任意軸的旋轉矩陣的推導

概述 本文主要是針對《3D數學基礎-圖形與遊戲開發》這本書的讀書筆記,這本書前面部分還是講得挺好的,有時間還是建議讀一下。 旋轉矩陣的推導 旋轉矩陣怎麼來的我倒一直都沒有概念,這本書裏面對旋轉矩陣的來歷倒是給了我一些啓發。 首先從