久久亚洲成a人片熟女精品色一区二区三区|国产精品视频第一精品视频|av天堂热无码手机版|亚洲?v无码久久无遮挡|国产精品偷伦视频免费观看国产|麻豆国产自产精品丰满熟妇|av无码av不卡一区二区|久久亚洲精品中文字

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營的一線實(shí)戰(zhàn)洞察。

自研引擎必修課:Mipmap與LOD的生成、接入與調(diào)優(yōu)實(shí)踐

自研引擎必修課:Mipmap與LOD的生成、接入與調(diào)優(yōu)實(shí)踐 1. 遠(yuǎn)處的摩爾紋和近處的模型抖動(dòng)Mipmap與LOD到底在解決什么1.1 一個(gè)簡單引擎也躲不過的渲染事故當(dāng)我在做一個(gè)簡化版引擎時(shí)第一個(gè)真正讓我頭皮發(fā)麻的畫面問題不是光照不對而是地板紋理在鏡頭拉遠(yuǎn)時(shí)開始瘋狂閃爍像有一層白色雪花在瓷磚縫里跳舞。與此同時(shí)遠(yuǎn)處山坡上的低模樹樁每一幀都在輕微抖動(dòng)邊緣像有碎振動(dòng)。這兩個(gè)現(xiàn)象一個(gè)是典型的高頻紋理欠采樣另一個(gè)是幾何體下采樣后的時(shí)序抖動(dòng)——本質(zhì)上都是同一類問題我們讓渲染管線以超出它分辨率能力的方式去表達(dá)細(xì)節(jié)。Mipmaps和LOD就是解決這兩個(gè)問題最經(jīng)典也最實(shí)用的工程手段。Mipmap為紋理提前生成一組逐級降低分辨率的備份當(dāng)屏幕像素密度不足以重現(xiàn)高頻細(xì)節(jié)時(shí)GPU自動(dòng)切換到模糊的層級避免閃爍和摩爾紋。LOD則為同一個(gè)物體準(zhǔn)備多檔精度的網(wǎng)格離得遠(yuǎn)就畫粗模型的把三角形預(yù)算讓給屏幕里更值得表現(xiàn)的部分。在商業(yè)引擎里這兩個(gè)功能往往是一行設(shè)置的事勾上Generate Mipmaps再開一個(gè)Auto LOD。但在一個(gè)自己從零搭的簡單引擎里這兩件事都要親手串起來——從紋理資源的生成、上傳到渲染管線的采樣狀態(tài)再到模型數(shù)據(jù)的組織與運(yùn)行時(shí)切換。整個(gè)過程走一遍比看十遍文檔都有效。這篇內(nèi)容適合正在自研引擎、或者想搞明白引擎里那個(gè)Mipmap選項(xiàng)到底在做什么的開發(fā)者。我會(huì)把原理、實(shí)現(xiàn)鏈路、工程接入和踩坑記錄全部攤開講代碼以O(shè)penGL風(fēng)格為例但思路是圖形API通用的。1.2 為什么遠(yuǎn)處的細(xì)節(jié)會(huì)爆炸欠采樣原理快速回顧先把最基礎(chǔ)的概念補(bǔ)上。屏幕上每個(gè)像素對應(yīng)紋理上的一個(gè)區(qū)域當(dāng)物體拉遠(yuǎn)時(shí)一個(gè)像素對應(yīng)的紋理區(qū)域會(huì)變大。如果這個(gè)區(qū)域里包含了很多明暗交替的細(xì)節(jié)高頻分量而GPU只取一個(gè)點(diǎn)去采樣點(diǎn)濾波那這個(gè)像素就會(huì)被隨機(jī)落到某個(gè)亮或暗的texel上。相鄰像素隨機(jī)性不同就形成了閃爍和摩爾紋。這本質(zhì)上是采樣頻率低于信號(hào)頻率導(dǎo)致的混疊。根據(jù)奈奎斯特采樣定理要無失真地重建一個(gè)頻率為f的信號(hào)采樣頻率必須至少達(dá)到2f。屏幕上每個(gè)像素是一個(gè)采樣點(diǎn)它的采樣頻率由投影后的像素密度決定當(dāng)紋理細(xì)節(jié)頻率高于這個(gè)密度時(shí)必然產(chǎn)生混疊?,F(xiàn)實(shí)里我見過不少同學(xué)試圖靠把紋理分辨率調(diào)低一點(diǎn)來解決問題其實(shí)方向反了——分辨率再高相機(jī)拉得足夠遠(yuǎn)高頻細(xì)節(jié)一樣會(huì)超出像素密度的表達(dá)上限閃爍只會(huì)換個(gè)距離重新出現(xiàn)。解決方向只有兩個(gè)一是提高采樣頻率也就是提高渲染分辨率但這是治標(biāo)不治本二是在采樣之前把高頻過濾掉這正是Mipmap在做的事——預(yù)先對紋理做低通濾波每一級mip相當(dāng)于以不同頻率上限得到的模糊但無鋸齒的版本。1.3 這兩個(gè)問題為什么經(jīng)常一起處理如果只看畫面問題Mipmap和LOD可以完全分開解決。但它們在工程組織上有兩個(gè)共同點(diǎn)都需要預(yù)生成多份數(shù)據(jù)都需要運(yùn)行時(shí)根據(jù)視距選擇合適版本。很多引擎把Mipmap和LOD放在同一個(gè)Resource Manager里管理原因就在這里紋理有一套mip chain模型有一套LOD chain本質(zhì)都是同一個(gè)思路——預(yù)生成、運(yùn)行時(shí)選擇、生命周期管理。它們還有一個(gè)共同的收益降低帶寬。Mipmap讓GPU在遠(yuǎn)處像素上不必讀取全分辨率紋理的texel代價(jià)是紋理總內(nèi)存增加約1/3LOD讓GPU不必渲染遠(yuǎn)處龐大三角形數(shù)的網(wǎng)格代價(jià)是維護(hù)多套網(wǎng)格數(shù)據(jù)。在帶寬受限的移動(dòng)平臺(tái)上這兩個(gè)優(yōu)化往往是不做就卡做了就順的關(guān)鍵。所以我一直認(rèn)為簡單引擎也值得認(rèn)真做這兩件事它們直接決定引擎在不同場景下的幀率下限和畫面質(zhì)量下限。2. 從2x2平均到4/3內(nèi)存Mipmap的生成算法與采樣鏈路拆解2.1 Mipmap不是一堆縮小圖而是一組預(yù)濾波結(jié)果Mipmap這個(gè)概念最早在1983年的圖形學(xué)論文中提出思路是把一張?jiān)技y理做一系列2x2降采樣得到第0級原始尺寸、第1級1/2寬高、第2級1/4寬高一直到1x1像素。每一級都攜帶了前一級的高頻信息被低頻過濾后的結(jié)果。你可能覺得這不過是把圖縮小幾份遠(yuǎn)處選張模糊貼上去實(shí)際不是。GPU采樣的時(shí)候并不是只選某一級而是在相鄰兩級之間做三線性插值Trilinear Filtering先在同一級內(nèi)做雙線性插值再在相鄰兩級之間做一次線性混合。這個(gè)混合系數(shù)來自屏幕像素在紋理坐標(biāo)上的導(dǎo)數(shù)也就是這個(gè)像素實(shí)際覆蓋了多大一塊紋理區(qū)域。代碼里你通常只設(shè)置采樣器的過濾方式很少直接干預(yù)mip級但調(diào)試時(shí)要理解GPU內(nèi)部會(huì)通過紋理坐標(biāo)的偏導(dǎo)數(shù)估算足跡再換算成需要哪一級。所以mip級別的選擇本質(zhì)是一個(gè)由視距和斜率驅(qū)動(dòng)的自動(dòng)過程。把物體拉遠(yuǎn)紋理足跡變大系統(tǒng)自動(dòng)往高mip級模糊那邊走湊近看又自動(dòng)回到第0級取細(xì)節(jié)。這個(gè)自動(dòng)切換如果做得好肉眼幾乎察覺不到做得不好就會(huì)出現(xiàn)一層一層模糊跳變那是后面要聊的采樣參數(shù)問題。2.2 在CPU端自己生成mip鏈濾波核與邊緣處理在簡單引擎中最省事的方案是調(diào)用圖形API的自動(dòng)生成接口比如OpenGL里的glGenerateMipmap。但如果你希望資源加載階段可控、可調(diào)試、可離線預(yù)處理自己實(shí)現(xiàn)一遍生成邏輯會(huì)更有底。最經(jīng)典的生成器是盒式濾波器把2x2的四個(gè)texel顏色做平均得到下一級的一個(gè)texel。每降一級圖像細(xì)節(jié)減半。偽代碼如下void GenerateMipChain(std::vectorImage mips) { const Image base mips[0]; Image prev base; while (prev.width 1 || prev.height 1) { Image next(prev.width / 2, prev.height / 2); for (int y 0; y next.height; y) { for (int x 0; x next.width; x) { Color c Average4( prev.GetPixel(2*x, 2*y), prev.GetPixel(2*x 1, 2*y), prev.GetPixel(2*x, 2*y 1), prev.GetPixel(2*x 1, 2*y 1)); next.SetPixel(x, y, c); } } mips.push_back(next); prev next; } }這段代碼里有一個(gè)容易忽略的細(xì)節(jié)奇數(shù)尺寸紋理。寬高除以2向下取整時(shí)最后一行或一列會(huì)被丟掉。實(shí)踐里更穩(wěn)妥的做法是面積平均——讓每個(gè)mip像素覆蓋上游對應(yīng)范圍內(nèi)所有texel的均值而不是嚴(yán)格的2x2。對普通素材兩者差別不大純盒式濾波就夠用了。只有做高質(zhì)量離線工具時(shí)才需要考慮Kaiser窗口、三角形濾波器或Catmull-Rom銳化那些更復(fù)雜的方案。另一個(gè)關(guān)鍵點(diǎn)是邊緣處理。當(dāng)UV超出[0,1]范圍比如用了重復(fù)尋址模式GPU生成mip時(shí)如何處理邊緣直接影響平鋪紋理在遠(yuǎn)處的接縫表現(xiàn)。最穩(wěn)妥的做法是在生成第0級之前把紋理左右、上下各擴(kuò)展復(fù)制一圈——把靠邊的像素鏡像到對側(cè)去這樣降采樣時(shí)能感知到相鄰周期內(nèi)的顏色生成的mip鏈在REPEAT模式下才不會(huì)出現(xiàn)黑邊或白邊。這個(gè)坑我在第五節(jié)詳細(xì)說。2.3 GPU端采樣狀態(tài)兩個(gè)過濾器參數(shù)決定畫質(zhì)紋理上傳并攜帶mip鏈之后渲染時(shí)真正需要決策的只有兩個(gè)采樣參數(shù)MIN_FILTER和MAG_FILTER。前者決定當(dāng)屏幕像素覆蓋的texel區(qū)域大于1時(shí)縮小采樣如何選點(diǎn)后者決定當(dāng)覆蓋小于1個(gè)texel時(shí)放大采樣如何選點(diǎn)。常規(guī)配置可以參考這張表使用場景MIN_FILTERMAG_FILTER效果三線性推薦默認(rèn)GL_LINEAR_MIPMAP_LINEARGL_LINEAR相鄰mip級平滑過渡雙線性mip就近GL_LINEAR_MIPMAP_NEARESTGL_LINEAR有明顯mip切換跳變關(guān)閉mip只雙線性GL_LINEARGL_LINEAR遠(yuǎn)處會(huì)閃爍、摩爾紋調(diào)試用全點(diǎn)采樣GL_NEARESTGL_NEAREST無可參考性通常只用于觀察像素化三線性過濾是最容易獲得還算不錯(cuò)畫質(zhì)的起點(diǎn)。再往上升一步就是各向異性過濾Anisotropic Filtering它能處理斜視地面這類場景——像素在紋理空間里呈現(xiàn)為不對稱的長條形狀標(biāo)準(zhǔn)mipmap會(huì)把兩個(gè)方向一起模糊導(dǎo)致地板斜著看糊成一片。各向異性過濾會(huì)沿最長導(dǎo)數(shù)方向多采樣幾次斜視清晰度提升非常明顯。實(shí)際開啟方式上現(xiàn)代GPU普遍支持到8x或16x各向異性但接口寫得比較啰嗦需要先查詢能力再設(shè)置參數(shù)GLfloat maxAniso 0.f; glGetFloatv(GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT, maxAniso); glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAX_ANISOTROPY_EXT, std::min(4.0f, maxAniso));提示各向異性過濾不是替代Mipmap而是在Mipmap基礎(chǔ)上對斜視采樣做補(bǔ)償兩者是疊加關(guān)系。先保證mipchain存在再談各向異性順序別反。3. 一套模型的多副面孔幾何LOD的構(gòu)建、簡化與切換策略3.1 三角形預(yù)算視角為什么遠(yuǎn)處的東西不該那么精致幾何LOD的核心思想一句話就能說清遠(yuǎn)處物體在屏幕上只占幾個(gè)像素你卻用幾萬三角形去渲染純屬浪費(fèi)?,F(xiàn)代GPU三角形吞吐量不低但頂點(diǎn)處理、光柵化、帶寬和后續(xù)像素填充的開銷都會(huì)隨三角形數(shù)上升。場景里如果有大量重復(fù)物件差距立刻被放大。舉個(gè)我實(shí)際跑過的例子場景里放100棵樹每棵5萬三角形合計(jì)500萬三角形。沒有LOD時(shí)哪怕樹已經(jīng)退到屏幕邊緣變成幾個(gè)像素也得把這500萬三角形全部處理完。加LOD后遠(yuǎn)處樹切到500三角形的版本100棵樹的三角形開銷降到5萬節(jié)省99%。移動(dòng)端上這種優(yōu)化尤其重要因?yàn)橐苿?dòng)GPU頂點(diǎn)處理能力比桌面差得多帶寬和發(fā)熱也都是硬約束。LOD不止是省三角形還關(guān)系到幀率的穩(wěn)定性。如果近距離三角形激增、遠(yuǎn)距離驟減幀時(shí)間會(huì)忽高忽低體感就是卡一下、順一下。合理的LOD切換能讓GPU負(fù)載在不同距離范圍保持相對均勻幀時(shí)間曲線平滑很多。3.2 網(wǎng)格簡化從自動(dòng)減面工具到離線管線準(zhǔn)備多檔LOD第一步是生成簡化網(wǎng)格。簡單引擎里最務(wù)實(shí)的做法不是自己寫一套簡化算法而是用離線工具或開源算法庫預(yù)先減面導(dǎo)出為多套網(wǎng)格文件。業(yè)界用得最廣的簡化算法是QEMQuadric Error Metrics二次誤差度量思路是迭代地挑選合并后幾何誤差最小的邊進(jìn)行坍縮直到三角形數(shù)達(dá)到目標(biāo)。誤差用二次曲面近似衡量所以能優(yōu)先保住輪廓和特征線。自己在簡單項(xiàng)目里完全可以直接用3D建模軟件或開源網(wǎng)格處理庫的減面功能把高模減到75%、50%、25%、10%三角形數(shù)導(dǎo)出成幾個(gè)文件。我的做法是在資源管線里約定命名規(guī)則tree_LOD0.mesh、tree_LOD1.mesh……加載時(shí)統(tǒng)一裝入同一個(gè)LODGroup組件。如果確實(shí)想自己實(shí)現(xiàn)簡化算法推薦從最基礎(chǔ)的頂點(diǎn)聚類Vertex Clustering開始把模型所在空間劃分成均勻網(wǎng)格每個(gè)格子內(nèi)的頂點(diǎn)合并成一個(gè)代表點(diǎn)從而降低頂點(diǎn)數(shù)。這個(gè)方法簡單、可控、穩(wěn)定畫質(zhì)損失確實(shí)比QEM明顯但用來理解簡化的本質(zhì)是信息取舍非常合適。跑通這條鏈路之后再去換成QEM也不遲。3.3 距離計(jì)算與切換閾值別讓LOD閃來閃去網(wǎng)格準(zhǔn)備好之后運(yùn)行時(shí)要做兩件事算距離、選LOD。距離計(jì)算通常有兩種口徑相機(jī)到物體包圍球中心的距離簡單穩(wěn)定相機(jī)到包圍盒表面的距離更精確適合從內(nèi)部穿過的隧道類物體。我默認(rèn)用包圍球中心距離開銷低戶外場景里差距不大。切換閾值的選擇也有兩種思路。一種是直接給世界距離閾值比如50米切LOD1、150米切LOD2直觀、好調(diào)、容易理解。另一種是屏幕空間誤差Screen-Space Error把物體最大簡化誤差投影到屏幕上當(dāng)誤差小于某個(gè)像素?cái)?shù)時(shí)才切換更專業(yè)但調(diào)試成本高。簡單引擎強(qiáng)烈建議先用距離閾值跑起來之后再手工微調(diào)。這里有一個(gè)非常容易踩的細(xì)節(jié)延遲切換Hysteresis。如果切換閾值是20米物體在19.9米和20.1米之間來回移動(dòng)就會(huì)出現(xiàn)頻繁切換肉眼看到的就是模型在抽搐。解決辦法是讓升到更精細(xì)檔和降到更粗糙檔的閾值之間留一段緩沖區(qū)。比如LOD1在距離小于30米時(shí)切上來但要到距離大于45米時(shí)才切下去。這個(gè)緩沖區(qū)間能消掉大部分抖動(dòng)。3.4 離散LOD vs 連續(xù)LOD簡單引擎先走哪條路主流水引擎里還有一種做法叫連續(xù)LODContinuous LOD同一份數(shù)據(jù)在運(yùn)行時(shí)根據(jù)距離動(dòng)態(tài)調(diào)整拓?fù)鋵?shí)時(shí)增減三角形。它省內(nèi)存還能避免切換瞬間的pop模型突變但實(shí)現(xiàn)復(fù)雜度高而且在Deferred渲染或靜態(tài)批次場景里要處理很多邊界情況。對simple engine我的建議非常明確先用離散LOD每檔一個(gè)mesh把框架跑通再說。離散LOD唯一的缺點(diǎn)就是切換時(shí)可能有個(gè)可見突變但這個(gè)突變可以通過三種手段壓到很低把切換點(diǎn)放在物體移動(dòng)慢、屏幕占比小的位置用淡入淡出或頂點(diǎn)位置的線性過渡以及最樸素的——讓相鄰兩檔網(wǎng)格的拓?fù)浔M量接近。等框架穩(wěn)了若真有地形或大量植被需要連續(xù)過渡再演進(jìn)到CLOD也不晚。4. 接入渲染管線的工程細(xì)節(jié)驅(qū)動(dòng)能力、內(nèi)存開銷與采樣器配置4.1 紋理上傳一次提交整個(gè)mip鏈在簡單引擎里合理的數(shù)據(jù)流是導(dǎo)入器把mip鏈全部生成好渲染層創(chuàng)建紋理時(shí)用glTexImage2D逐級上傳。如果你用glGenerateMipmap自動(dòng)生成第0級上傳完后調(diào)用一次接口即可但這會(huì)在運(yùn)行時(shí)產(chǎn)生GPU端生成開銷。我更傾向于在資源加載階段就準(zhǔn)備好完整mip鏈避免每次新建紋理時(shí)重復(fù)計(jì)算。偽代碼如下GLuint CreateTexture2D(const std::vectorImage mips, bool aniso) { GLuint tex; glGenTextures(1, tex); glBindTexture(GL_TEXTURE_2D, tex); for (int level 0; level (int)mips.size(); level) { const Image img mips[level]; glTexImage2D(GL_TEXTURE_2D, level, GL_RGBA8, img.width, img.height, 0, GL_RGBA, GL_UNSIGNED_BYTE, img.data.data()); } glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT); if (aniso) { GLfloat maxAniso 0.f; glGetFloatv(GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT, maxAniso); glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAX_ANISOTROPY_EXT, std::min(4.0f, maxAniso)); } return tex; }這段代碼的潛在問題在于GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT這個(gè)枚舉在不同驅(qū)動(dòng)上的兼容性以及從glTexImage2D開始到設(shè)置參數(shù)過程中任何一步的資源泄漏——如果外部代碼忘了glDeleteTextures一個(gè)帶mip鏈的紋理就會(huì)白白占著幾MB顯存不放。所以我會(huì)建議在Texture類里用RAII管理生命周期析構(gòu)時(shí)統(tǒng)一釋放。4.2 內(nèi)存賬要算清Mipmap實(shí)際只多占1/3很多人一聽說mipmap以為內(nèi)存會(huì)翻倍其實(shí)并沒有。等比降采樣后整條mip鏈的總內(nèi)存是原始紋理的4/3也就是增加約33%。推導(dǎo)很簡單第0級占1份第1級占1/4第2級占1/16……幾何級數(shù)求和S 1 1/4 1/16 1/64 ... 1 / (1 - 1/4) 4/3所以1024x1024的RGBA8紋理原始占4MB帶完整mip鏈后約5.33MB。場面上一串小紋理累加大概多占1/3顯存——這個(gè)代價(jià)換來的卻是巨大的帶寬節(jié)省因?yàn)檫h(yuǎn)處的像素不再需要把全分辨率texel從顯存拖進(jìn)緩存。做性能分析時(shí)這是一個(gè)非常劃算的交換。但要注意壓縮紋理的情況。ASTC、BC7等格式的每一級mip都有獨(dú)立的壓縮尺寸而且不同格式對最小尺寸對齊有要求比如某些格式要求每級寬高是4的倍數(shù)。如果在生成mip鏈時(shí)沒有提前對齊尺寸最后一兩級可能出現(xiàn)無效數(shù)據(jù)或加載失敗。這個(gè)問題在導(dǎo)入管線里就要定好規(guī)范壓縮紋理由離線工具統(tǒng)一做好mip鏈運(yùn)行時(shí)只負(fù)責(zé)上傳不做在線生成。4.3 LOD數(shù)據(jù)組織LODGroup和渲染器的協(xié)作在運(yùn)行時(shí)我用一個(gè)LODGroup組件來管理一個(gè)物體的所有LOD網(wǎng)格struct LODGroup { std::vectorMesh* meshes; // LOD0, LOD1, ... std::vectorfloat minDistances; // 每級生效的最小距離 float switchRange; // 遲滯緩沖區(qū)間 };渲染器每幀的邏輯是取出相機(jī)位置計(jì)算物體中心到相機(jī)的距離從LOD0開始向后找選擇第一個(gè)滿足dist minDistances[i]的mesh找不到則使用最后一級。配合前面說的遲滯升級和降級各用一張不同的距離表就能有效防止抖動(dòng)。這里還有一個(gè)容易忽略的優(yōu)化LOD選擇不一定每幀都算。很多引擎會(huì)做按幀抽樣比如每隔0.2秒重新計(jì)算一次距離并選擇LOD中間幀沿用上一次結(jié)果。對慢速移動(dòng)的物體效果明顯能省一點(diǎn)CPU但要注意延遲不能大否則玩家快速轉(zhuǎn)頭時(shí)會(huì)看到遠(yuǎn)處的LOD切換明顯滯后。4.4 Shader側(cè)配合采樣器聲明與mip級控制接入渲染管線后Shader里通常只需要把紋理采樣器聲明成sampler2D過濾狀態(tài)由紋理對象本身決定。但如果你想主動(dòng)控制mip級比如做基于視角的銳化或者某些混合特效可以用textureLod(sampler, uv, lod)顯式指定。這在Mipmap調(diào)試時(shí)特別有用固定寫一個(gè)LOD值就能直接觀察某個(gè)層級的畫面。還有一個(gè)常見誤區(qū)設(shè)置GL_TEXTURE_MAX_LOD限制了最大mip級卻忘記設(shè)GL_TEXTURE_MIN_LOD下限導(dǎo)致某些驅(qū)動(dòng)從異常層級開始采樣。低配設(shè)備上偶爾出現(xiàn)的顏色偏差排查時(shí)先看這組參數(shù)是否對稱設(shè)置能省下大量時(shí)間。5. 用調(diào)試視圖和性能數(shù)據(jù)說話踩坑記錄與調(diào)優(yōu)驗(yàn)證5.1 先把當(dāng)前用的是哪一級可視化出來Mipmap和LOD的調(diào)試最怕的是看不出問題在哪。我的第一個(gè)建議是給引擎加兩組可視化工具。第一組是mip級別顯示。用一個(gè)debug shader把實(shí)際采到的mip級編碼成顏色輸出比如LOD0紅、LOD1綠、LOD2藍(lán)、LOD3黃。一眼就能看出場景里哪些區(qū)域用了過高的mip級。如果你的API支持textureQueryLod之類的查詢可以直接在shader里拿到實(shí)際的mip level不需要再猜。第二組是LOD邊界繪制。把每級LOD的切換距離用線框球體畫出來調(diào)試時(shí)拖動(dòng)相機(jī)進(jìn)出邊界直觀感受切換點(diǎn)是否合理。我還會(huì)在Debug UI里加兩個(gè)按鍵手動(dòng)強(qiáng)制切到LOD0或LOD2之類的級別用來單獨(dú)觀察某一檔網(wǎng)格的視覺質(zhì)量。這兩組工具加在一起調(diào)參就不再是盲人摸象。5.2 我踩過的三個(gè)坑以及對應(yīng)解法第一個(gè)坑是mip邊緣顏色滲透。我用REPEAT尋址平鋪了一張帶高亮邊緣的磚墻貼圖拉遠(yuǎn)之后磚縫之間出現(xiàn)奇怪的暗色條紋。原因在于CPU生成mip時(shí)2x2平均跨過了平鋪邊界但驅(qū)動(dòng)在REPEAT模式下的自動(dòng)mip處理并不一定和我的生成邏輯一致。解法是在生成mip前把第0級紋理做邊緣擴(kuò)展復(fù)制讓降采樣能感知到平鋪的連續(xù)性實(shí)在不行就改用GL_CLAMP_TO_EDGE專門處理含邊緣語義的貼圖平鋪面另開一張REPEAT紋理。第二個(gè)坑是NPOT紋理。某張道具貼圖尺寸是512x300我在某臺(tái)舊設(shè)備上上傳帶mip鏈的NPOT紋理后畫面直接黑屏回退到雙線性又正常了。原因是部分舊驅(qū)動(dòng)對NPOT紋理加Mipmap的支持不完整。解法要么在導(dǎo)入管線把NPOT紋理統(tǒng)一重采樣到二次冪既規(guī)整又能更好對齊壓縮格式要么提前確認(rèn)目標(biāo)設(shè)備對NPOT紋理加Mipmap的支持情況做功能開關(guān)動(dòng)態(tài)回退。第三個(gè)坑是LOD切換引起的幾何漣漪。一套山體從LOD0切到LOD1時(shí)頂點(diǎn)位置變化太大切換瞬間山脊出現(xiàn)一圈肉眼可見的漣漪。解法有三個(gè)方向調(diào)整簡化算法參數(shù)讓低模在切換臨界處盡量貼近高模位置也就是做保持邊緣拉開切換距離讓變化發(fā)生在視覺注意力不集中的位置最后還可以做頂點(diǎn)混合過渡在過渡區(qū)間內(nèi)對兩個(gè)mesh的頂點(diǎn)位置做lerp。我最終用了頂點(diǎn)混合效果最好只是多花了一點(diǎn)CPU。5.3 實(shí)測數(shù)據(jù)多少優(yōu)化才算值得以我那個(gè)模擬項(xiàng)目X為例場景是一個(gè)約200米見方的區(qū)域里面大約300個(gè)帶LOD的靜態(tài)物體40張使用Mipmap的紋理。改造前既沒開Mipmap也沒做LOD遠(yuǎn)處場景最低幀大約35fps改造完成后同樣場景能跑到55fps以上。拆開看數(shù)據(jù)開啟Mipmap后遠(yuǎn)處地面紋理的閃爍徹底消失紋理帶寬占用下降約30%加離散LOD后三角形數(shù)從約850萬降到180萬draw call數(shù)沒變但頂點(diǎn)處理時(shí)間明顯縮短。幀時(shí)間抖動(dòng)也從改造前的±8ms縮小到±2ms。這不是什么理想環(huán)境下的漂亮數(shù)字就是很普通場景量級的表現(xiàn)足以證明這兩個(gè)優(yōu)化在簡單引擎里的性價(jià)比有多高。關(guān)鍵還是那句話不要拍腦袋設(shè)LOD閾值。先用場景截圖和profiler數(shù)據(jù)確定瓶頸再?zèng)Q定每檔LOD的切換距離。我把所有閾值都放在一個(gè)配置文件中每次調(diào)參后跑同一段固定路徑錄像對比比肉眼反復(fù)進(jìn)出場景高效得多。5.4 幾個(gè)親測有效的調(diào)優(yōu)小習(xí)慣第一Mipmap從大紋理開始開。512x512的磚墻可能看不出太大差異但2048x2048的復(fù)雜貼圖在遠(yuǎn)處就是重災(zāi)區(qū)。優(yōu)先把大尺寸紋理的mip鏈補(bǔ)上效果立竿見影。第二LOD從遠(yuǎn)處數(shù)量多的物體開始做。樹木、石塊、路燈這類重復(fù)物件才是LOD最大的受益者反而是那個(gè)唯一的主角模型優(yōu)先級沒這么高。第三每次改動(dòng)只做一件事。把Mipmap和LOD拆成兩個(gè)獨(dú)立分支來做獨(dú)立測、獨(dú)立回滾。這兩項(xiàng)優(yōu)化都有視覺上沒那么明顯但profiler上很顯著的特點(diǎn)一旦混在一起調(diào)試很容易錯(cuò)誤歸因。第四保留一個(gè)強(qiáng)制關(guān)閉的開關(guān)。引擎里加一個(gè)--no-mip和--force-lod0的命令行參數(shù)方便隨時(shí)對照開啟前后的畫面與幀率。這個(gè)開關(guān)在后續(xù)優(yōu)化shader和材質(zhì)時(shí)也會(huì)派上大用場。第五調(diào)試Mipmap時(shí)給各級加上固定假色跑一個(gè)固定旋轉(zhuǎn)鏡頭看整體變化節(jié)奏。很多時(shí)候看起來糊并不是mip級別選得不對而是相鄰mip之間的過渡區(qū)太窄或太寬用假色視圖能直觀發(fā)現(xiàn)問題出在切換節(jié)奏上。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
日韩中文字幕精品一区在线| 久久久久久久| 国产乱青青草久久| 啊啊啊轻点在线观看| 高清孕妇孕交| 五月丁香色色网| 青青操97| 91 丝袜在线播放| 国产在线强奸视频| 色色综合网站| 99蜜月精品久久| 午夜乱轮操逼视频免费看| 免费a级毛片av无码久久精品中文字幕| 黄片aaaaa一区| 久操91视频| www成人啪啪18秘 免费| 天天综合影院91| 青青草在线视频美女| 日本成熟少妇A∨网站| 一块操欧美性爱| 青青草乱入乱欲视频在线观看| 亚洲综合伊人无码久久| 九月丁香综合网| 亚洲 中文 女同| 色香综合天天影视综合| 在线观看AV片| 高清肉丝中文无码| 国产精品久久| 亚洲综合另类| 亚州高清AV| 无码天天操| 91色碰| 中文字幕1区2区| 嫖老熟女A片一二三区| 九九九九九九成人| 欧美超碰97| 91色久| 99热精品在线观看| 亚洲欧美一区二区三区一猛片| 干B| 天天摸夜夜添无码小视频| 欧美熟妇乱码在线一区| 亚洲色图欧美色图另类图片| 97在线免费看| 欧美影院一区二区三区| 亚洲色宗合| AV男人天堂网| 亚洲AV性爱电影| 打av高清| 亚洲色图尤物视频| 亚洲欧美setu| 国产日韩欧美中文在线播放| 97超碰免费生活| 免费精品人妻一区二区三| 日日夜夜骚| 操一操摸一摸| 青青草色情网站视频| 欧美日韩大黄片| 久久超碰亚洲人| 另类图片欧美激情综合| 日韩少妇丰满亚洲| 国产成人欧美精品在线| 亚洲五区熟女| 国产 三级自拍| 一二三区精品视频| 亚洲少妇喷视频看| 91欧美综合| 久热69九色熟妇97| 肏逼视频日本| 久久久∴| 丁香五月综合| 色吧5亚洲| 91 丝袜在线| 日本狂喷奶水在线播放212| 四虎884a| 婷婷丁香六月| 天天摸天天碰天天添青青| 国产精品香蕉| 国产青视频| 青青伊人这里只有精品| 国产精品欧美日韩久久| 久久久久9久久久久| 亚洲欧洲无码bt精品合集| 亚洲 另类 丝袜 自拍 动漫| 亚洲 综合 欧美| 国产亚洲性生活视频播放| 黑人粗大V S日韩女优视频| 国产成人无码a| 亚洲午夜精品久久久中文影院| 1区2区3区在线视频| 91性高朝久久久久久久久| 久久超碰98| 欧美专区日本专区| 日韩有码专区| 国产精品亚洲日韩骚欢乐谷最新地址发布页huanieguty性屋娱乐妖精视频 | 男人 天堂 日 亚洲| 亚洲一本大道中文字幕无码在线| 日本熟女不卡视频| 加勒比伊人综合| 25国产精品免费观看| 精品丝袜无码一区二区三APP| 黄资源| 欧美精品成人亚洲| 欧美精品一区二区少妇免费A片| 色五月婷婷麻豆在| ...日韩成人一区二区三区字幕| 国产精品久久久久亚洲av| 青青草一本道福利视频| 久久夜夜夜| 久久伊人亚洲AV无码网站| 五十路熟女工口| 天天拍天天操| 香蕉黄色一级视频| 久久久一二三四区| 九九九综合精品| 午夜无码精品免费看性色| 伊香蕉综合久久久久久久噜噜噜 | 手机在线免费看的av| 久久影视二区三区行押| 九九久久国产精品| 国产精品久久久久综合| 天天操天天干一区二区 | 欲综合网| 久久久内射良家| 国产有码一区| 亚洲 日韩 欧美 国产综合体| 国产精品无码论坛| 日韩一区二区精彩视频| 尤物av网站免费在线播放| 精品人妻视频一区二区在线播放| 夜夜 中文视频rt| 一区二区久久天天干狠狠| 婷婷激情五月| 国产JDAV无码视频在线观看| 人人考人人摸人人干| 久久久久亚洲熟妇熟女| 东京热男人天堂| 偷拍99| 日韩不卡一二三四| 韩国女主播青草在线| 色综合久| 超91综合网| 1禁看欧美黄片免费看| 国产美女口爆吞精视频| 国产精品一区二区三区在线密挑| 成片免费观看视频大全| 爱我干综合| 亚洲一级特黄大片在线播放91| 日本三级一区二区 在线 | 熟妇在线视频一区二区| 超碰av在线| 中文字幕亚洲在线一区| 日本成人A片网站| 亚洲欧美高清无码| 啊啊啊无码| 97亚洲在线| 外国91| 欧美少妇色图| 亚洲日本激情| 精品亚洲黄色片 国产精品导航一区二区| 一起草欧美| 无码久久国产| 亚洲高清无码免费观看视频| 99热在线播放| 91老司机精品| 久久久久久999| 风韵犹存大大大大香蕉| 东京热AV男人的天堂| 9999久久久久| 丰满欧美放荡少妇在线| 9九九国产| 精品丰满熟妇人妻一区| 91丝袜人妻| 九九热av| 国产精品久久久啊| 78超碰| 熟妇乱伦一区二区| 最新av中文字幕高清| 国产又黄又爽| 激情网色| www.狠狠干.coom | 综合欧美激情网| 国产女同视频在线播放| 日韩A优精品在线观看| 日日碰狠狠添天天爽超| 日本熟女中文| 激情av| 天天色悠悠激情| 99热99re超碰精品| 嗯嗯啊好大| 久久久免费懂色| 欧美综合自拍亚洲综合图| 超碰97COm中文| 久久精品人人做人人看| 国产一区二区三区影片| 1024久久高清视频| 亚洲大色堂| 97伦乱| 天天综合网日韩| 久久精品国产99精品亚洲蜜...| 久久视频,这里只有精品| 精品9区| 玖玖综合网| 2019精品国产无码成人| 日本一级黄色电影| 97人肏| 很很很很操| 日骚逼视频| 淫荡熟女乱伦网| 免费A V在线| 亚洲一区二区麻豆影院| 欧美78| 日韩啪啪视频| 国产黄色av大片网站| 婷婷成人五月天| 区一二区日韩亚洲乱码av电影| 97ai亚洲| 思思在线免费视频| 久久久com| 800zy一区二区| 国产91丝袜 在线播放| 张柏芝国产一区在线观看| 欧美日韩操逼动图| 婷婷啪啪| 日韩天天综合| 久草免费在线一区二区| 日本精品人妻少妇一区二区| www国产精品| 日韩久久.一级黄色片| 色婷婷综合久久久久中文国产精品一区中文字幕,国产福利电影一区二区三区 | 久久人妻办公室视频| 91成人久久| 人妻偷拍一区二区三区| 中文久久久| 深爱五月婷婷| 久久精品老司| 日韩小电影| 日人妻视频91| 亚洲凸凹超碰成人| 久操国产在线| 后入式视频国产自| 麻豆久久视频在线地址| 超碰97久| 九色 人妻 大香蕉| 精品少妇一区二区三区| 郑州宾馆老熟女露脸啪啪| 亚洲自拍另类丝袜综合| 日本αv| 欧美老熟另类| 国产av强奸美女| 九九热超碰97亚洲最新香蕉| 91伊人久| 天天草夜夜草高潮片| 91九九九逼| 国产成人 综合亚洲 天堂| 免费的av网| 欧美日韩国产成人高清| 激情图片亚洲色图| 91欧美在线| 日韩三级久久久| 久久精品熟妇丰满人妻99| 欧美久久九九| 精品999999| 色婷婷99| 无码久久国产| 99re在线观看| 人干人人人操人人摸| 亚洲综合骚逼| 人妻少妇色综合| 欧美91变态| 鲁鲁色综合网| 色色色日本| 97一区二区三区视频| 亚洲AV无码AV吞精久久久久| 国际精品久久久| 久久人妻办公室视频| 日韩在线国产字幕| 日本一区三级韩国| 看日韩黄片| 精久久久91| 国产成人在线观看综合| 农村妇女精品一二区| 精品国产污一区二区三区| 综合久久久久久久久91| 夫妻AV网站| 校园春色之综合网| 日韩免费a级毛片无码a∨| 久久国产对白激情浪潮| 亚洲精品中文字幕一区在线视频| 日韩欧美传媒一区国产| 欧美一二在线| 日日干夜夜干| 亚欧成人综合影院| 天天日熟妇| 欧美在线官网| 欧美日韩在线国产在线| 成人小电影网站tex| 久久久久久久久久久久久9999| 久草网站免费在线观看| 成人久久久| 中文字幕人乱码中文字的预防方法 | 97少妇人妻中文字幕久久| 91黑丝露脚| 午夜.DJ高清在线观看免费7| 超碰97中文| 以及麻豆国产入口在线观看免费| 爱丝福利| 啊灬啊灬啊灬啊灬高潮奶出了免费视| 91网站18在线| 亚洲老熟妇xxx| 成人午夜小视频手机在线看| 国产精品国产自产高清AV| 国内毛片四区| 伊人少妇久久久| 欧美色图片91| 日本狠狠干| 久久久久亚洲AV无码专区少妇| 亚洲精品九九九| 热的中文 热的有码 热的国产| 超碰色中文| 亚洲欧美经典一区二区| 国产精品色片一区二区| 999久久久免费精品国产牛牛| 日韩本不卡视频在线观看 | 蜜臀va69| 日本黄色天堂| 98精品国产乱码久久久久久| 久久一留热品黄| 五月婷婷综合激情| 东北丰满熟女国产一区| 精品国产91内射久久| 96久久久久| 国产精品一二三| 婷婷香网站| 国产精品2020| 久草视频制服诱惑| 91日本在线观看| 极品尤物自安慰| 91看黄片| 先锋激情∨在线视频播放| 麻豆天美91| 色香综合| 91老女人| 高清在线不卡一区二区 视频| 秋霞Av理论一级在线| 久久9精品| 免费男人的天堂| 在线小视频| 久久同城AV| 久久久久久九九九九-美女久久久久久久-成人AV | 97超碰色色| 九九九久久久W精品| 999久久芭蕾| 热久久无毒不卡| 91偷拍欧美亚洲| 欧美人妖内射| 亚洲天堂人人妻| 亚洲综合色在线| 神马久久久久久| 51久久夜色精品国产麻豆| 色色色色日本| 亚洲有码 欧美精品| 欧洲与亚洲欧美精品中文字幕| 极品出轨视频网站| 亚洲精品97久久| 亚欧成人综合影院| 日本色色色| 97 超碰 人人做 人人爱| 欧洲自拍第一页| 欧美夜夜| 99在线免费观看| 国产女人和拘做爰视频 | 1956日韩精品| 97超碰免费生活| 少妇久久久久久| 天天干夜夜操网| 色五月69夫妻| 综合色好色| 人妻日日干| 欲色影视综合吧| 97久久超碰国产精品| 欧洲欧美视频一区二区| 日韩人体偷拍| 亚洲国产精品无石码久久| 夜夜影视四色| 亚洲欧美精品久| 国产又黄又爽| 欧美78p| 九九九一二三| 婷婷在线精品| 玖日综合网| 国产一级特黄大片处女| 欧美爆操91| 精品午夜福利| 欧美不卡在线美女| 亚洲色图A| 国内毛片免费h片在线| 亚洲色图伊人网| 另类小说综合网| 久久综合日韩亚洲欧美| 偷拍偷窥与盗摄视频专区| 亚洲欧美精品一区天堂久久 | 国产女人高潮视频| 青青草国产一区二区三区| 久久男人精品| 啊灬啊灬啊灬啊灬高潮奶出了免费视| 色情乱伦AV| 亚洲日韩欧美一区二区| 性开放中文AV高清无码免费看| 亚洲drav色图| 午夜福利免费精品视频| 久久久青草青青国产亚洲免观精品高清完整版_97久久综合区小说区图片区,国精品 | 精品亚洲| 区二区亚洲婷| 国产强上视频在线观看| 亚洲精品97p| 婷婷操逼| 国产精品久久天天干| 老师充足的奶水小说| AV天堂国产| 狠狠色一区二区中文字幕| 天天插夜夜操| 2020中文字幕在线| 蜜乳性色无码专日粉嫩骚逼AV| 东北女人性交| 性色avv| 欧美成人A天堂片在线观看| 国产浮力影院第1页| 情色日播放AV| 久操国产在线| 78久久久| 五月激情小说| 国产91会所女技师在线观看| 免看60秒涩涩视频| 亚洲欧洲国产综合av| 久久线上视频免费看| 五月丁香影视| 亚洲蜜乳av| 丁香五月成人| 欧美性爱精品七区| 色老汉色| 综合久久99| 国产在线观看一区二区三区| 91伊人久久在线| 色五月婷婷五月天| 懂色aV一区二区天美传媒| 久草精品国产蜜臀| 26uuu偷拍亚洲欧洲综合| 亚洲综合校园春色| 无码伊人久久大杳蕉中文无码| 婷婷婷婷婷婷久久久久| 少妇丝袜在线观看AV| 91精品综合久久久久久五月丁香| 四虎国产精品永久地址入口| 清纯唯美亚洲| 97资源站久久| 夜夜操91744565| 亚洲一区二区三区欧美日韩| 国产一区自拍欧美日韩| 天天操天天舔| 麻豆精品三区视频| 欧美色图 人妻| 99精品在线观看| 日本操逼视频不卡直接放| 欧美在线|亚洲| 欧美性区| 夜夜操av亚洲一区二区| 综合色99| 国人欧美精品一区二区| 超碰在线人妻中文字幕| 91丰满| 久久久9 9 9精品| 91成人在线| 91校园春色长篇| 天堂中文日本在线观看| 欧美日韩大黄片| 女人被添高潮免费视频| 日本人妻伦在线中文字幕| 99热线麻豆 | 神马久久啊啊| 大香蕉天天看妹子| 五月天丁香网| 91free福利| 国产精品久久久久亚洲av| 91综合色噜噜| 国产97在线 | 亚洲| 激情文学小说一区二区| 亚洲美女 晚间男人天堂 | 国产高清免费不卡av| 色综合av综合久久| 精品一区二区三区18| 超碰是碰在线观看| 十八禁黄色成人网站观看| 国产精品91一样| 美女刺激久久国产欧美| 99精品久久| 亚洲欧美经典一区二区| 狠狠激情综合狠狠操中文字幕| 欧美一级黄色18片免费看| 丰满人妻一区二区三区四区| AA特级绝黄| 亚洲欧美日韩精品久久久一区二区| 99久久e免费热视| 在线国产福利网址导航| 亚洲最新a在线观看| 亚洲少妇综合在线播放| 亚洲古典另类欧美在线| 天天操天天舔| 婷婷五月激情综合| 国产精品一区二区 尿失禁| 一级A片女人高潮叫床| 国产尤物AV尤物在线观看不卡| 人人操人人大香蕉| 99久久e免费热视| 日韩性爱小视频在线观看 | 啪啪自拍九九综合| 超碰九九| 秋霞操逼片| 成人无码在线超碰网| 国产一区二区三区视频在线看| 亚洲欧美国产成人综合不卡| 久久久久网站-538在线视频-欧美永久乱码 | 韩日自拍| 日韩91网| 色欧美天天| 嗯嗯啊啊啊好爽| 日韩有码免费视频| 欧美激情综合| 亚洲图片日本AⅤ欧美在线| 亚洲第一免费视频| 日韩乱伦影音先锋| 丝袜熟女一区二区三区| 国产精品色色| 9久久美女首页| 大香蕉手机在线| 麻豆天美传媒毛片| 欧美性爱日韩高清| 国产毛片久久久久久久| 日韩无码专区| 欧美一区二区三区大综合| 欧美论理片| 99rre在线精品99re8| av网站免费看| 操逼操网| 啊啊啊不要好爽日韩无码一区| 91情色在线| 天天激情综合站| 麻豆国产免费影片| 亚洲日本加勒比在线| 九草在线大香蕉| 啊啊啊啊免费视频| 欧美日本成人一区二区| 色一色综合网| 射欧美综合| 91高清欧美| 韩国一级婬片A片无码天美| 九九热AV| 亚洲色棕合| 青青青国产手线观看视频2| 国产精品岛国片在线观看| 日本不卡高清免v欧美日韩在线观看| 亚洲色天堂九9| 无码 黑人一区二区三区| 大香蕉免费中文| 久久原创中文| 人人操人人摸人人看人人干| 日韩精品熟妇| 日本综合色图| 狠狠色综合网| 黑人综合色| 国产成人无码啪| 91人妻丝袜无码| 久久久久久久| 在线国产一区二区av| 伊人久久大香线蕉亚洲五月天,青草青草欧美日本一区二区,欧美日产欧美日产国产 | 亚洲国产成人精品无码专区| 久干网| 日韩免费三级黄片电影| 伊色综合天堂色97| 久久久久久裸体| 伊人久久在线视频观看| 亚洲一区二区三区麻豆传媒| 国产精品福利资源在线尤物| wwe 天天干.com| 操逼操2| 久九干| 日熟女| 精品无码久久久久| 粉嫩av在线| 欧美性特| 国产二区三区免费视频| 国产精品熟女AV中文字幕在线播放| 色五月av| 宅男91视频在线播放| 熟女探花啪啪| 人妻夜夜爽天天爽麻豆三区网站 | 夜夜狼人妻| 欧美青青视频| 成人精品一区二区三区| 亚洲无码超碰免费| 激情自拍 校园春色| 欧美人妻制服| 国产九月婷婷| 大香蕉欧美| 熟女熟妇一区二区三四区| V A在线| 狠狠婷婷亚洲中文综合久久| 日日超碰亚洲| 男人的天堂久久狠| 操国产高清| 久九九九九九九热| 日本精品五区| 欧美日韩理论一区| 青春草莓视频在线观看网址| 超碰天天操| 国产 无码 一区二区| 后入式999| 欧美日韩99| 欧美色偷偷| 啊啊啊啊啊在线视频| 国产精品 久久久精品一牛| 精品久久九| 色婷视频| 国产一区在线观看无码AV| 日本加勒比无码专区一二三| 后入美女国产| 色欲av一区二区三区蜜芽| 色眯眯av| 久久久久久久久久久97| 国产人妖视频一区在线观看| 九九热三级片| 亚洲永久AV无码精品秋霞| 日韩一级成人毛片免费观看| 久久久久久久97| 亚州久久9| 中文字幕在线观看视频www| 天天日天天操天天射河南省| 国产精品大屁股999| 欧美日韩m| 国产精品免费日韩| 亚洲日韩97| 中文字幕丝袜人妻| 国产人妖视频一区在线观看| 九九九久久久| 人妻少妇久久| 少妇天堂网络| 综合色色网| 韩三级a视频在线观看| 中文字幕午夜精品久久久| 中文字幕二区日韩天堂| 黄在线| 天天做天天爱夜夜爽毛片试看| 97资源亚洲| 欧美色日| 欧美A√综合网 | 五月丁香婷婷啪啪| 亚洲精品国语在线播放| 青草伊人久久| 97精品综合久久网| 黄色av一区二区在线| 操操操五月天婷婷丁香影院| 久久久97| 欧美黑人熟妇精品91| 很狠操| 老司机免费视频在线91| 嗯嗯嗯嗯啊啊啊好紧好大| 国产呦精品一区二区三区下载| 嫩呦国产一区二区三区AV| 秋霞曰韩R级| 少妇综合网| 亚洲天天自拍| 国产精品午夜精品| 蜜臀AV一区二区三区激情综合| 午夜免费视频1000| 中文字幕一区电影在线观看| 国产美女裸体秘 永久无遮挡| 97超碰磁| 人人操肉肉| 日本三级A片网站com| 国产h小视频在线观看免费| a啊啊啊啊啊啊啊啊一区二区| 久久久九| 婷婷激情四射| 啪啪自拍九九综合| 看看日B真人视频| 黄色片G G G| 97精品国产手机| 中文字幕88av在线| 91狠婷| 嗯嗯嗯不要不要免费视频| 久悠悠av| 超碰碰97| 男人的天堂日韩| 伊人久久亚洲色欲综合网站 | 天天干少妇| 久久九九99| 97久久超碰| 天天日少妇逼AV| www.狠狠| 欧美内射少妇| 大香蕉国产中文自拍| 免费人人搞97| 久操网在线| 激情小说亚洲图片| 9999亚洲电影| 国产欧洲精品亚洲午夜拍精品| 国产中文日韩欧美一区二区三区人妻丝袜美腿 | 在线观看日韩av不卡| 日亚韩精品视频二区三| 国产18精品亚洲精品| 国产免费永久精品无码| 久草五月| 久草资源在线视频官方总站日韩丝袜美腿 | 欧美婷婷久久| 啊啊啊啊啊啊啊在线| 中文字幕二区| 色与欲影视| 精品人妻免费观看| 午夜舔阴达高潮视频免费看| 色色福利| 97视频网站在线观看| 久久中出在线| 天天操狠狠日夜夜干超大胆开放com大香蕉视频在线观看 | 欧美熟爽综合| 久久久久ab| 青青草原成人| 久久久久亚洲Av无码专区老牛影视| 国产精品人妻熟女aⅴ| 日韩不卡毛片Av免费高清| 天天爽夜夜操| 中文97国产| 拍拍拍拍大尺度黄色三级片拍拍拍拍拍照| 中文字幕欧美丝袜07资源| 最新av网站在线观看| 日本高清有码网址视频| 天美AV片| 国产精品色约约| 操国产高清| 亚洲av影音先锋| 亚州精品一区二区三区香中文字幕在线| 97超级欧美| 天天欧美| 日本一级二级三级网站| 视频在线观看一二三区| 少妇内射视频| 亚洲阿v天堂在线| 国产九九九九九九九九| ss久久| 狠狠爱夜夜| 天天操夜夜嗨| 丁香五月天婷婷姐| 在线v中文字幕一区二区三区| 久久久久久亚洲精品不卡人乳| 91熟女熟妇视频网站| 麻豆传媒一区二区在线观看| 国产精品久久久亚洲一区| 欧美在线l亚洲| 搡老人老9丨女老熟人| 久久精品成人一区二区三区蜜臀| 日韩操p| 七月丁香婷婷| 一级做受视频免费是看美女| 欧美日韩91| 欧美久久人妻少妇一区二区| 男女一进一出视频久久| 日本日逼视频网| 一区二区不卡| 国产精品久久久啊| 一级啊性爱在线视频| 欧美一二在线| 草草电影院| 色婷婷丁香五月| 天天天做天天天爱天天天爽| 国产女人和拘做爰视频 | 98久久| 嗯啊不要在线| 情色大香蕉| 欧美日本国产日韩激情视频| 熟妇人妻一区二区三在线| 99婷婷一区二区| 日本一区三级韩国| 超碰在线成人电影| 另类小说综合网| 日本999精品视频| 日本影视久久免费| 国产亚洲精品自在线亚洲情侣| 智利AV在线网| 春色综合网| 成人看片网站| 亚洲综人网| 激情综合网五月婷婷五月天| 久久久久久裸体| 国产精品久久久久久 百度| 麻豆天美国美国产| 超碰9 7女人| 久久久精品成人国产| 亚洲诱惑天堂 | 91天天综合| 2020中文字幕| 国产白丝精品在线观看| 亚洲色天堂日韩中| 久热精品在线| 99色热| 秋霞怕怕片| 爱欲AV| 在线综合色| 欧美日韩97在线| 插日本熟女视频| 日韩成人人妻网站| 久久亚洲AV成人精品无码| 囯产精品强| 国产AV高清AV无码| 亚洲文学偷乱拍啪啪啪啪 | 亚洲天堂2020| 欧美黄色图片| 国产日逼视频| 五月综合色| 日本影视久久免费| 亚洲少妇色| 天天射夜夜操| 欧美另类自拍 | 无码丰满熟妇一区二区浪潮AV| 亚洲精品性爱片| 91jk色拍| 亚洲精品日日夜夜52| 91色欧美| 精品一区二区麻豆| 涩涩涩综合| 欧美线天码中字| 蜜桃视频精品一区二区| 日韩精品字幕| 久久久久人| 吻戏激情性巴克| ,成人免费啪啪视频| 亚洲超碰综合网| 午夜天堂啪啪| 女性喷水高潮在线观看| 九9热伊人| 婷婷五月丁香五月| 中文字幕丰满人妻日本| 国产精品久久久久久久久久久久久久久| www.91色| 黑人操一区二区| 熟女人妻精品一区二区视频| 九七毛片九九毛片| 天美麻花大全视频| 97超碰色色| 青青草日韩免费观看高清在线| 亚洲,欧美,春色,另类| 色色色色日本| 91精品老女人| 九九九热精品| 嗯阿好爽好紧| 久热大香蕉| 国产黄色影片在线观看| 色噜噜国产精品视频一区二区| 超碰97在线中文| 无码99| 色婷婷九月| 热天堂一区二区| 狠狠色噜噜狠狠狠狠狠色综合久久| 成·人免费午夜在线观看| 97天天在线| 夜夜高潮夜夜爽高清视频一 | 亚洲aV无码成人在线观看| 中国AAAAAA黄色片| 无码操逼天堂| 久久久久久九九九九-美女久久久久久久-成人AV| 国产亚洲在线观看| 久热在线精品免费观看| 国产97在线视频| yazhououmeizongya| 伊人操操| 日欧毛片久久| 中文字幕乱码人妻一区二区三区,99精品 | 九九九网站| 后入综合久久| 国桃视频产巨乳精品一区二区在线| 亚洲国成人情色好看电影| 日本三级黄页| 开心五月婷婷激情| 亚洲h片在线免费观看| 日本一级特级毛片视频| 精品色色| 日韩伦理久 久久 清纯 | 97超碰香蕉| 亚洲国产福利视频| 97se综合网| 强奸少妇AV导航网| 日韩不卡av一二三| 人人操人人操人人人操| 秋霞午夜成人福利片片| 国产路线专区| 99少妇内射| 激情另类激情| 超碰97.com| 日夜尻逼网| 在线小说视频一区| 91骚妇| 日韩78m视频| 日本天天干天天搞一区| 色婷婷婷五月天激情四射| 久久久久久大| 顶级少妇BT天堂| 精品熟女一区=区三区| 欧亚洲精品有视频| 欧差乱伦二三| 日韩性爱电影一区| 精品国产Av无码久久久亚洲| 伊人操你| 岛国AB视频| 日韩精品系列| 黄片不用下载在线观看| 最新日本中文字幕| 91亚洲欧美激情| 91 偷| 男人的天堂 在线一区| 国产精品日日摸夜夜添骚逼| 五月丁香黄色网| 成年人网站在线免费观看| 岛国黄片网站| 最新国内自拍av免费| 91人妻精华帖| 国产精品探花视频| 思思热免费在线视频| 亚洲高清无码在线桃色| 91黑人无码激情在线| 九九黄色网| 亚洲图片 91| 97人人爱人人做人人乐| 日韩视频小说在线观看| 免看60秒涩涩视频| 在线五区| 精品久久久久久中文字幕视频免费| 成人无码电影在线观看网| 东亚亚洲无码高清| 亚洲砖码砖专无区2023| 一本道综合色图| 91色爽欧美| 久久精品91| 久热热| 韩日性爱av| 色婷婷视频| 操人妻逼91| com 首页 18岁 禁区 女优 免费 精选 同城 | 日本91白丝| 97亚洲资源| 好一吊区二区| 亚洲欧美色图| 国产操逼逼网| 亚洲精品久| 在线情色电影 91大 | 色诱avtt| 国产成人五月天丁香花| 精品久久久久久AV无码| 天天精品| 久久鲁夜| 少妇一区二区三区| 国模无码人体一区二区三| 人人摸人人干人人拍97| 天天日日舔舔| 欧美伦乱| 这里只有精品视频在线观看麻豆| 日韩在线视频1234| 鸥美插入视频| 久久中文字幕在线观看| 精品视频免费在线一区| 中文字幕啊啊啊在线观看视频| 手机av亚洲丝袜美腿日韩第一页二页| 精品无码秘 人妻一区二区| 成人午夜小视频手机在线看| 精彩国产视频播放1区2区| 男人天堂无码| 高清国产性猛交xxxx乱大交| 爆乳免费黄网站| 99热这里只有精品1| 一级岛国大片| 国产11页| 伊人九九九| 亚洲精品亚洲人成在线麻豆| 五月天久久婷婷亚洲 | 亚洲综合夜色| 激情小说图片亚洲首页| 黑丝少妇在线观看| 免费看污网址| 亚洲欧美国产va在线播放频| 理论久久婷婷网 8| 少妇99| 一本一道波多野毛片中文在线| 欧美 传媒 麻豆 日韩 偷拍| 视频一区二区免费在线| 这里只有精品视频| 成人十八禁日韩欧美一二三| 中字幕人妻一区二区三区| 校园春色之综合网| 九99久久| 免费在线观看AV无码网站| 欧美91丝袜| 亚洲精品人妻在线| 国产精品青青草| 欧美色图 色综合图| 精品妇操一区二区三区| 欧亚无码视频| 丝袜内射| 亚洲欧洲自拍图片专区满春格| 精品乱子一区二区三区99| 三上悠亚在线毛片91| 精品一区二区啪啪啪| 欧美大的香蕉有线电视视频| 久久久久久久人妻| 91欧美巨乳| aaaa少妇高潮大片| 日韩精品9999| 一本大道不卡一二三区| 人人妻人人色| 中文字幕一区二区日韩网| 久操九九九九九九九九九九九九九九九九九九九九九九九九九九九九 | 操逼日韩无码| 中国91AV| 九九九九九九亚洲| 美女啊啊啊啊啊啊| 国产精品国产拍高清AV| 男人天堂毛片| 一区二区三区四区色图| 亚洲天堂男人的天堂| 国产馆极品诱惑| 麻豆综合一区av| 亚洲色91C| 日韩AV无码中文一区二区| 久久精品一区二区三区蜜桃臀| 成人精品在线观看| av2014 日韩在线中文字幕| 99久久久99久久91熟女| 久夜视频| 97欧美日韩中文| 日本在线视频导航| 十八禁电影伊人网| 91三级理论片播放器| 婷婷10月天青娱乐| 国模精品娜娜一二三区| 亚洲风情在线观看| 又黄又爽在线观看视频 | 中文字幕熟女人妻丝袜丝| 六月婷婷激情| 日本伦乱九九九综合| 素颜老阿姨乱情色| 黑人狂躁日本妞一区二区三区| 中国韩国明星一极片一区乱码毛片人妻熟女一区二区三区 | 97网址www| 久久男人精品| 少妇大屁屁| 99r九九| 青娱乐久久艹| 中文视频在线观看| 熟妇最新先锋一二三区| 久久国产乱子伦精品免费女人| 精品日韩产品在线,日韩在线不卡视频,欧美日韩免费专区/久, | 国产中文大片资源中文字幕 | 久久精品店| 97干在线看| 少妇久久久久久久久| 91新在线欧美| 深夜激情无码| 乱伦熟女论坛| 欧美偷偷网| 天天干天天日天天射黄色| 熟女五十路一区二区三| 风韵犹存大大大大香蕉| 亚洲精品天天影视综合网 | 最近2018中文字幕在线高清第一页| 大香交| 国产小炒后入式| 日韩欧美视频青青| 国产中出内射一区二区| 伊人96在线| 亚熟在线| 日本三级久| 国产精品岛国片在线观看| 视频国产成人精品日本亚洲18| 日韩天天综合| 久草精品视频| 日韩伦理久 久久 清纯| 岛国成人av在线播放网址| 国产精品久久久久无码Av网曝门| 一本久道久久综合狠狠爱一密臀精| 91视频综合在线| 天天综合欧美综合| av凤凰久久久| 小视频玖玖| 亚洲性爱成人| 94色色电影网| 国产suv精品一区二六| 啊灬快c我灬啊灬用力灬啊灬-国产精品性做久久久久久-成人AV | 级做a爱无码性色永久免费| 久久久久久人体| 亚洲色悠悠久久88| 男人天堂2019亚洲| 久草国产在线视频| 天天综合网~91| 久伊人网78| 日韩高清一二三| 无码视频一区二区| 97色婷婷| 久久久爆乳翘臀一线天伦理视频| 性爱av在线免费观看| 芊芊操逼视频无码| 火箭成精品视频884必出精品| 欧美大的香蕉有线电视视频| 欧美日韩岛国大片在线观看| 亚洲淫色网中文| 99久久久99久久91熟女| 久久久久久精品免费看A级| 一级日本牲交大片好爽在线看| 青娱乐淫乱1314| 91色拍| 久久精品国产Aⅴ| 女生91网站| 91 丝袜在线播放| 精品少妇人妻一区二区三区| 91劲爆| 久久亚洲日韩熟女精品| 色九九九九九九| 人妻美腿丝袜日韩| 天天天天天天天天综合| 九X超碰| 色超碰综合| 成人欧美日超碰| 亚洲色图 综合| 青草视频人妻在线观看| 91男同| 蜜区区视频79 | 人妻精品免费一二三区| 啊啊啊好想要| 日韩亚洲欧美中文字幕| 国产品精品自在在线午夜免费| 综合亚洲欧美精品日韩?v| 欧美性爱第一页久久| 午夜国产综合视频在线观看 | 国产美女口爆吞精视频| 自拍偷拍草一草| 97精品熟女少妇一区| 欧美操逼熟女| 五月天黄色激情视频| 97最新在线播放视频| 亚洲啪啪性视频| 日韩久久三区| 第四色色综合91| jiujiujiujingpin| 超碰97最新人妻| 色拍偷亚洲| 东京热毛片调教| 97九色| 欧美操逼熟女| 狼人久草| 日本加靬比网站发布页| 嗯嗯啊啊好大好爽| 亚洲精品白丝| 亚洲图片91| 三级日韩一区二区三区| 国产亚洲美日韩Aⅴ中文字幕无码成人|