概述: 索引材質(zhì)貼圖技術(shù)
Artem Krizhanovskiy展示了索引材料映射方法,該方法允許他通過(guò)對(duì)來(lái)自預(yù)定義LUT的所有材料數(shù)據(jù)進(jìn)行采樣來(lái)增加細(xì)節(jié)而不會(huì)造成內(nèi)存損失。
介紹
這種方法的主要思想是減少壓縮偽像,增加所有PBR通道的細(xì)節(jié),獲得高度可自定義的陰影,而內(nèi)容沒(méi)有任何變化,最后減少內(nèi)存。?


方法
我不使用直接紋理化方法,而是依靠基于材料的方法,其中使用漸變(磨損或狀況)和材料,我們可以從預(yù)定義的LUT中采樣所有材料數(shù)據(jù)。
唯一的輸入是:
-4通道全尺寸漸變ID映射,已壓縮
-完整的切線或?qū)ο罂臻g法線貼圖,已壓縮
-16x16反照率,重新繪制LUT,未壓縮
-16x16金屬,粗糙度LUT,未壓縮




漸變紋理:R-環(huán)境光遮擋,G-材質(zhì)ID,B-細(xì)節(jié)ID,A-漸變


材質(zhì)LUT1:RGB-反照率,A-重涂遮罩|?未壓縮,無(wú)mip-map

材料LUT2:R-金屬,G-粗糙度,BA-空|?未壓縮,無(wú)mip-map
基本上,在讀取“材質(zhì)LUT”紋理時(shí),漸變用作U,材質(zhì)ID貼圖用作V:texture(materialLUT_sampler,vec2(gradient,material_ID))
從示意圖上看,它看起來(lái)像這樣:

該過(guò)程非常簡(jiǎn)單,可以使用代碼或基于節(jié)點(diǎn)的編輯器(例如Substance Designer或Unreal Engine)進(jìn)行復(fù)制:

該模型包含16種材料:

重涂:


在這種情況下,其他的迷彩圖案紋理將用作重繪顏色。
重新繪制的想法是基于反向混合。眾所周知,平凡的線性插值看起來(lái)像這樣:
結(jié)果= C_base *(1-alpha)+ C_paint * alpha
我們可以得出C_base:
C_base =(結(jié)果-C_paint * alpha)/(1-alpha)?
并將其與新顏色混合:
結(jié)果= C_base *(1-alpha)+ C_repaint * alpha
細(xì)節(jié)決定成敗
詳細(xì)(頂部)圖像的紋理像素密度高16倍,而內(nèi)存僅重11%。

這種方法的程序性質(zhì)使我可以將完整的PBR細(xì)節(jié)集應(yīng)用于模型,該模型適用于所有材質(zhì)和重新繪制選項(xiàng)。細(xì)節(jié)圖由16個(gè)圖塊組成,并具有一組細(xì)節(jié)法線和細(xì)節(jié)漸變。Detail_ID映射用于定義哪個(gè)圖塊用于細(xì)節(jié)。我建議將BC7紋理格式與RG中的普通R和G通道以及B中的漸變一起使用。代碼中需要進(jìn)一步恢復(fù)普通B通道。您可能會(huì)注意到一些細(xì)節(jié)是空白的,因?yàn)槲也恍枰四P蜕系?6個(gè)細(xì)節(jié)。

您可以看到更改detail_ID如何影響表面:
