原创 Vulkan-圖像處理(卷積運用)

本部分主要介紹:將計算着色器與單獨的計算隊列一起使用,以將不同的卷積內核(和效果)實時應用於輸入圖像。 一、卷積 卷積在信號處理領域有極其廣泛的應用, 也有嚴格的物理和數學定義. 本文只討論卷積在數字圖像處理中的應用. 在數字圖

原创 VulkanAPI架構

Vulkan API架構及詳述 一、API架構 下圖是Vulkan中主要的組件以及它們之間的關係: 1.1 Device Device很好理解,一個Device就代表着一個你係統中的物理GPU。它的功能除了讓你可以選擇用來渲染(

原创 vulkan_延遲渲染

延遲渲染 一、簡述 我們現在一直使用的光照方式叫做正向渲染(Forward Rendering)或者正向着色法(Forward Shading),它是我們渲染物體的一種非常直接的方式,在場景中我們根據所有光源照亮一個物體,之後再渲

原创 GLSL——TBN矩陣

TBN矩陣 一、思考 我們研究一個矩陣的時候通常需要了解一個矩陣是從哪一個空間或者說矩陣而來的。如果搜索一下TBN矩陣運算公式可以發現其決定於物體座標系下的頂點和紋理座標系下的紋理座標。想到這裏我們需要明確TBN運算的輸入和輸出是

原创 Vulkan_實例化

實例化 本次我們使用實例化功能從單個頂點緩衝區渲染具有可變參數和紋理的同一網格的許多實例(索引分層紋理)。使用輔助頂點緩衝區傳遞實例數據。 假設你有一個繪製了很多模型的場景,而大部分的模型包含的是同一組頂點數據,只不過進行的是不同

原创 Vulkan_SSAO—屏幕空間環境光遮蔽

屏幕空間環境光遮蔽 我們已經在前面的基礎教程中簡單介紹到了這部分內容:環境光照(Ambient Lighting)。環境光照是我們加入場景總體光照中的一個固定光照常量,它被用來模擬光的散射(Scattering)。在現實中,光線

原创 Vulkan_Shader—幾何着色器之法線可視化

幾何着色器 我們大部分情況下僅使用頂點着色器(vertex shader)和片元着色器(fragment shader),而實際上vulkan還提供了一個可選的幾何着色器(geometry shader)。幾何着色器位於頂點和片元

原创 VulkanAPI_基本類型_小結

Vulkan 基本類型 學而不思則罔,思而不學則殆! Vulkan 基本類型,Vulkan 開發需要設計的類型非常多,整理其基本類型如下,主要包含設備、隊列、命令緩衝、隊列家族、渲染通,管線等,具體內容如下所示: Vulka

原创 Vulkan_粒子及粒子系統數據生成

粒子及粒子系統 一、粒子 爲了給我們當前這個黑漆漆的世界帶來一點生機,我們將會渲染一些粒子(Sprite)來填補這些空虛。粒子有很多種定義,但這裏主要是指一個2D圖片,它通常是和一些擺放相關的屬性數據一起使用,比如位置、旋轉角度以

原创 Vulkan_Shader—天空盒原理及源碼

天空盒 一、原理:立方體貼圖 我們已經使用2D紋理很長時間了,但除此之外仍有更多的紋理類型等着我們探索。在部分中,我們將討論的是將多個紋理組合起來映射到一張紋理上的一種紋理類型:立方體貼圖(Cube Map)。 簡單來說,立方體貼

原创 Vulkan_Shader—高級光照_陰影_part1

高級光照_陰影原理概述 陰影是光線被阻擋的結果;當一個光源的光線由於其他物體的阻擋不能夠達到一個物體的表面的時候,那麼這個物體就在陰影中了。陰影能夠使場景看起來真實得多,並且可以讓觀察者獲得物體之間的空間位置關係。場景和物體的深度

原创 Vulkan填坑學習Day26-3—加載模型

加載模型 Vulkan 加載模型(Loading models),應用程序現在已經可以渲染紋理3D模型,但是 vertices 頂點和 indices 索引數組中的幾何體不是很有趣。在本章節我們擴展程序,從實際的模型文件衝加載頂點

原创 Vulkan填坑學習Day26-2—深度緩衝區

Vulkan 深度緩衝區 Vulkan 深度緩衝區,到目前爲止,我們所使用的幾何圖形爲3D,但仍然完全扁平的。在本章節中我們添加Z座標到3D模型數據中。我們將使用這個第三個座標在當前平面上放置一個正方形,以查看幾何圖形沒有進行深度

原创 Vulkan填坑學習Day27-1—貼圖LOD(mipmap)

Vulkan 生成貼圖(mipmap) Vulkan 生成貼圖(mipmap),現在我們的程序可以加載和渲染3D模型了。Mipmap廣泛應用於遊戲和渲染軟件,對於如何創建它們,Vulkan給了我們完全的控制權。 Mipmap是縮小

原创 Vulkan填坑學習Day27-2—多采樣抗鋸齒(多重採樣_Multisampling)

Vulkan 多重採樣(Multisampling) 我們的程序現在加載了多層LOD的紋理,它修復了對象遠離觀察者時的鋸齒問題。圖像顯得更加平滑,但是仔細觀察,你會發現在繪製的幾何圖形的邊緣上有鋸齒狀的圖案。這在我們早期的一個程序