五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

Hello Vulkan(五)| 圖形渲染新技術(shù)Vulkan紋理

2023-02-16 16:25 作者:虹圖AI開放平臺  | 我要投稿

上一期技術(shù)分享中,我們講述了如何關(guān)于Vulkan的Data Buffers使用及VMA內(nèi)存管理器使用,自己創(chuàng)建或使用VMA在顯存里創(chuàng)建Buffers,并在CPU進(jìn)行讀取或?qū)懭搿?/p>

本期將繼續(xù)分享關(guān)于Vulkan的技術(shù),內(nèi)容是非常有趣的部分,即「紋理繪制」,我們會介紹如何在Vulkan中如何進(jìn)行紋理映射,所見即所得。很有趣的是,我們虹圖的英文即“TexelJoy”,其中“Texel”就是紋理的最小單元 – 紋素,熟悉圖形渲染的同學(xué)肯定不陌生,如果你感覺陌生也沒關(guān)系,像素“Pixel”總聽過吧,接下來本期講述的內(nèi)容也會涉及紋素和像素的關(guān)系。

基礎(chǔ)概念

紋理映射:圖形渲染中的一種將單獨的圖片映射覆蓋到3D模型上,并且跟隨模型移動、變換,映射到屏幕空間的圖形渲染操作。

紋理:進(jìn)行紋理映射的圖片,部分硬件要求必須是2的整數(shù)冪,當(dāng)然也并不是所有硬件的要求,確保安全最好是2的整數(shù)冪。

像素(Pixel):屏幕上的每個小點。

紋素(Texel):紋理上的每個小點。使用紋素這個術(shù)語,而不是像素來表示紋理對象中的顯示元素,主要是為了強調(diào)紋理對象的應(yīng)用方式。

紋理坐標(biāo):我們使用S,T來表示紋理對象中的紋素位置。S,T也可以用U,V來表示,紋理坐標(biāo)有時也稱UV坐標(biāo)。

映射原理:帶有紋理坐標(biāo)的3D模型會在每個頂點都有ST紋理坐標(biāo),由紋理坐標(biāo)找到對應(yīng)應(yīng)該在屏幕顯示的紋理中紋素位置,如下圖:

那么如何給每個頂點指定合適ST坐標(biāo)呢?

平面比較容易,做個比例縮小即可:

球體那就要做一些運算:

換做經(jīng)緯度:

這樣的模型呢?貌似有些復(fù)雜了。

這個可以放心,都是現(xiàn)成的自動化算法可以直接使用進(jìn)行計算ST坐標(biāo)。

存儲類型

讓我們回到Vulkan,先說內(nèi)存類型,首先分為CPU內(nèi)存和GPU顯存,GPU顯存則分為主機(jī)內(nèi)存(Host Visible Memory)和設(shè)備內(nèi)存(Device Local Memory)。CPU可以向主機(jī)內(nèi)存進(jìn)行讀寫操作。設(shè)備內(nèi)存是一種設(shè)備可見的內(nèi)存,常見的緩沖內(nèi)存和圖像內(nèi)存,可以被設(shè)備本地快速使用,而設(shè)備內(nèi)存最大的用處就是儲存紋理,因為紋理讀取是需要快速完成的。

在Vulkan里應(yīng)該如何設(shè)置紋理映射的參數(shù)呢?我們先看下之前OpenGL如何進(jìn)行參數(shù)設(shè)置的:

但在Vulkan里則是有一定區(qū)別的,但是類似于創(chuàng)建Buffer的操作。

對比下Vulkan和OpenGL,其實可以發(fā)現(xiàn)在設(shè)置Mode為LINEAR(線性濾波法)時Vulkan是mipmapMode,而OpenGL只是Mode。那么這個Mipmap是什么意思呢?Mipmap是縮小版本的image,每個新image是前一張圖的寬度和高度的一半。Mipmap用于作為細(xì)節(jié)級別(即Level of Detail)的一種方式。遠(yuǎn)離相機(jī)的物體將從較小的mip圖像中采樣紋理。使用較小的圖像可以提高渲染速度,避免鋸齒,具體做法就是平均4個像素,生成1個新的像素,依次循環(huán)。

最后放一個我覺得對大家有幫助的文件,就是如何把一個bmp、png、jpg圖片讀取成紋理。

關(guān)于Vulkan關(guān)于Command Buffers的內(nèi)容,我們會在本系列后續(xù)內(nèi)容中繼續(xù)與大家分享,Command Buffers也是Vulkan中很難理解,但卻很重要的一部分內(nèi)容。

敬請期待~

Hello Vulkan(五)| 圖形渲染新技術(shù)Vulkan紋理的評論 (共 條)

分享到微博請遵守國家法律
东乡县| 无为县| 漯河市| 珠海市| 广元市| 陆河县| 特克斯县| 南召县| 普洱| 七台河市| 宁强县| 梅州市| 元谋县| 临汾市| 莱阳市| 桦甸市| 定日县| 南城县| 浙江省| 平潭县| 当涂县| 陵川县| 辽源市| 平南县| 互助| 长治县| 苏尼特左旗| 诸城市| 三河市| 马鞍山市| 嘉黎县| 新宁县| 咸宁市| 广丰县| 清流县| 上犹县| 宁波市| 永春县| 泾川县| 弥渡县| 临汾市|