原创 Real-Time-Rendering 矩陣(一)

        接下來就是矩陣了。圖形學中矩陣作爲最常用的工具涉及的知識點也非常多。本文以《3D圖形基礎:圖形與遊戲開發》及《Real-Time-Rendering》書中對矩陣的知識點的講述爲基礎,先做一篇矩陣概述即基礎知識。 一、矩陣的

原创 Real-Time-Rendering 矩陣的其他變換及投影矩陣(三)

        接下來我們討論矩陣的平移、投影變換,在計算機圖形學中這兩種變換也及其常用。 一、4x4矩陣         在討論位移矩陣前,我們需要引出4x4矩陣的相關概念。         4D向量有4個分量,前三個是標準的x、y、z

原创 Real-Time-Rendering 矩陣的線性變換(二)

        上一章節討論了矩陣的基本性質,其中提到了線性變換。什麼是線性變換呢。在數學上如果滿足下式,則矩陣對一個向量的變幻是線性的。                           一般情況下線性變換爲形如:F(a) = aM。

原创 Real-Time-Rendering 向量

        Real-Time-Rendering從第四章開始講解圖形學中常用的數學知識。由於線性代數、幾何等相關知識等還給老師了。。。後面開始根據第四章的知識點並參考大學線性代數課本、3D數學基礎:圖形與遊戲開發等書籍記下圖形學中常

原创 The Graphics Renderring Pipeline

    開始學習計算機圖形經典Real-Time Rendering啦,自己的一些學習心得和總結,以及書上的效果會慢慢總結並在unity上實現以下。這篇文章主要是對數據Real-Time Rendering前三章的總結,同時文章標題使用的

原创 Unity之線性渲染器

      最近再做一個光線類的小遊戲,時間不太夠寫算法的,但是不能斷對算法的研究,週六日補吧~ 今天說說寫光線的時候遇到的一個問題,在使用LineRender組件的時候,一旦在頂點數組中多加一個點從而增加一條線段的時候會發生光線頭粗尾細

原创 Unity之C#注入

衆所周知,Unity採用Mono實現跨平臺。.Net在運行PE類型文件時(如dll,exe)會將此類文件在第一次加載時編譯出IL指令集的文件,此後每次運行該程序只需將IL文件加載進內存即可。如題,實現C#的注入即實現對編譯好的IL文件代碼

原创 求一個數的約數和其數量

約數定義:約數,又稱因數。整數a除以整數b(b≠0) 除得的商正好是整數而沒有餘數,我們就說a能被b整除,或b能整除a。a稱爲b的倍數,b稱爲a的約數。在大學之前,"約數"一詞所指的一般只限於正約數。約數和倍數都是二元關係的概念,不能孤

原创 算法之求兩個數組各任意一位相加和組成的新數組中的前k位

輸入時兩個整數數組,他們任意兩個數的和又可以組成一個數組,求這個和中前k個大的數。 如題,首先想到的暴力排序,把兩個數組能相加得所有數放入一個新的數組,然後用各種排序,假設第一個數組長m,第二個數組長n。若用快速排序或堆排序等較快的排序。

原创 C#之反射

最近在看反射就把獲取各種常用類型變量的方法總結了一遍。C#編譯時會把類的信息,變量,特性等都註冊在一張表上,而基於System.Reflection下的Assembly,Type類等都可以獲取這個表的內容。從而達到根據字符串獲取一個類的實

原创 一天一算法之堆排序

我所知道的三種常用的複雜度爲O(nlogn)的算法有三種,快速排序,堆排序,歸併排序,今天說說堆排序。 首先說幾個概念: 1.堆實際上是一棵完全二叉樹,其任何一非葉節點滿足性質: 任何一非葉節點的關鍵字不大於或者不小於其左右孩子節點的關鍵

原创 一天一算法之冒泡排序

這幾天寫項目,偷點懶,寫個簡單的。 雖然冒泡排序簡單,實際工程中也基本用不到,不過用來入門算法還是不錯的。 using System; /// <summary> /// 冒泡排序,最基本的排序 /// 兩兩比較,碰到大的交換,碰到小的不

原创 算法之字符串選出第一個只出現一次的字符

好久沒寫了...最近打算恢復博客,盡力而爲吧。 給出一串字符串,返回第一個只出現一次的字符。 如:輸入:aabbccddeff 返回:f 最先想到了就是將每個字符都與所有字符對比一遍,不存在相同的則輸出,時間複雜度顯然是o(n2)。 當時

原创 一天一算法之歸併排序

<span style="font-size:18px;"><span style="white-space:pre"> </span>歸併排序是3個時間複雜度爲O(nlogn)唯一一個穩定的算法,不過自己沒有實現出來。。。</span>

原创 算法之反轉鏈表

問題很簡單:反轉一個鏈表。 其實就是對鏈表的基礎操作,思路是順着鏈表頭結點的next指針遍歷整個鏈表。假設鏈表前三個節點分別爲A、B、C。 1.A->next = C; 2.B->next = A; 以A的next節點作爲判斷依據即可遍歷