原创 學習Shader所需的數學基礎(矩陣)

在三維數學中,我們通常會使用矩陣來進行變換。一個矩陣可以把一個矢量從一個座標空間轉換到另一個座標空間。 矢量和矩陣 我們可以用矩陣來表示矢量。實際上,矢量可以看成是n×1的列矩陣或1×n的行矩陣,其中n對應了矢量的維度。 把矢量和

原创 學習Shader所需的數學基礎(座標系,點和矢量)

座標系 在三維笛卡爾座標系中,我們需要定義3個座標軸和一個原點。這3個座標軸被稱爲該座標系的基矢量,相互垂直且長度爲1的基矢量被稱爲標準正交基,相互垂直但長度不爲1的基矢量被稱爲正交基 左手座標系與右手座標系 我們可以利用雙手來判

原创 一篇文章搞懂到底什麼是渲染流水線

本文實際上是《Unity Shader入門精要》一書的讀書筆記,書中關於渲染流水線的講解清楚易懂,非常適合作爲Shader學習的入門書籍。自知好記性不如爛筆頭,遂將相關內容再結合自己的一些理解寫作這篇博客記錄下來。 我們將圖像繪製

原创 【劍指Offer】調整數組順序使奇數位於偶數前面

文章目錄題目描述解法1實現代碼解法2實現代碼解法3實現代碼 題目描述 輸入一個整數數組,實現一個函數來調整該數組中數字的順序,使得所有的奇數位於數組的前半部分,所有的偶數位於數組的後半部分,並保證奇數和奇數,偶數和偶數之間的相對位

原创 【劍指Offer】二進制中1的個數

文章目錄題目描述補碼解法1實現代碼解法2實現代碼 題目描述 輸入一個整數,輸出該數二進制表示中1的個數。其中負數用補碼錶示。 補碼 解題前,我們先來了解一下補碼。在計算機系統中,數值都是用補碼來表示和存儲的。 而原碼就是數值的二進

原创 【劍指Offer】矩形覆蓋

文章目錄題目描述解法1實現代碼解法2實現代碼解法3實現代碼 題目描述 我們可以用2*1的小矩形橫着或者豎着去覆蓋更大的矩形。請問用n個2*1的小矩形無重疊地覆蓋一個2*n的大矩形,總共有多少種方法? 解法1 一開始嘗試解這道題的時

原创 【劍指Offer】變態跳臺階

文章目錄題目描述解法1實現代碼解法2實現代碼解法3實現代碼 題目描述 一隻青蛙一次可以跳上1級臺階,也可以跳上2級……它也可以跳上n級。求該青蛙跳上一個n級的臺階總共有多少種跳法。 解法1 本題是【劍指Offer】跳臺階的進化版本。

原创 【劍指Offer】跳臺階

文章目錄題目描述解法1實現代碼排列組合解法2實現代碼 題目描述 一隻青蛙一次可以跳上1級臺階,也可以跳上2級。求該青蛙跳上一個n級的臺階總共有多少種跳法(先後次序不同算不同的結果)。 解法1 首先對這道題,我們可以通過找規律來解 一隻

原创 【劍指Offer】旋轉數組的最小數字

文章目錄題目描述解法1實現代碼二分查找解法2實現代碼一點想法 題目描述 把一個數組最開始的若干個元素搬到數組的末尾,我們稱之爲數組的旋轉。 輸入一個非減排序的數組的一個旋轉,輸出旋轉數組的最小元素。 例如數組{3,4,5,1,2}爲{

原创 【劍指Offer】用兩個棧實現隊列

文章目錄題目描述棧和隊列解法實現代碼 題目描述 用兩個棧來實現一個隊列,完成隊列的Push和Pop操作。 隊列中的元素爲int類型。 棧和隊列 解題前我們先來了解下什麼是棧和隊列 棧是限制插入和刪除只能在一個位置上進行的表,是後進先出

原创 【劍指Offer】重建二叉樹

劍指Offer 文章目錄題目描述二叉樹的前序中序後序遍歷前序遍歷過程中序遍歷過程後序遍歷過程解法1實現代碼解法2實現代碼遇到的問題 題目描述 輸入某二叉樹的前序遍歷和中序遍歷的結果,請重建出該二叉樹。假設輸入的前序遍歷和中序遍歷的結果

原创 Unity腳本生命週期與執行順序

文章目錄腳本生命週期MonoBehavior生命週期圖腳本執行順序自定義執行順序 在Unity中,腳本可以理解爲附加在遊戲對象上的用於定義遊戲對象行爲的指令代碼。必須綁定在遊戲對象上才能開始它的生命週期。遊戲對象可以理解爲能容納各種

原创 A*尋路算法詳細解讀

文章目錄A*算法描述簡化搜索區域概述算法步驟進一步解釋具體尋路過程模擬需要更新F值的情況Lua代碼實現 在學習A*算法之前,很好奇的是A*爲什麼叫做A*。在知乎上找到一個回答,大致意思是說,在A*算法之前有一種基於啓發式探索的方法來提

原创 劍指Offer 替換空格

劍指Offer 替換空格題目描述解法1實現代碼解法2實現代碼 題目描述 請實現一個函數,將一個字符串中的每個空格替換成“%20”。例如,當字符串爲We Are Happy.則經過替換之後的字符串爲We%20Are%20Happy。 解

原创 劍指Offer 從尾到頭打印鏈表

劍指Offer 從尾到頭打印鏈表題目描述解法1實現代碼一點補充 題目描述 輸入一個鏈表,按鏈表值從尾到頭的順序返回一個ArrayList。 解法1 這道題主要思路是while循環從頭遍歷整個列表,將每個元素插入到List中,因爲要求是