原创 【Vulkan學習記錄-基礎篇-4】Vulkan中的同步機制

提醒:本文不含任何圖,讀起來可能有些枯燥,如果對Vulkan中的同步還沒有任何瞭解的,建議先參考後面給出的鏈接 [1][2][3] 在Vulkan中,對資源讀寫所需要做的同步是應用程序的職責,Vulkan本身只提供了很少的隱式同步

原创 LeetCode 18 四數之和

給定一個包含 n 個整數的數組 nums 和一個目標值 target,判斷 nums 中是否存在四個元素 a,b,c 和 d ,使得 a + b + c + d 的值與 target 相等?找出所有滿足條件且不重複的四元組。注意:答案中不

原创 LeetCode 31 & 81 旋轉數組搜索問題

31假設按照升序排序的數組在預先未知的某個點上進行了旋轉。( 例如,數組 [0,1,2,4,5,6,7] 可能變爲 [4,5,6,7,0,1,2] )。搜索一個給定的目標值,如果數組中存在這個目標值,則返回它的索引,否則返回 -1 。你可

原创 【Vulkan學習記錄-基礎篇-5】多線程渲染

現代的圖形API都具備對多線程渲染友好的特性,所謂的多線程並不是指GPU端的多線程圖像渲染,而是指在CPU提交DrawCall時所做的一系列工作可以並行化,也就是說多線程渲染其實是在CPU端提升程序的性能。 在使用D3D 11或者

原创 圓面、球面上的採樣方法

(本文內容主要來自《pbrt》13.5、13.6) 如果yyy滿足概率密度分佈p(y)p(y)p(y),如果要隨機地獲取一個yyy的話,可以先獲取一個隨機數ttt,然後代入它的累積概率密度P(y)=tP(y)=tP(y)=t,然後

原创 【Vulkan學習記錄-基礎篇-3】紋理和模型導入、生成Mipmap

前兩篇的代碼是在太過於冗雜,於是我做了一下簡單的封裝,現在的代碼結構爲: VKApp 負責初始化窗口以及VkInstance、VkDevice VKResourceCreator 負責創建各種資源(Image、ImageView

原创 【Vulkan學習記錄-基礎篇-2】用Vulkan畫兩個重疊的矩形

在前一篇中完成了對Vulkan的初始化和三角形的繪製,其中很多東西還沒有被用到,這一節最終將繪製這樣兩個重疊的矩形,並且它們會一直繞着屏幕中心點進行旋轉。 將要補充使用的內容有:VertexBuffer、IndexBuffer、

原创 【Vulkan學習記錄-基礎篇-1】用Vulkan畫一個三角形

好久沒有更新過博客了,上半年一直忙着找實習的事情,不過現在已經入職一段時間了,也可以抽出時間來繼續整理一些內容,所以最近會盡量變得勤快一點來寫博客。 Vulkan是新一代的圖形API,具有跨平臺、高性能的優勢,它強調減少對驅動的依

原创 TrueType字體文件解析和字體光柵化

本文主要記錄一下這幾天做的一個小Demo,它能夠讀取.ttf格式的字體文件,獲取其中的相關數據,將得到的字體信息光柵化處理後輸出到一張PNG文件中,最終輸出的結果如下: 有興趣的可以參考一下源碼: https://github.c

原创 pbrt源碼中用全主元消去法求矩陣逆的實現

《pbrt》一書配套源碼上對於矩陣求逆使用的是全主元消去法,但是它的實現與我所見到過的全主元消去法還是略有不同的,有的地方還是值得思考一下的。 學過線性代數的應該都知道求矩陣的逆有伴隨矩陣法和初等變換法等方法,而高斯消元法、列主元消去

原创 平方根倒數的一個快速近似計算算法

已知一個浮點數xxx,現在需要求1x\frac{1}{\sqrt{x}}x​1​,這是一個非線性方程組的求解問題,可以採用不動點迭代法、牛頓迭代法之類的方法來解決。但是早在上個世紀,在遊戲《Quake III》中,開發者就採用了一種非

原创 非線性方程的數值解法

設有一個單變量的非線性方程f(x)=0f(x) = 0f(x)=0,往往這樣的方程沒有直接的求根公式,因此沒有直接方法計算,只能使用迭代法來求數值解,二分法就是這樣的一種方法,這裏介紹一下其他的幾種方法 不動點迭代法 我們可以將非線性

原创 拉格朗日插值法與牛頓插值多項式

多項式插值 先有一個函數f(x)f(x)f(x),如果給定在區間[a,b][a,b][a,b]上的n+1n+1n+1個點a<=x0<x1<⋅⋅⋅<xn<=ba<=x_0<x_1<···&

原创 快速傅里葉變換與快速數論變換

在拉格朗日插值法與牛頓插值多項式 中有說明當給定n+1個點值序列(x0,y0),(x1,y1),⋅⋅⋅,(xn,yn)(x_0,y_0),(x_1,y_1),···,(x_n,y_n)(x0​,y0​),(x1​,y1​),⋅⋅⋅,(

原创 TSP問題總結歸納

TSP問題即旅行商問題,經典的TSP可以描述爲:一個商品推銷員要去若干個城市推銷商品,該推銷員從一個城市出發,需要經過所有城市後,回到出發地。應如何選擇行進路線,以使總的行程最短。從圖論的角度來看,該問題實質是在一個帶權完全無向圖中,