<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      形態抗鋸齒技術

      形態抗鋸齒技術 SMAA(Enhanced subpixel morphological antialiasing)

      一、背景

      ? ?????SMAA是后處理抗鋸齒技術的一種,基于MLAA形態抗鋸齒技術發展而來。MLAA抗鋸齒流程分為三個pass:邊緣檢測、混合權重因子計算、混合,如下圖所示。

      ? ?????圖a為輸入圖像,預期近似值用紅線勾勒,覆蓋區域用綠色表示。圖b為原始算法中的預定義圖案。圖c為Jimenez實現的GPU預計算的area texture。圖d為檢測到的邊緣。圖e為計算出的覆蓋區域。圖f為最終混合的圖像。 SMAA 算法通過擴展 (b) 和 (c) 來徹底改造整個流程,以實現清晰的幾何特征和對角線處理。局部對比度自適應消除了 (d) 中的偽邊緣。擴展的圖案檢測和精確搜索提高了 (e) 中的準確率。SMAA 可以處理 (f) 中的額外樣本,以實現精確的亞像素特征和時間超采樣。

      二、方案

      2.1 邊緣檢測 pass

      ? ?????采用luma 邊緣檢測方案。首先輸入顏色紋理,并設置閾值,根據紋理坐標采樣得到初始像素RGB值,將其乘以luma系數(0.2126,0.7152,0.0722)后得到初始像素luma值。然后類似的,分別計算得到左(-1,0)、上像素(0,-1)的luma值,再分別計算左、上像素和初始像素luma差值delta0。判斷delta0是否大于閾值,如果大于則edges等于1,否則等于0,如果edges的兩個分量都等于0則認為此像素不在邊緣,退出循環。

      ? ?????SMAA中為了避免將漸變顏色識別為邊緣,加入了局部對比度判斷。首先分別計算得到右(1,0)、下像素(0,1)的luma值,再分別計算右、下像素和初始像素luma差值delta1。再次分別計算得到左左(-2,0)、上上像素(0,-2)和左、上像素luma差值delta2。比較delta0、delta1、delta2得到最大值maxDelta。判斷如果delta0是否大于等于maxDelta,是則edges等于1,否則等于0。

      2.2 混合權重計算 pass

      ? ?????混合權重計算思路如下圖所示:\(C_{opp}\) 處像素上邊界和\(C_{old}\) 處像素下邊界共享混合權重\(a\) ,而\(a\) 根據上一步的edge紋理的邊緣長度和端點樣式查找表得到。

      2.2.1 預計算混合權重紋理Area texture

      ? ?????MLAA中根據采樣像素到左右邊緣線端點距離distance、左端點樣式e1、右端點樣式e2來獲取到采樣像素混合權重。如下圖所示端點樣式分為4種,加上不存在的0.5情況,紋理因此被分為5乘以5的子紋理,每個子紋理大小為采樣最大可達距離(默認為16)

      ? ?????SMAA中進一步考慮了對角線樣式,如下圖所示左側為MLAA處理的對角線,中間為SMAA處理的對角線。SMAA對角線重矢量化輸入為dr、dl、e1、e2。

      ? ?????在混合權重計算中,SMAA會先進行對角線模式檢測,然后再進行正交檢測。如果對角線模式檢測失敗,則觸發正交檢測。否則,將使用對角線模式檢測生成的區域。

      2.2.2 預計算回退距離紋理Search texture

      ? ?????SMAA計算混合權重搜索邊緣線端點時,為了應對交叉邊界情況,使用了雙線性插值的方法,將采樣坐標偏離(0.25,0.125)如下圖所示。

      ? ?????因此,左右端點的樣式共有16種情況 \((\frac{0}{32}、\frac{21}{32}、\frac{7}{32}、\frac{28}{32})(\frac{3}{32}、\frac{24}{32}、\frac{10}{32}、\frac{31}{32})(\frac{1}{32}、\frac{22}{32}、\frac{8}{32}、\frac{29}{32})(\frac{4}{32}、\frac{25}{32}、\frac{11}{32}、\frac{32}{32})\),因此采樣坐標為33個,原始紋理坐標為(66,33)。考慮大部分采樣值都為0,因此裁剪掉部分紋理并將其變為2次冪(64,16)。紋理的采樣值只有(0,1,2)三種情況,也就是回退距離最大為2。

      2.2.3 對角線混合權重計算

      ?????首先判斷當前紋理坐標下采樣的edge紋理顏色g分量(top邊界)是否大于0,是則說明當前位置像素可能存在對角線,否則跳出。然后進入對角線末端像素搜索,首先判斷edge紋理顏色r分量(left邊界)是否大于0,是則說明當前像素存在45°對角線,然后往左下(-1,1)搜索。SMAASearchDiag1函數中首先創建紋理坐標偏移量\(t=vec3(1/w,1/h,1.0)\) 、起始紋理坐標\(coord=vec4(x,y,-1.0,1.0)\),然后不斷循環判斷\(coord.z<最大搜索步長-1\)\(coord.w>0.9\)

      ?????其中,

      \[coord.xyz=t*vec3(-1.0,1.0,1.0)+coord.xyz=vec3(coord.x-1/w,coord.y+1/h,coord.z+1.0) \]

      ? ?????\(coord.w\) 為新的紋理坐標采樣的edge.rg與vec2(0.5,0.5)的點乘,如果\(coord.w>0.9\) 則說明采樣位置仍然有邊界存在,否則說明到達對角線端點像素循環結束,返回搜索長度d1和端點樣式e1 。因此搜索結束有兩種情況,如果是達到對角線端點結束則將搜索長度再加1。

      ?????類似的往右上(1,-1)搜索得到另一個方向上對角線長度d2和端點樣式e2。判斷兩側對角線總長度大于2,是則提取邊界樣式。首先聲明端點紋理坐標

      \[coord1=vec2(coord.x+\frac{-d_1+0.25}{w},coord.y+\frac{d_1}{h}) \]

      \[coord2=vec2(coord.x+\frac{d_2}{h},coord.y+\frac{-d_2-0.25}{w}) \]

      \[coord1=vec2(coord.x+\frac{-d_1+0.25}{w}-\frac{1}{w},coord.y+\frac{d_1}{h}) \]

      \[coord2=vec2(coord.x+\frac{d_2}{h}+\frac{1}{w},coord.y+\frac{-d_2-0.25}{w}) \]

      ? ?????使用端點的紋理坐標雙線性采樣,向右或向上偏移0.25后會有4種結果0.0、0.25、0.75、1.0。通過SMAADecodeDiagBilinearAccess函數發現采樣結果中只有0.25和1時才是左邊界,只有0.75和1時才是上邊界,因此

      \[r==0.25||r==1有左邊界 \]

      \[r==0.75||r==0無左邊界 \]

      \[g==0.25||g==1有上邊界 \]

      \[g==0.75||g==0無上邊界 \]

      ? ?????上下邊界同時考慮是否存在共有4種情況0、1、2、3,然后對于沒找到對角線端點的強行賦值上下邊界為0

      \[cc=vec2(r*2+g) \]

      ? ?????如此一來,端點樣式共有16種情況。使用AreaTex采樣混合權重時,

      ?

      \[coord.x=\frac{最大對角線距離*e.x+dist+0.5}{AreaTexSize.x}+0.5 \]

      \[coord.y=\frac{最大對角線距離*e.y+dist+0.5}{AreaTexSize.y} \]

      ? ?????需要注意的時,原始AreaTex尺寸為(160,560),其中橫軸方向0到80的左側為正交線混合權重,80到160為對角線混合權重,縱軸方向0到80為subpixel為0的情況。因此對于一般情況對角線混合權重采樣范圍實際上是(80,80)。

      ? ?????往左上(-1,-1)和右下(1,1)的-45°對角線類似的混合權重可以計算得到。

      2.2.4 水平Horizontal混合權重

      ? ?????首先判斷當前紋理坐標下采樣的edge紋理顏色g分量(top邊界)是否大于0,是則說明存在水平邊界。然后判斷計算的對角線混合權重是否大于0,不是則說明不存在對角線邊界,這樣就繼續進行水平混合權重的獲取。類似的搜索水平邊界端點,首先設置采樣的紋理坐標為

      \[texcoord=vec2(x-0.25/w,y-0.125/h) \]

      ? ?????這樣設置可以通過雙線性插值一次獲取4個單元的紋理值

      \[f_{x}(b_1,b_2,x)=x*b_1+(1-x)*b_2 \]

      \[f_{xy}(b,x,y)=f_x(b_1,b_2,x)+f_x(b_3,b_4,x)*(1-y) \]

      ? ?????然后初始化端點變量\(e=vec2(0.0,1.0)\),進入循環判斷

      \[(1) texcoord.x>(\frac{-2.0*最大搜索步長-0.25}{h}+x) \]

      \[(2) e.g>0.8281 \]

      \[(3) e.r==0.0 \]

      ? ?????對于條件(2)分析可知,4個單元每個取值0或1則有16種紋理值情況\((\frac{0}{32}、\frac{21}{32}、\frac{7}{32}、\frac{28}{32})(\frac{3}{32}、\frac{24}{32}、\frac{10}{32}、\frac{31}{32})(\frac{1}{32}、\frac{22}{32}、\frac{8}{32}、\frac{29}{32})(\frac{4}{32}、\frac{25}{32}、\frac{11}{32}、\frac{32}{32})\),這時考慮到交叉邊界取值范圍,無效值小于\(\frac{25}{32}\)而有效值大于\(\frac{28}{32}\),取平均后等于0.8281,也就是只要采樣結果大于0.8281就證明此紋理單元不在水平端點上。

      ? ?????條件(3)保證了遇到交叉邊界循環終止。循環時采樣紋理坐標每次水平移動兩個單元

      \[texcoord=vec2(texcoord.x-2.0/w,texcoord.y) \]

      ? ?????因此循環結束時,結束的采樣位置到真正水平端點需要平移1-3個單元,首先需要減去采樣的0.25偏移,然后減去共有的1單元偏移,最后使用SearchTex根據水平端點的樣式采樣得到0、1、2這樣的偏移值。類似的搜索到水平另一側的端點,代入水平距離和端點樣式通過Areatexture得到混合權重。

      ? ?????SMAA中優化了轉角情況,如下圖所示角的交叉邊長度至少為 2 像素(參見第二列像素),而鋸齒輪廓線的交叉邊長度僅為 1 像素(向右呈階梯狀)。除了常規邊緣(紅色)之外,提取擴展交叉邊(橙色)可以區分這兩種情況,從而得到更精確的重新矢量化結果(粉色),而不是圓角(藍色)。

      2.3 顏色混合Pass

      ? ?????由上述過程可知,混合權重紋理每個單元存儲的依次是(0,0)處的上邊界混合權重、(0,1)處的下邊界混合權重、(0,0)處的左邊界混合權重、(-1,0)處的右邊界混合權重。因此最后混合Pass首先采樣(1,0)紋理的左邊界(A通道)的紋理值,然后采樣(0,1)紋理的下邊界(G通道)的紋理值,最后采樣(0,0)紋理的RB通道構成混合權重a。

      ? ?????判斷是否混合權重都為0.0,是則采樣原本顏色紋理,否則根據權重偏移采樣紋理坐標并采樣值乘以權重。

      \[color=texture2D(colorTex,textcoord+vec2(-a.r/w,0.0)).rgb*a.r \]

      \[color+=texture2D(colorTex,textcoord+vec2(0.0,a.g/h).rgb*a.g \]

      \[color+=texture2D(colorTex,textcoord+vec2(a.b/w,0.0).rgb*a.b \]

      \[color+=texture2D(colorTex,textcoord+vec2(0.0,-a.a/h)).rgb*a.a \]

      \[color/=dot(a,1.0) \]

      posted @ 2025-05-21 16:49  王小于的啦  閱讀(268)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 孝感市| 免费无码又爽又刺激网站直播| 亚洲精品尤物av在线网站| 成人网站免费观看永久视频下载| 亚洲中文字幕无码永久在线| 天堂资源在线| 女人香蕉久久毛毛片精品| 婷婷伊人久久| 国产成人高清精品亚洲| 亚洲欧美激情在线一区| 国产高清在线精品一本大道| 亚洲人成小说网站色在线| 国产在线精品成人一区二区| 内射干少妇亚洲69xxx| 亚洲高清偷拍一区二区三区| 亚洲AV熟妇在线观看| 偷看少妇自慰xxxx| 国产精品人妻| 四虎国产精品久久免费精品| 欧美肥老太wbwbwbb| 成人午夜在线观看日韩| 国产老熟女视频一区二区| 亚洲色大成网站WWW久久| 熟女一区二区中文在线| 福利一区二区不卡国产| 国产黄色看三级三级三级| japanese无码中文字幕| 人妻av无码系列一区二区三区| 亚洲日韩中文字幕在线播放| 欧洲精品久久久AV无码电影| 时尚| 麻豆av一区二区三区| 国产精品午夜剧场免费观看| 江川县| 亚洲精品综合网二三区| 久久精品无码免费不卡| 亚洲婷婷综合色高清在线| 亚洲无av在线中文字幕| 日本高清中文字幕免费一区二区| 四虎国产精品永久在线国在线| 亚洲无码在线免费观看|