亚洲有码Av一区二区三区_国产高清啪啪免费视频_69色视频国产_国产成人人人爆出白浆_国产精品自在线拍国_一本久久伊人热热精品无码_午夜性刺激在线看免费带字幕_助力高品质欧美狂喷水_亚洲精品日韩无码_精品无码一区二区三区蜜臀_麻豆高清国产AV_熟妇人素无码中文字幕_亚洲a级片在线观看_国产欧美日韩三区_99国产成人高清在线观看

ARTICLE DETAIL

資訊詳情

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

上位機(jī)開發(fā)必知:OBJ模型MTL材質(zhì)文件解析與渲染避坑指南

上位機(jī)開發(fā)必知:OBJ模型MTL材質(zhì)文件解析與渲染避坑指南 做上位機(jī)這些年見過太多把 OBJ 模型加載進(jìn)來結(jié)果屏幕上只有灰白色金屬塊的情況。問題往往不在模型本身而在它旁邊那個不起眼的.mtl文件。MTL全稱 Material Template Library是 OBJ 三維模型格式的材質(zhì)描述文件用來記錄模型表面的顏色、貼圖、透明度、高光和反射這些視覺屬性。我們在做設(shè)備數(shù)字孿生、虛擬調(diào)試、三維監(jiān)控界面時經(jīng)常要把機(jī)械設(shè)計軟件導(dǎo)出的模型直接搬進(jìn)自己的上位機(jī)程序里OBJMTL 這套純文本組合是最省事的一條路比起 STL 只有幾何沒有外觀比起 glTF 又要處理 JSON 和二進(jìn)制緩沖它簡單到可以用記事本打開就能看懂全部內(nèi)容。這篇文章適合幾類人一是用 C#、Qt、LabVIEW 做上位機(jī)打算在界面里加三維預(yù)覽的二是接到設(shè)備廠商給的模型包打不開或者加載出來效果不對的三是純粹想搞清楚 OBJ 后面掛個.mtl到底什么意思的。我下面把 MTL 的語法結(jié)構(gòu)、與 OBJ 的配合關(guān)系、在真實上位機(jī)項目里的解析思路全部攤開講一遍最后附上我踩過的坑和排查記錄照著做基本能避開 90% 的格式坑。1. 為什么上位機(jī)開發(fā)要懂 MTL 文件1.1 從工業(yè)場景看 MTL 的真實用途很多上位機(jī)開發(fā)者第一次接觸三維模型是在做設(shè)備狀態(tài)監(jiān)控或者虛擬調(diào)試的時候?,F(xiàn)場的設(shè)備可能是 CNC 機(jī)床、機(jī)器人、輸送線廠家往往給一個 STEP 或者 STP 文件但這類格式在通用圖形庫里面基本沒法直接加載。大家最后都會轉(zhuǎn)到 OBJ 格式上因為它是純文本BLE 通信傳輸、局域網(wǎng)共享、嵌入式設(shè)備里存著都方便隨便一個解析器就能讀。但 OBJ 文件只記錄了頂點坐標(biāo)、法線、紋理坐標(biāo)和面的連接關(guān)系相當(dāng)于模型的白模骨架。一臺機(jī)床再怎么復(fù)雜在 OBJ 里也只是一堆坐標(biāo)點和三角面。真正讓它看起來像機(jī)床的是表面的顏色和紋理——哪塊鋼板是灰色的、哪塊警示燈是紅色的、哪塊面板上有絲印貼圖這些信息全部寫在 MTL 文件里。如果只管 OBJ 不管 MTL最后渲染出來的就是一片灰白色的幾何體你分不清是機(jī)床還是抽象雕塑。在我參與的設(shè)備虛擬調(diào)試項目里三維場景的作用是讓操作員在電腦前先看到產(chǎn)線布局確認(rèn)設(shè)備和治具是否干涉、機(jī)器人軌跡是否碰撞。這種場景下模型的外觀不單是好看的問題而是直接影響判斷安全門用紅色、正常工位用綠色這些語義信息全靠 MTL 里的漫反射顏色值區(qū)分。所以解析 MTL 不是可有可無的加分項而是三維可視化功能能否真正落地的基本前提。1.2 為什么不直接選 glTF而選 OBJMTL現(xiàn)在三維格式很多glTF 是 Khronos 推出的標(biāo)準(zhǔn)還支持 PBR 材質(zhì)、骨骼動畫聽起來比 OBJMTL 先進(jìn)不少。但放到上位機(jī)場景里情況不一樣。glTF 雖然功能強(qiáng)但它的結(jié)構(gòu)分成了.gltfJSON 描述和.bin二進(jìn)制緩沖兩部分紋理圖還要獨立存放解析起來要考慮 URI 解析、緩沖視圖、訪問器這些概念而且很多工業(yè)軟件導(dǎo)出的 glTF 帶有大量擴(kuò)展字段版本兼容性問題在項目里非常煩人。OBJMTL 的出現(xiàn)比 glTF 早得多從 90 年代 Wavefront 公司用到現(xiàn)在工業(yè)領(lǐng)域積累的存量模型基本都能找到 OBJ 版本。更重要的是它的心智模型特別直白OBJ 管幾何MTL 管外觀兩者通過文件名和關(guān)鍵字互相引用拆開看任何一個文件都能立刻明白意思。還有一個落地層面的考慮上位機(jī)程序往往運行在工控機(jī)上性能不強(qiáng)顯卡可能還是集成顯卡。OBJMTL 的幾何復(fù)雜度可以通過減面控制材質(zhì)屬性就是幾個浮點數(shù)和幾張貼圖渲染開銷很低。glTF 的 PBR 材質(zhì)對光照計算的要求更高在集成顯卡上跑得卡頓的可能性更大。對我來說不是 glTF 不好而是 OBJMTL 在“代碼簡單、跨平臺、低性能要求”這三個維度上更契合上位機(jī)開發(fā)的現(xiàn)實約束。1.3 理解了 MTL 才能看懂渲染結(jié)果為什么不對很多人在論壇上問“OBJ 加載出來沒有顏色怎么辦”本質(zhì)就是沒讀 MTL。但還有些更隱蔽的問題模型有顏色但太亮像塑料、某些面全黑、透明零件不透明、貼圖錯位。這些現(xiàn)象背后的原因都在 MTL 的參數(shù)里。比如 Ns 高光指數(shù)設(shè)置過小物體看起來就發(fā)白illum 光照模型選錯光線計算方式完全不同d 和 Tr 混用會導(dǎo)致透明度解析出相反的結(jié)果。這些細(xì)節(jié)用眼睛看不出來只能在解析代碼里逐個對照排查。所以我就養(yǎng)成了一個習(xí)慣拿到任何三維模型包先用文本編輯器打開.mtl文件看一遍。里面每個關(guān)鍵字都代表一種渲染屬性掃一眼就知道這個模型是簡單著色還是復(fù)雜貼圖也大概能預(yù)料到在渲染管線里會遇到什么坑。接下來我把 MTL 的語法體系完整拆開逐個說清楚。2. MTL 文件語法的細(xì)致拆解2.1 一個標(biāo)準(zhǔn) MTL 文件到底長什么樣MTL 是純文本格式每行一條指令#開頭是注釋空行忽略。一個文件里可以定義多個材質(zhì)每個材質(zhì)以newmtl開始后面跟材質(zhì)名屬于該材質(zhì)的所有屬性行都跟在它下面直到下一個newmtl為止。我拿一個典型的機(jī)加工設(shè)備外殼材質(zhì)舉例# Material file created by CAD Exporter newmtl steel_plate Ka 0.20 0.20 0.20 Kd 0.55 0.55 0.55 Ks 0.80 0.80 0.80 Ns 120.0 d 1.0 illum 2 map_Kd textures/steel_brushed.jpg newmtl red_warning_light Ka 0.30 0.00 0.00 Kd 0.85 0.10 0.10 Ks 0.60 0.60 0.60 Ns 200.0 d 1.0 illum 2第一段定義了一個叫steel_plate的金屬材質(zhì)環(huán)境色Ka是偏暗的灰漫反射色Kd是中灰色高光色Ks是亮灰Ns是 120 的高光指數(shù)d是不透明度 1.0illum 2表示啟用高光光照模型最后map_Kd指定了一張刷紋貼圖。第二段定義紅色警示燈材質(zhì)沒有貼圖用純色渲染。這種文件結(jié)構(gòu)看起來簡單但它傳達(dá)了一個關(guān)鍵信息每個材質(zhì)是獨立的屬性集合OBJ 里模型的每個面通過材質(zhì)名來“認(rèn)領(lǐng)”自己該用哪一套外觀參數(shù)。文件里Ka、Kd、Ks后面的三個數(shù)字分別是紅、綠、藍(lán)通道取值范圍 0.0 到 1.0跟我當(dāng)初以為的 0 到 255 完全不同這是新手第一道坎。2.2 關(guān)鍵指令逐個說清楚顏色、透明度、高光與光照模型MTL 里最核心的指令就十幾個但每個都會直接影響渲染輸出。我按屬性類別拆開講。顏色三件套Ka、Kd、KsKa是環(huán)境光顏色模擬物體在無直接光源時被環(huán)境光照射的顏色。在實時渲染里它常被用來做環(huán)境貼圖采樣的強(qiáng)度因子。Kd是漫反射顏色是物體在擴(kuò)散光照下的表面顏色也是絕大多數(shù)情況下人眼看到的“主色調(diào)”。解析時如果只取一個顏色取Kd準(zhǔn)沒錯。Ks是高光顏色表示鏡面反射的強(qiáng)度與顏色。白色高光1.0 1.0 1.0會讓物體呈現(xiàn)塑料或清漆質(zhì)感接近Kd的高光會讓物體更像金屬。高光參數(shù)NsNs控制高光區(qū)域的銳利程度取值范圍通常在 0 到 1000數(shù)值越大高光斑越小越銳利。金屬拉絲表面一般是 200 以上橡膠表面可能就是 10 到 50。解析時要注意Ns對渲染結(jié)果的影響不像Kd那么直觀但如果設(shè)置不對同一個模型在不同光照下會呈現(xiàn)完全不同的質(zhì)感。透明度d 與 Tr這是一個特別容易踩坑的點。d是 dissolve表示不透明度1.0 完全不透明0.0 完全透明。另外有些工具導(dǎo)出的是Tr表示透明度1.0 完全透明0.0 完全不透明。兩者是相反的語義很多模型文件里同時出現(xiàn)d 1.0和Tr 0.0意思其實一樣。解析時我的做法是如果存在d以d為準(zhǔn)如果只有Tr用1 - Tr換算成不透明度。否則透明零件就會變成實心或者反過來完全看不見。光照模型illumillum后面跟一個整數(shù)0 到 10聲明材質(zhì)的光照計算模型。工業(yè)模型里最常見的幾個值取值含義實際表現(xiàn)0顏色常亮不受光照影響適合自發(fā)光警示燈、屏幕1漫反射環(huán)境光無高光啞光塑料、噴砂鋁2漫反射高光最常見適合大多數(shù)金屬和塑料3反射高光光線追蹤鏡面金屬實時渲染通常降級處理4透明玻璃光線追蹤玻璃罩實時渲染用透明度近似6折射反射光線追蹤透鏡實時渲染處理起來復(fù)雜實時渲染管線和光線追蹤不同illum 0就應(yīng)該關(guān)閉光照直接輸出Kd顏色illum 1忽略Ks和Nsillum 2執(zhí)行標(biāo)準(zhǔn)的光照模型。很多透明件渲染發(fā)黑就是因為illum 4在實時渲染里需要單獨處理直接用漫反射光照當(dāng)然不對。折射率NiNi是光學(xué)折射率一般玻璃是 1.45水是 1.33。實時渲染里如果不開光線追蹤這個值基本用不上但保存起來沒有壞處。解析時保留為浮點字段即可不用做校驗。2.3 紋理貼圖指令與常見路徑陷阱MTL 的貼圖指令以map_開頭后面跟貼圖類型。最常見的幾個map_Kd漫反射貼圖替換或疊加Kd顏色是工業(yè)模型里最常用的貼圖類型。map_Ka環(huán)境光貼圖通常與map_Kd相同有的工具會省略。map_Ks高光貼圖控制高光的強(qiáng)度分布。map_Ns高光指數(shù)貼圖用像素值控制表面光滑度差異。map_d透明貼圖用貼圖灰度控制透明度。map_bump或bump凹凸貼圖制造表面凹凸感不改變幾何。refl反射貼圖球面環(huán)境映射老式模型里常見工業(yè)實時渲染用得少。路徑問題是這里的重頭戲。MTL 里的貼圖路徑可能有三種寫法map_Kd texture.jpg同目錄相對路徑、map_Kd textures/steel.jpg子目錄相對路徑、map_Kd C:\models\maps\steel.jpg絕對路徑。上位機(jī)程序里絕對路徑幾乎肯定出問題因為文件拷到工控機(jī)上路徑早就變了。子目錄相對路徑還算友好但解析時要注意基準(zhǔn)目錄是“MTL 文件所在目錄”而不是 OBJ 文件所在目錄。我見過不少模型把 MTL 放在models/materials/貼圖放在models/textures/OBJ 引用 MTL 時寫materials/model.mtlMTL 里引用貼圖寫../textures/tex.jpg這種跨級相對路徑在拼接時特別容易算出多余的空目錄加載失敗率極高。處理辦法是在解析函數(shù)里先做路徑歸一化把..抹掉再判斷文件是否存在并且做一個兜底邏輯在 MTL 文件目錄、OBJ 文件目錄、當(dāng)前工作目錄三個位置都找一遍貼圖找不到就打印警告不直接崩潰。3. 解析 MTL 之前先把 OBJ 的引用關(guān)系捋清楚3.1 坐標(biāo)與索引約定為什么老手也會翻車OBJ 和 MTL 是配套使用的OBJ 文件通過兩條指令引用材質(zhì)mtllib聲明外部材質(zhì)庫文件的文件名usemtl聲明后續(xù)的面使用哪個材質(zhì)。一個 OBJ 文件可以有多個mtllib聲明也可以有多個usemtl這就形成了“幾何分組—材質(zhì)”的映射關(guān)系。索引基數(shù)是 OBJ 最坑的細(xì)節(jié)之一。OBJ 里所有索引從 1 開始不是從 0 開始f 1/1/1 2/2/1 3/3/1的第一組數(shù)字對應(yīng)第一個頂點位置紋理坐標(biāo)和法線索引各自獨立計數(shù)。用 C# 的 List 或數(shù)組時記得讀取索引后減 1 再訪問元素否則三角形永遠(yuǎn)錯位一格。這個問題在解析 OBJ 時最常見跟 MTL 的關(guān)系在于材質(zhì)引用usemtl的位置是按面的順序生效的索引算錯了面就歸錯組材質(zhì)貼錯位置。另外 OBJ 里面的行可以寫f 1 2 3也可以寫f 1/1 2/2 3/3還可以寫f 1//1 2//2 3//3。三種格式分別代表“只有頂點”“頂點紋理”“頂點法線”。解析時用Split(/)之后數(shù)組長度可能為 1、2、3必須有對應(yīng)的分支處理不能默認(rèn)長度固定。3.2 材質(zhì)分組邏輯usemtl 與對象分區(qū)的映射OBJ 文件里模型的幾何體排列順序是有講究的。機(jī)械設(shè)計軟件導(dǎo)出 OBJ 時零件基本按創(chuàng)建順序輸出同一個零件下面的三角面在文件里連續(xù)排列并且在第一個面前面有一行usemtl 零件材質(zhì)名。所以解析時的流程應(yīng)該是遇到usemtl切換當(dāng)前材質(zhì)后續(xù)所有面全部記錄到該材質(zhì)的分組里直到下一個usemtl出現(xiàn)。有些模型在導(dǎo)出時會把多個零件合并成一個 OBJ 文件但材質(zhì)名保留各自獨立這樣加載進(jìn)來之后雖然是一個 Mesh卻能通過材質(zhì)分組拆成多個子物體。對接上位機(jī)項目時這個特性可以用來做“按材質(zhì)高亮”“統(tǒng)計同材質(zhì)面積”之類的功能。我做過一個設(shè)備點檢界面點擊故障燈區(qū)域就要高亮整個 warning 燈外殼其實就是把 OBJ 里usemtl red_warning_light下面的所有面收集起來單獨渲染一遍。3.3 紋理坐標(biāo)與 OBJ vt 的銜接MTL 里的map_Kd貼圖要正確貼在模型表面OBJ 里必須有對應(yīng)的紋理坐標(biāo)vt。紋理坐標(biāo)是二維的范圍通常是 0.0 到 1.0映射規(guī)則是貼圖左下角(0,0)右上角(1,1)。很多工業(yè)導(dǎo)出的 OBJ 會用 UV 展開工具生成好vt但也有些模型完全沒有紋理坐標(biāo)這時即使 MTL 里寫了map_Kd貼圖也貼不上去只能退化為純色渲染。解析時需要檢查的是OBJ 里是否存在vt記錄面的索引里是否包含紋理坐標(biāo)分量如果存在但沒有加載map_Kd說明材質(zhì)和幾何沒有接上如果既有 MTL 的貼圖索引又存在vt還要注意坐標(biāo)系的 Y 軸方向。部分建模軟件使用左上角為原點的坐標(biāo)系輸出的vt需要做1 - v翻轉(zhuǎn)否則貼圖會上下顛倒。工業(yè)模型里這個問題常見于從 SolidWorks 和 Rhino 導(dǎo)出的文件我每次看到vt都會留意一下貼圖方向。4. 用 C# 解析 MTL 的完整實操4.1 先設(shè)計一個適合渲染用的 Material 數(shù)據(jù)結(jié)構(gòu)解析 MTL 之前先把內(nèi)存里的數(shù)據(jù)結(jié)構(gòu)定好解析器就只管往里面填數(shù)據(jù)渲染層直接讀取。我用 C# 定義了一個精簡但完整的材質(zhì)類public class MtlMaterial { public string Name { get; set; } // newmtl 后面的名字 public Vector3 Ka { get; set; } new Vector3(0.2f, 0.2f, 0.2f); public Vector3 Kd { get; set; } new Vector3(0.8f, 0.8f, 0.8f); public Vector3 Ks { get; set; } new Vector3(1f, 1f, 1f); public float Ns { get; set; } 100f; public float D { get; set; } 1f; // 不透明度 public float Ni { get; set; } 1f; public int Illum { get; set; } 2; public string MapKdPath { get; set; } // 漫反射貼圖路徑 public string MapKaPath { get; set; } public string MapBumpPath { get; set; } public string MapDPath { get; set; } public bool IsTransparent D 0.99f || !string.IsNullOrEmpty(MapDPath); }Vector3可以用自己寫的三維向量結(jié)構(gòu)體替代不一定要引入數(shù)學(xué)庫。這個類的關(guān)鍵點是給每個字段都設(shè)了默認(rèn)值這樣即使 MTL 里缺少某個屬性渲染也不會因為取到空值而報錯。工業(yè)模型千奇百怪有的材質(zhì)只寫了Kd其余全缺默認(rèn)值兜底很重要。4.2 逐行解析處理指令分發(fā)的核心代碼解析的核心邏輯是按行讀取切分指令和參數(shù)再分發(fā)到對應(yīng)的處理分支。下面這段代碼是我在項目里用過的簡化版本已經(jīng)處理了注釋、大小寫、d/Tr語義轉(zhuǎn)換這幾個關(guān)鍵點public static MtlMaterial[] ParseMtl(string mtlPath) { var materials new ListMtlMaterial(); MtlMaterial current null; foreach (var rawLine in File.ReadLines(mtlPath)) { // 去掉注釋部分 int commentIdx rawLine.IndexOf(#); string line commentIdx 0 ? rawLine.Substring(0, commentIdx) : rawLine; line line.Trim(); if (line.Length 0) continue; // 按空白字符拆分關(guān)鍵字和參數(shù)分離 var parts line.Split(new[] { , \t }, StringSplitOptions.RemoveEmptyEntries); var key parts[0].ToLowerInvariant(); switch (key) { case newmtl: if (parts.Length 1) { current new MtlMaterial { Name parts[1] }; materials.Add(current); } break; case ka: if (current ! null parts.Length 4) current.Ka new Vector3( float.Parse(parts[1], CultureInfo.InvariantCulture), float.Parse(parts[2], CultureInfo.InvariantCulture), float.Parse(parts[3], CultureInfo.InvariantCulture)); break; case kd: if (current ! null parts.Length 4) current.Kd new Vector3( float.Parse(parts[1], CultureInfo.InvariantCulture), float.Parse(parts[2], CultureInfo.InvariantCulture), float.Parse(parts[3], CultureInfo.InvariantCulture)); break; case ks: if (current ! null parts.Length 4) current.Ks new Vector3( float.Parse(parts[1], CultureInfo.InvariantCulture), float.Parse(parts[2], CultureInfo.InvariantCulture), float.Parse(parts[3], CultureInfo.InvariantCulture)); break; case ns: if (current ! null parts.Length 2) current.Ns float.Parse(parts[1], CultureInfo.InvariantCulture); break; case d: if (current ! null parts.Length 2) current.D float.Parse(parts[1], CultureInfo.InvariantCulture); break; case tr: // Tr 是透明度需要轉(zhuǎn)換為不透明度 if (current ! null parts.Length 2) current.D 1f - float.Parse(parts[1], CultureInfo.InvariantCulture); break; case illum: if (current ! null parts.Length 2) current.Illum int.Parse(parts[1]); break; case map_kd: if (current ! null parts.Length 2) current.MapKdPath string.Join( , parts.Skip(1)); break; case map_ka: if (current ! null parts.Length 2) current.MapKaPath string.Join( , parts.Skip(1)); break; case map_bump: case bump: if (current ! null parts.Length 2) current.MapBumpPath string.Join( , parts.Skip(1)); break; case map_d: if (current ! null parts.Length 2) current.MapDPath string.Join( , parts.Skip(1)); break; default: // 其他的關(guān)鍵字Ni、refl、Ke 等暫時忽略 break; } } return materials.ToArray(); }這段代碼里有幾個細(xì)節(jié)值得說一下。float.Parse必須傳CultureInfo.InvariantCulture因為有些 MTL 文件是國外軟件導(dǎo)出的小數(shù)點分隔符是.但工控機(jī)上運行程序時如果系統(tǒng)區(qū)域設(shè)置是德語、法語等地區(qū)默認(rèn)分隔符會變成,不指定不變文化就會解析異常。我曾經(jīng)在一臺區(qū)域設(shè)置為“波蘭語”的工控機(jī)上踩過這個坑程序在其他機(jī)器上跑得好好的偏偏那臺上線就崩潰查了半天才定位到是浮點解析的國際化問題。map_Kd后面的內(nèi)容不一定只是路徑。規(guī)范允許帶參數(shù)比如map_Kd -s 1 1 1 texture.jpg、map_Kd -o 0.5 0.5 0 texture.jpg。如果直接用parts[1]取路徑就會取到-s所以用string.Join( , parts.Skip(1))把剩余部分全部拼回來再在后面的路徑清理函數(shù)里剔除選項參數(shù)。真實項目的 MTL 文件里出現(xiàn)這類帶參數(shù)語句的概率不低寫解析器時一定要預(yù)留。4.3 紋理加載與路徑拼接的細(xì)節(jié)解析完 MTL 文本接下來要面對的是貼圖文件。貼圖路徑在實際項目里五花八門有些路徑里帶空格、有中文、有\(zhòng)和/混用還有大小寫不一致的問題。我的加載函數(shù)是這樣處理的private static string ResolveTexturePath(string rawPath, string mtlDir) { if (string.IsNullOrWhiteSpace(rawPath)) return null; // 去掉 MTL 里可能存在的選項參數(shù)如 -s、-o var cleaned rawPath.Trim(); cleaned cleaned.Replace(\\, /); // 如果包含空格且看起來像參數(shù)去掉第一個空格前的內(nèi)容 if (cleaned.StartsWith(-)) { int spaceIdx cleaned.IndexOf( ); if (spaceIdx 0) { var remainder cleaned.Substring(spaceIdx 1).Trim(); if (remainder.Length 0) cleaned remainder; } } // 候選路徑列表 var candidates new Liststring(); if (Path.IsPathRooted(cleaned)) { candidates.Add(cleaned); } else { candidates.Add(Path.Combine(mtlDir, cleaned)); // 兼容常見的上級目錄引用 candidates.Add(Path.Combine(mtlDir, .., cleaned)); } foreach (var path in candidates) { if (File.Exists(path)) return Path.GetFullPath(path); } return null; }這個函數(shù)不負(fù)責(zé)把貼圖解碼進(jìn)顯存只負(fù)責(zé)找到準(zhǔn)確的磁盤路徑。真正的紋理加載還要考慮如果 MTL 里沒有map_Kd就用Kd純色填充避免出現(xiàn)“模型紫黑色”的默認(rèn)錯誤如果貼圖存在但解碼失敗也要回退到純色不能中斷加載流程。在.NET環(huán)境下System.Drawing和Image.FromFile對圖片格式的兼容性還行但要注意內(nèi)存釋放StbImageSharp是更好的選擇解碼速度快且不依賴系統(tǒng) GDI。加載完成后我一般統(tǒng)一轉(zhuǎn)為 BGRA32 像素格式方便交給 OpenGL 或 DirectX 紋理接口。4.4 渲染前你還需要做的小處理MTL 解析完成、貼圖加載完成離正確渲染還差幾步收尾工作。第一透明物體排序MTL 里的透明材質(zhì)需要放到渲染隊列的后面并且關(guān)閉深度寫入否則透明件后面的物體全都被遮擋看不見。第二紋理的 Y 軸方向很多引擎的紋理坐標(biāo)系和 OBJ 的vt不一致加載貼圖到紋理對象時需要做一個垂直翻轉(zhuǎn)或者在采樣時翻轉(zhuǎn)t坐標(biāo)。第三材質(zhì)緩存同一個 MTL 文件可能在多幀加載中被反復(fù)引用用字典按材質(zhì)名做緩存避免模型切換時重復(fù) IO。5. 常見問題與排查實錄5.1 排查記錄一樁“全白”事故去年做一個機(jī)器人上下料工站的上位機(jī)界面甲方給的 OBJ 模型加載進(jìn)來全是白色的連形狀都看不清。我第一反應(yīng)是 MTL 沒讀進(jìn)來打開日志發(fā)現(xiàn)mtllib后面寫的文件名是robot_v2.mtl但實際文件叫ROBOT_V2.MTLWindows 文件系統(tǒng)不區(qū)分大小寫所以 File.Exists 找到了文件但在項目里我們用的是 Linux 工控機(jī)文件名大小寫敏感直接找不到 MTL。這個案例讓我養(yǎng)成一個習(xí)慣所有路徑查找都不信任文件系統(tǒng)的大小寫規(guī)則先File.Exists探測不行就走目錄掃描匹配。又有一次白色問題出在Kd的值上。設(shè)備外殼材質(zhì)Kd 4.0 4.0 4.0數(shù)值遠(yuǎn)大于 1.0。這種超標(biāo)值在一些渲染器里會被當(dāng)作 HDR 顏色處理顏色會泛白在另一些渲染器里直接截斷成純白。工業(yè)設(shè)計軟件導(dǎo)出的 MTL 偶爾會寫出這種不規(guī)范的數(shù)值解析時我是用Math.Min(1.0f, value)做鉗制的實測渲染色感正常。5.2 問題速查表我把項目里遇到過的高頻問題匯總成了一張表方便排查時對照現(xiàn)象可能原因解決方法整個模型無顏色MTL 路徑錯誤或未解析檢查 OBJ 的mtllib引用和 MTL 文件是否存在部分面無顏色usemtl缺失或拼寫錯誤檢查材質(zhì)名是否大小寫完全一致貼圖顯示不出來貼圖路徑不存在或格式不支持用路徑解析函數(shù)搜索多個候選目錄檢查貼圖格式模型全黑illum 0或光照方向反向?qū)llum 0直接輸出Kd確認(rèn)法線方向透明件不透明d解析錯誤或渲染未排序檢查d/Tr語義打開深度寫入分離渲染貼圖上下顛倒紋理坐標(biāo)系 Y 軸不一致采樣時翻轉(zhuǎn)t軸高光過曝全白Ns過小或Ks過大調(diào)大Ns到 100Ks限制在 1.0 以內(nèi)中文路徑打不開工控機(jī)區(qū)域編碼不匹配統(tǒng)一用 UTF-8 讀文件路徑用 Unicode 字符集5.3 避坑技巧解析器之外的工程習(xí)慣除了技術(shù)細(xì)節(jié)還有幾個工程層面的習(xí)慣幫我少走了很多彎路。第一永遠(yuǎn)不要用記事本編輯 MTL 后另存為 UTF-8 with BOM。BOM 頭會插在文件最前面解析第一行newmtl時拼上三個亂碼字符材質(zhì)名徹底對不上。我自己的解決方案是解析前先判斷字節(jié)流前三個字節(jié)是不是EF BB BF有就去掉。第二從不同軟件導(dǎo)出的 MTL 格式差異很大。SolidWorks 導(dǎo)出是單材質(zhì)多貼圖Pro/E 導(dǎo)出經(jīng)常把顏色寫進(jìn) OBJ 的v頂點色而不是 MTL3ds Max 導(dǎo)出經(jīng)常帶map_Kd和大量的-o、-s選項。我寫了一個小的“MTL 預(yù)覽器”把解析結(jié)果以表格形式列出來文件名、貼圖是否存在、透明度值是多少一目了然排查問題時比直接翻渲染畫面高效得多。第三在生產(chǎn)環(huán)境里模型文件最好統(tǒng)一走一個“資源打包”流程把 OBJ、MTL、貼圖全部拷到一個固定目錄結(jié)構(gòu)下用腳本檢查一遍路徑引用最后生成一個帶校驗和的資源清單。這一步看起來繁瑣但能避免很多“在開發(fā)機(jī)上好端端的一部署到現(xiàn)場就找不到文件”的尷尬。5.4 給 Qt / LabVIEW 開發(fā)者的移植提示我用 C# 講的解析邏輯換到其他語言同樣成立。Qt 里可以用QTextStream按行讀QColor直接存顏色QOpenGLTexture加載貼圖路徑拼接用QDir::cleanPath處理..LabVIEW 里可以用“讀取電子表格”控件按行解析字符串拆分后轉(zhuǎn)數(shù)值只是異常捕獲不如文本語言方便更要在解析前做好數(shù)據(jù)校驗。核心思路是不變的分清楚哪些是幾何信息OBJ哪些是外觀信息MTL解析時先有完整的數(shù)據(jù)結(jié)構(gòu)再去逐行填值遇到未知關(guān)鍵字跳過而不是報錯紋理丟失時回退到純色而不是黑屏。最后再分享一個小技巧給 OBJ 加載器寫測試用例時不要只用 SolidWorks 導(dǎo)出的標(biāo)準(zhǔn)模型專門準(zhǔn)備幾個畸形 MTL 文件——缺Kd、d和Tr混用、貼圖路徑帶空格、illum寫了個 99。把這些文件喂給解析器能扛住不崩潰、不白屏的解析器到現(xiàn)場才穩(wěn)得住。三維模型加載這塊真正拉開差距的不是把正常文件解析對而是把不正常文件解析得不難看。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
日本不卡三级网在线播放| 久久性爱精品一区| 不卡九肏| oumeisetu综合| 在线一道啪| 视频二区美腿制服人妻欧美| 日韩 成人 有码| 五月天婷婷色| 综合激情五月天| 欧美成人黄网色网站| 日韩一级二级三级在线不卡观看完整| 330dv亚洲成年视频网| 91久久精品蜜臀| 91在线视频免费播放| 久久久久久久97| 97在线无精品| 蜜桃视频一区二区三区 | 天天干天天日天天射黄色| 围产精品一区二区三区视频播放| 青青操综合网| 成人一级性爱| 中文日本免费高清| 操婢日韩| 大色综合网| 日本欧美一区二区三区视频麻豆| 亚洲成人久久一区二区| 亚洲欧洲综合av在线| 九九碰九九爱97超碰| 怡红院久久老司机| 俺去啦俺来也久久综合| 91美女在线| 蜜臀久久99精品久久久久久成人小说| 亭亭在线资源| 精品无码一区二区人妻久久蜜桃| 蜜桃狠狠色伊人亚洲综合 | 五月天亚洲网| 日本一久是| 国产成人主播| 欧美亚洲AN| 91久久18禁| 欧美狠狠弄| 色综合中文字幕不卡| 天天综合亚在线| http://qxhbdz.com| 五月色网| 无码又爽又硬又激情免费视频 | 欧美翘臀视频网站一区二区三区| 精品999一区二区| 欧美亚洲色的图| 影音资源男人日韩| 懂色AV网| 日韩无码视频黄色| 人妻日日干| 日韩黄色一区二区三区| av资源在线播放天堂| 激情综合久久| 自拍视频大全亚洲专媒视频/一区二区三区| 久久久久久久少妇| 中文字幕人乱码中文字的预防方法| 亚洲欧洲无码97久久精品| 伊人一区二区三区| 蜜桃臀一区二区三区久久| 欧美色图亚洲色,麻豆| 少妇三p| 97极品无码| 明星性猛交ⅹxxx乱大交| 岛国片国产成人亚洲播放| 亚洲另类在线观看| 91激情综合| 九九九九九九综合| 日本爽爽爽爽爽爽免费视频| 国语国产操逼伊人AV网| 国产精品白虎| 国产91专区| 国产偷拍网站| 性爱av在线免费观看| 操人妻少妇中文| 成人欧美日超碰| 亚洲天堂2020| 污污汅18禁网站在线永久免费观看 | 色欲Av人妻精品一区二| 美女被艹尤物视频| 91电影色诱| 亚洲在线观看| 国产黄色影片在线观看| 天美av在线观看| 欧美A√综合网| 国产精品白丝AV| 亚洲 自拍偷拍 欧美| 亚州操逼网| 99青青草国产视频| 久久东京热久久| 18禁美女裸体无遮挡啪啪| 久99热| 综合久久99亚洲人妻中文在线| 天天日天天看| Julia在线播放亚洲久久| 好看的久久不射无码影视影院| 亚洲丝袜在线观看| 亚洲成人美女无吗| 91高跟美女在线播放| 久久久青青草| 性爱av在线免费观看| 日本女厕偷拍| 黄色片A级一区二区三区| 婷婷五月天成人网| 校园春色第一页| 美女操逼福利视频| 青青草久久在线| 久久性爱视频免费看| 91色色色| 偷拍综合网| 91人妻Pr| 51一区二区三区| 岛国大片在线观看网站入口| 欧美熟妇操操视频| 波多野结衣之双飞调教在线播放| 中文字幕啊啊啊在线观看视频| 精品人妻久久久| 久久99人妖视频国产| 中 文字幕一区二区三四 五 区日 日 骚 | 人妻久久一区二区三区 | www.色婷婷色综合| 久久久久幕乱码| 日本成人电影资源网| 亚洲国内精品成人不卡| 婷婷在线视频在线观看| 嗯嗯啊好大| 国产理论视频在线播放| 日韩精品影视| 麻豆国产免费影片| 久久啊啊| 欧美大色交| 免费毛片在线播放| 亚洲成成熟女人综合一区二区| 99碰碰| 人人操人人肉久久精品| 91美乳| 欧美精品99久久久**| 国产偷人妻精品一区二区在线| 无码高清国产AV| 日韩美女,国产传媒,视频一区| 韩国一级婬片A片无码天美| 亚洲视频小说| 亚洲精品aa久久伊人| 国产深喉| 骚货人妻偷情自拍在线视频| 国产精品日韩在线一区| 亚洲综合 欧美| 户外裸露刺激视频第一区| 欧美精品亚洲精品日韩传电影| 亚洲丝袜二区| 免费日韩黄片| 91在线丝袜| 久热这里| 国产高清精品一区二区三区毛片| 日韩特一级久久| 亚洲久热| 女同女同恋久久级三级| 九九九九九九精品| 久草综合视频| 发朗少妇买婬全视频中文| 中文?日韩?免费?精品| 91日日| 91精品国产麻豆国产自产在| 自拍偷拍国产欧美日韩韩| 午夜精品久久久久久久99| 国产超碰人人操| 超碰在线人妻中文字幕| 精品国产综合久久福利,热99这里有精品综合久久,99热这里只有免费国产精品,精 | 激情小说图片亚洲首页| 久久精品国产99久久,亚洲日韩久久日本一区一区三区 | 天天干嫩逼网| 久久精品欧美一区二区三区不卡| 欧美性五月| 中文字幕制服欧美久久一区| 国产亚洲色婷婷久久99精品91葵花宝典| 亚洲巨爆乳一区二区三区四季网| 91高清欧美| 亚欧洲一区二区视频| 亚欧精品久久久久久久久久久| 100啪啪视频大全| 偷拍导航视频网站| 九九九国产精品| 久九干| 综合自拍| 另类小色呦| 久久亚洲国产成人| 亚洲网站一区二区在线| 2019天天干| 欧美第二页午夜| 后入人妻一区| 亚洲精品国产AV天美传媒| 精品久久一区二区三区四区五区| 免费看欧美美女黄色大片| 樱花蜜乳av| 久久大黄片| 少妇无码999| 97chaopenrihan| 蜜桃一区二区三区| 极品久久久久久久久久久久久久| 国产在线精品电影观看| 97在线观看免费视频l| 99自拍B亚洲| 天天综合~91入口| 爽爽淫人网| 激情综合五| 五月婷婷无码| 亚洲天堂综合AV| 五月婷婷综合网| 99热只有| 日本一区三级韩国| 亚洲永久AV无码精品秋霞| 欧美老妇综合网| 亚洲永久永久永久永久一级一级一级精品 | 婷婷亚洲五月***久久| 亚洲成a人在线观看久| 小日子操bb在线看| 日韩不卡毛片Av免费高清| 人人操人人操草草| 九九Av| 亚洲欧美精品一区天堂久久| 精品乱子一区二区三区99| 亚洲男人的天堂一区二区| 97人人中文网| 密臀国产在线| 97在线免费视频| 特级特黄一级毛片免费| 亚洲成人免费中文字幕| 中日高清无码操逼视频| 超碰97欧美在线| 亚洲AV无码天美传媒一区| 久草资源在线视频官方总站日韩丝袜美腿 | 精品九九九九九九九| 美女黑人91神马| 天天射夜夜| 超碰在线日韩一区| 国产精品福利资源在线尤物| www.黄色在线| 天天添天天干电影| 97精品97久久| 2017亚洲天堂| 欧美日韩性爱无码| 熟女日韩| 天天躁夜夜躁狠狠躁AV| 26uuu最新| 日韩乱伦AⅤ| 亚洲综合五月天| 男插女青青影院| 玖玖大干人妻| 久久精品日韩| 国产av白丝| 91爱欧美| 91精品人妻偷情| 人人天天干干| 亚洲爱爱视频一区二区| 搡老熟女免费视频| 超碰在线国产| 99最新日韩偷拍视频| 色姑娘综合网| 激情看片网站| 亚洲欧美国产va在线| 国产suv一区二区三区6| 啪啪啪精品视频| 久久大香蕉手机高清视频| 欧美人人天天网| 96精品久久久久久久久久| 欧美日韩性爱无码| 黄色不卡视频| WWW操逼| 婷婷久久综合| 欧美亚洲韩国视频十五区 | 欧美日日夜夜| 青草精品视频日本久久久久网站在线| 做爱A级亚欧| 亚洲欧美日韩有码| 国产美女高潮| 亚洲另类色图片| 久久男人| 久久精品色欧美aⅴ一区二区| 午夜天堂精品久久| 试看日韩黄片| 混色激情av| 激情视频图片| 日本一级二级三级网站| 国产精品天干天干综合网麻豆| av网站免费看| 亚洲限制级在线| 老司机香蕉久久久久| 天天干天天操天天干天天操| 超碰97首页| 国产精品久久久久久无码红治院| 综合大香蕉美。| 国产高清成人mv在线观看| 91色图片| 成人小说视频在线精品欧美| 免看60秒涩涩视频| 国产最新AV| 欧综合网| 粘花网06av视频| 家庭乱伦麻豆| 欧洲精品在线播放| 在线看的av| 久久久久久久78| 欧美综合国产精品久久丁香| 宅男午夜在线视频| 人妻丰满熟妇一区二区三| 老汉网| 欧美极品性爱天天射| 中国熟女网站| 成人福利视频网| 9美女超碰在线免费观看| 九九黄色网| 男人天堂新在线| 天天欧美色| 可免费观看的av毛片中日美韩| 99中出在线| 牛牛AV人人夜夜澡人人爽| 综合网久久| 嗯啊抽插大香蕉网页| 欧美色交| 亚州色站 日韩电影| 激情抓乳插进去啪啪啪日韩 | 午夜一区二区三区国产| 91热色| 999在线电影香蕉| 肉动漫无遮挡h在线观看| 成人精品视频一区二区| 国产精品婬乱一级毛片彝族| 情色大香蕉| 色诱中文字幕| 黄aaaaaaaaaaaaaaaaaa色网站| 日日躁夜夜躁狠狠躁超爽| 天天综合AV| 欧美成人AⅤ大片在线观看| 国产AV线| 色 婷97| 在线观看精品国产免费| 丁香九月婷婷| 少妇人妻在线| 97色爱| 91丨九色丨大屁股| 91社区拍啪人妻| 夜夜爽夜夜操| 人妻天天爽夜夜爽2| 大香蕉免费中文| 四虎影视永久在线免费| 嗯嗯啊啊好爽| 蜜臀中文无码午夜| 淫乱图区| 欧美78p| 国产色呦呦| 国产成人91一区二区三区| 丝袜色综合| 青青草吊丝| 桃花色涩综合影院| 亚洲色图欧美色图日韩色图| 国产h小视频在线观看免费| 极品色电影院| 日韩懂色网| 国产后入精品| 综合啪啪| 在线精品福利免费播放| 五十路六十路素人熟女| 超碰78| 天天碰久久入| 日本不卡免费二区| 亚洲国内精品成人不卡| 激情四射五月天| 精爱久久| 黄色二级片网站| 国产高清1234区| 99精品在线观看| 大伊香蕉在线视频免费| 色官网色综合| 性爱边摸边日免费AV| 91色人妻| 成人免费看吃奶视频网站| 精品午夜福利| 国产精品懂色tv影视免费观看| 欧洲精品二区| 国产精品扒开腿做爽爽爽视频| 中出在线视频| 日韩欧美~中文字| 亚洲影视第一页| 老司机午夜精品福利视频一区二区| 亚洲欧美国产中文字幕| 中文字幕欧美日本乱码一线二线 | 乱伦3P视频| 人人摸人人叼| 欧美一级色| 亚洲欧洲偷拍一区| 国产四虎在线| 国产农村妇女精品一| 情色五月天久久久| 91美女視頻| 成人久久久精品| 精吧天堂| 亚洲性高潮| 999综合网| 久久的免费性爱视频| 国产成人在线观看网址| 园内精品自拍视频在线播放| 亚洲人妻中文高清| 亚洲欧洲综合视频在线| 亚 欧 美 综合| 在线综合 亚洲 欧美中文字幕| 国产熟女| 日日97| 97色97干| 在线看的av| 亚洲日韩精品在线播放| 国产suv精品一区二区四| 国产欧美日韩臀 | 一级久久久久久久久久久 | 日本黄大片在线观看视频| 交换娇妻呻吟声不停中文字幕| 精品久久久久久中文| 欧美综合区| 情侣开房子拍 日韩无码 女的很漂亮| 天天α片| 亚洲天堂2020| 欧美日韩精品一区二区三区高清| 97视频观看| 欧美 熟女 日韩| 亚洲狠狠入| 亚洲国产精品成人综合| 色官网在线| 日本不卡码黄色| 乱操9999| 色天使亚洲综合在线观看| 亚洲成人综合在线| 日日夜夜草草草| 麻豆熟妇乱妇熟色A片在线看 | 91综合国产精品| 狠狠爱夜夜| 天天摸夜夜添无码小视频| 色色五月丁香| 男人的天堂日韩| 热思思免费视频| 日韩乱插| 毛片麻豆91糖心精品毛情片| 欧美人人曰人人操人人射射| 老女人日韩美91| 久久精品操| 国内毛片婷婷六月色| 蜜桃臀 后入 一区 二区 三区 在线| 亚州欧美综合| 日韩性爱人人爱人人操| 热久久91婷婷| 欧美少妇色图| 色五月综合网| 伊人网在线点播| 乱伦av麻豆| 天堂国产AV| 免费岛国一级片| 丁香五月天堂网| 97精品视频在线播放| 在线色导航| 婷婷色网| 美女操逼A A| 中文字幕国产精品1区| 91情色在线| www.激情| 国产精品乱码久久久久| 999在线电影香蕉| 精品国产乱码久久久久久蜜臀| 国产伦乱91| 亚洲素人综合| 手机在线观看不卡无码av| 夜夜福利| 欧美性爱在线无码| 97操97干| 亚洲人成网www| 精精品人妻一区二区三区| 91人妻PORNY九色大屁股| 九九这里只有精品| 色综合五月天| 天天综合91| 欧美日韩免费专区在线| 亚洲h片在线免费观看| 91久久伊人婷婷青青草| 免费一级特黄特色大片在线观看看 | 久久青娱乐| 亚洲色啪| 99re免费视频精品全部| 亚洲情色在线| 久久九九国产精品| 午夜一区| 欧美韩国你懂得在线 | 亚洲天堂男人在线| 久久透逼视频| 亚州欧美综合| 蜜臀av一区二区三区免费观看| 久久久精品网站| 日韩99神马视频播放| 日韩图区 偷拍| 色九九九九九九| 性欧美另类高清| 亚洲天堂五月天国产| 精品中文日韩字幕视频| 人妻久久久久久久久久久久久久久| 日本不卡一区| 97在线资源| 五月花婷婷| 人人干黄色| 欧美,日韩,中文,另类| 色av中文字| 欧美日韩一区二区三区四区蜜桃| 人妻精品一区二区| 97一区二区三区视频| 五月丁香六月婷综合成人综合 | 亚洲中文字幕乱码无码一区二区| 国产AV激情无码久久无码 | 三级三级三级日本99| gogogo免费高清看中国国语| 日本媚薬中文字幕在线| 欧美成人综合| 天天综合网国产| 无码高清专| 2024黄色视频| 国产精品一区在线播放| 97色涩| 懂色AV一区二区三区| 日本女优在线视频福利| 久久永久无码人妻视频| 97在线播放| 亚熟hd视频在线| 亚洲日韩肥臀视频在线观看| www.99色| 国产精品成人蜜臀AV在线| 欧美日韩大香蕉| 97在线视频免费看| 亚洲骚男同com| 久日91在线| 国产原创精品| 熟女人妻av在线资源,黄色的资源| 欧美精品99久久久**| 中日韩免费看男女操逼大全| 九九九九亚洲| 蜜区区视频79| 97色欧洲| 超碰色美女| 亚洲文学偷乱拍啪啪啪啪| 欧州激情视频在线一区二区| baisiav| 黄污污污污| 色五月综合网| 婷婷综合视频| 大香蕉久操| 麻豆啪啪啪视频| 亚洲1区2区三区高清中文字幕| 伊人专区一区二区三区| 亚洲一区二区三区在线激情| 加勒比伊人| 女优大全 - 91n| 人人妻人人澡人人爽久久av| 欧美情色亚洲| 欧美双插| 最新亚洲黄色免费电影| 日本久久女同性恋视频| 麻豆三极片| 国产美女在线精品免费看| 色图综合网| 国产成人在线观看网址| 亚洲另类欧美精品| 91丨豆花丨熟女| 国产美女裸体秘 永久无遮挡| 国产精品久久久久无码Av网曝门| 青青青国产手线观看视频2| 成人a v在线播放免费| 黄片qw| 成人aⅴ一区二区三区| 免费伦费视频在线观看| 激情看片网站| 欧美|91色综合| 大香蕉综合| 97 九色| 99re在线视频这里只有精品| 九t超碰| 天天干人人看综合| 日本三级一区二区 在线| 岛国艾薇凹凸视频天堂| 很很干很很操| 国产精品密臀网在线观看| 久久久精品一区二区| 啊啊啊水好多| 综合av社区| 黑人无码一区二区| 超碰调教97| 黄呦呦在线| 国产AV天美传媒一区二区三区| 久久久91| 免费αⅴ在线观看| 五月天婷婷成人网| 亚洲综合性网址| 久久久久久久唑| 国产日韩在线播放av| 综合色久| 欧美亚洲高清不卡| 香蕉99秘 一区精品蜜桃臀| 91视频精品| 91麻豆va国产精品| 欧美精品 - 91爱爱| 久99在线免费观看视频| 免费av在线播放二区| www色色com| 东北女人| 国产黄色 A 片免费看| 欧洲乱码视频| 不卡在线一区,精品一区二区三区中| 天天摸天天插天天日| 校园春色宗合网| 日日爱99| 色香蕉影院| 欧美熟女丝袜| 18禁看网站一区| 五月天啪啪| 九9热伊人| 成人一道本免费视频| 婷婷五月天成人| 精品视频久久区| 人人操我人人干| 黄色污污污污污污网站| 亚洲双插| 伊人黄色视频免费观看| 亚洲视频一二区| 日本一道在线播放高清| 天天爽夜夜操| 亚洲色图片区| 亚洲第一在线视频| 超碰是碰在线观看| 看黄片视频免费| 91天射| 欧美一二三级精品在线| 天天操女人| 女色综合| 91在线页| 久久久久久久97| 久热这里| 欧色网址| 淮穴色AV| 一区二区高清视频| 欧美午夜精品久久久久久3D| 久久精品导航| 久久香蕉网| 亚州,欧美在线| 中文字幕在线观看二区三区| 在线五区| 你懂得91| 久久内射| 亚洲熟妇图片| WWW.操逼.COM| 91九色丨国产丨爆乳| 国产强奸无码乱伦| 欧美亚洲第1页| 岛国福利在线精品播放| 久久鲁夜| 加勒比在线视频一区二区三区| 久草在| 精品一区二区人妖| 竹菊一区二区三区AV线| 精品区9| 日本人妻最新在线中| 亚洲熟妇无码一区二区三区| 日韩簧片免费看| 日日夜夜模| 亚洲熟女av日韩熟女| 99热在线只有精品| 国产少妇与亚洲av| 日韩中文字幕国产| 韩国嫰模上门援交视频| 免费黄色片子| 尤物网站91| 亚洲涩涩| 狠狠五月天| 精品免费视频国产一区| 女人的天堂大香蕉网| 国产亚州精品美女久久久免费| 中日韩久久久免费看| 国产女人高潮视频| 免费的黄片有限公司| 久久久内射良家| 69超碰综合| 人人看人人爰人人操| 97操碰| 狠插 制服 自拍| 日本在线不卡v二区| 91少妇人妻| 婷婷15月天青娱乐| 熟妇熟女视频一区二区三区| www.yeyecao| 亚洲少妇视频| 伦在线97| 国产精品白虎| 国产小视频91| 亚洲精品一区二区精华| 美女黄色91| 白丝少妇一区二区| 97色婷婷| 91在线精品| 中文字幕第9页萱萱影音先锋| 肉丝中文无码高清| 97色欧州| 成人在线视频二区| 欧美一级黄片免费播放| 最新亚洲人成网站在线影院| 97亚洲在线| 国产日韩中文字幕欧美| 国产精品色哟哟| 九九九九九九九精品视频| 草草网站影院白丝内射| 操b在线观看| 亚洲欧美黄| 精品人妻一区二区蜜桃视频| 青青草色插素人| 欧美亚洲丝袜美女电影| 91N欧美| 久/久精品99看9| 日本www操操操| 性影在线视频| 无码外流操逼视频| www久久国产精品| 97在线看| 综合第一页| 亚洲高潮影院| 精久久久| 欧美精品,四区。五区| 99色婷婷中文字幕乱色| 欧美成不卡网| 国产精品小视频一区二区三区| 4399成人黄A片| 中文字幕精品资源在线| 黄片aaaaa一区| 国产AV毛片| 操逼逼中文字幕| 亚洲第一黄色av网站| 大香蕉黄色一级片免费看| 国产日韩无码一区二区三区久久区| 精品午夜福利| 一级二级在线观看| 日韩三级伊人| 精品人成视频在线观看| 久久精品国产精品一区| 亚洲一区二区三区春色| 欧美人与动性人交a| 天天日天天干天天色| 自拍偷拍第26| 亚洲 欧美 制服 另类 自拍| 无码高清国产AV| 色婷婷九月天天综合| 黄aaaaaaaaaaaaaaaaaa色网站| 熟女字幕| 久久五月综合| 台湾佬激情综合| 熟女自慰久久久| 欧美日韩亚洲五月天婷婷| jiujiujiujingpin| av天堂加勒比| 亚洲熟女av中文字幕| 国产高清自拍视频| 91丨豆花丨熟女| 国产女生在线| 日本欧美韩国日产片片在线看免| 久久久久久久久久久久久9999| 91亚洲欧美色图| 久日综合网| 这里只有97精品| 久久在线观看免费视频| 国产精品黄色三级av| 久久九色| 97超碰逼| 久久久精品,3| 日韩三级在线观看网站| 日韩人妻中文视频| 正在播放:深夜激情大战,自带黑丝袜全力输出骚穴 | 亚洲啪啪综合?v一区综合精品区| 人妻干天天| 亚洲欧洲综合视频在线| 精品熟女一区=区三区| 天综合网欧美| 九九碰九九爱97超| 国产Aα| 亚 欧 美 综合| 天天色踪合| 另类图片天天影视| 精品久久久久久中文| 久久久久13| 啊嗯嗯啊好大好爽| 欧美999| 日本国产成人亚洲精品无码| 人人爱夜夜爱| 超碰97久| 亚洲欧美自拍偷拍| 爱爱动态120秒| 精品欧美日韩在线观看| 亚洲无码超碰免费| 婷婷月色| 黄久久| 日本免费一级AAA大片器| 97五月天| 另类老少妇| 中文字幕国产| 老熟女91av| 精品无码少妇| 91人妻尻屄视频| 清清草影| 人人操,人人插| 蜜桃成人1区2区3区| 久久熟女精品不卡一区| 国产黄片精品在线| 人妻插插人妻人| 97干在线视频| 欧亚免费视频| AV色图| 免费一级a毛片久久久久久鸭绿欲 国产精品亚洲天堂网址 | 一区| 超碰97人妻免费在线| 亚洲第一页色| 青青青在线高清视频在线一二三四区 | 欧州色图区| 亚洲无码一区成人免费午夜| 国产精品久久久久久 百度| 日韩情色AV| 亚洲AV成人精品网站在AV| 日韩AV电影网站 | 久久免费老司机精品| 欧美日韩狠狠爱| 大香蕉520| 老熟女天天操| 婷色五月| 久久伊人影院| 丁香激情网| 亚洲色人阁| 午夜精品久久久久久久男人的天堂| 亚洲图片小说欧洲| 香蕉久久国产AV一区二区| 日韩91网| 天天干天天爽| 综合网亚洲| 91扒丝袜综合在线| 超碰日韩人妻| 久久久久久9999| 午夜.DJ高清在线观看免费7 | 日韩国产不卡在线视频| 青青欧洲黑| 亚洲免费成人精品电影| 日韩精品系列| 综合激情婷婷| 亚洲国产综合图区中文字幕 | 日韩操啪| 99久在线精品99re8a| www.91理论| 日日骚av| 亚洲人精品久久久喷水| 一区二区三区美女超清| 秋霞午夜视频一区二区| 日韩在线观看字幕精品| 亚洲欧美综合图片| 欧美三级一级| 成人七区| 精品人妻久久久| 中文字幕 一区二区 亚洲无码| 国产亚洲深夜激情| 啊灬啊灬啊灬啊灬高潮奶出了免费视| 欧美一级A片在线看视频性色| 大香蕉狠狠爱| 人妻无码后入| 日本 欧美 国产一区| 老熟女网站| 四季AV一区二区凹凸精品小说| 久草福利在线资源站| 91日韩| 日韩精品大香蕉伊人在线| 色人久久| 亚洲阿v天堂无码z2018| 日韩无码人妻中字久久三区四区| 久久久啊啊| 91成人久久| 97久久久| 五月天人妻综合| 国产青一二三| 天天做日日做天天欢。| 97超碰中文在线| 久久久久元码视频| 天无日色综合| 日韩av不卡在线观看| 99无码狠狠久久| 亚洲欧美天| 十八禁黄色成人网站观看| 色五月婷婷中文字幕| 人人干黄色| 极品肉射| 精久久久| 九一精品牛牛一区二区| 色色无码| 无码视频黄色网战| 免费1级a做爰片观看| 欧美色性情| 日韩毛片9| 极品后入免费视频| 精品妇女一区二区三区| 色一色综合网| 中文字幕奈奈美被公侵犯| 久久久96| 91精品人妻一品二品三品| 日日摸日日碰| 青久操| caopeng97| 色久综合| 91超级碰| 精品人人插人人操| 丰满少妇乱子伦精品无| 青青青国产手线观看视频2| 日本天天干天天操一区| 亚洲玖玖爱| 欧美第二页午夜| 清清草影| 97超碰亚洲| 屌妞视频久久久久久久久久久久 | 自拍偷拍 日韩欧美| 夜夜精品视频| 99热伊人| 久久老熟女| 日日97| 久久中文字幕女同性恋一区| 亚洲91网站| 欧美少妇色综合| 97日视频| 97色色,97综合| 91爱做| 韩日巨乳美女免费视频在线观看| 日日夜夜青青草母狗| 双插在线| 淫乱图区 | 岛国激情视频在线观看| 久久精品人人做人人看| 亚洲天堂五月天国产| 蜜乳AV免费观看| 国产成人超碰在线| 2018天天日天天日| www.色吧5.com| 91久久免费视频互動交流 | 青青青艹在线视频| 精品人妻无码一区二区三区不卡-精品人妻无码一区二区...|精品少妇一区二区三 | 日本操逼视频导航| 国产中文字幕曰本毛片| 精品国产久热在线观看| 亚洲天堂 视频你懂的| 伊人五月天| 99亚洲精品| 欧美AB在线观看| 久久夜嗨| 风月影院男女十八禁| 欧美精品欧美精品系列| 国产丝袜啪啪| 中文字幕后石码三区四区| 免费岛国一级片| αⅴ天堂| 九九aV| GVH-003 母子姦 青木玲-麻豆视频,麻豆视传媒短视频网站入口,麻豆视传媒官网直 | 激情婷婷| ,国产乱人伦精品一区二区三区| 欧美色图片91| 久久宗合亚洲| 久久香蕉国产线看观看亚洲女人 | 无码视频黄色网战| 亚洲精品丝袜-不卡成人免费…… 久久久久成人蜜桃精品 | 99精品高潮| 亚洲图片91| 亚洲黄片免费在线播放| 岛国视频免费在线观看| 久久婷婷视频| 影音综合网| 久久人妻一区二区三区高清| 好吊色综合| 国产一级内射无挡观看| 无套内射性感少妇视频| 久久综合18p| 亚洲drav色图| 加勒比综合| 国产熟女免费观看久久| 男人天堂2019亚洲| 九九九九免费高| 日本不卡在线二区三区| 国产精品女生av| 亚洲日产专区| 精吧天堂| 九九综合九九综合| 亚洲经典啪啪| 神马午夜久久久| 亚洲欧美骚| 精品人妻av在线播放| 91美女丝袜诱惑视频| 97一区二区三区视频| 香蕉综合网| 婷婷影院入口| 日韩懂色网| 久久久久久性爱免费视频| 老司机老司机午夜影院| 亚洲天堂另类小说男人| 中文字幕国产| 脫衣舞一区二区三区| 久妇网| 欧美精品黑人猛交高潮| 免费簧片在线观看| 一区二区三区四区姦女| 自拍六区| 亚洲成人久久美女| 青草影院内射高潮| 一区二区精品日韩欧美在线观看| 九九伊人网| 欧美性少妇| 国产乱码精品一区二区三区四川| 中文字幕乱码人妻一区二区三区,99精品 | 岛国1区2区3区在线观看| 亚洲激情综合| 国产中文字幕在线| 欧美人妻精品一区二区| 亚州色国| 国产精品久久久久久照片| 欧美久久婷| 欧美黄页| 天天影视网综合少妇| 青青草一区二区高清无码视频| 全免费a敌肛交毛片免费| 欧美亚州综合图片| 黄色片A级一区二区三区| 欧美日韩国产中文精品字幕自在自线,| 久久精品国产97欧美精品亚洲 | 黄色人人| 偷拍超碰| 亚欧免费| 日韩少妇无吗| 思思热免费在线视频| 久久神马影院| 欧美日韩日产免费网站看| 激情综合av| 欧美黄色大片在线观看 | 亚洲做性| 九九色婷婷| 综合亚洲欧美| 又大又白奶子| 女性91网站| 中文字幕少妇色| 色婷婷六月丁香七月婷婷| 大香蕉色网| 搞中出久久| 狠狠爱夜夜干| 曰韩无码777| 加勒比综合88| 少妇蜜汁| 男人天堂黄片| 99热日| 综合网色| 国产后入| 搞中出视频在线观看| 91成人久久| 超碰人人干天天射| 91neishe| 成人无码在线超碰网| 日本孕妇孕交| 婷婷色播婷婷| 中文字幕精品探花视频| 97色妞| 十八禁啪啦拍视频无遮挡| 欧美在线啊啊| 婷婷另类小说| www…国产操逼| 97超碰站| 国产第二页| 久久综合五月天| 粉嫩av平台| 日日日日做夜夜夜夜做无码97| 色九月婷婷| 一级做a爰片性色毛片久久| 香蕉免费一区二区三区不读 | 精品久久久久久中文字幕视频免费| 亚洲精品天天影视综合网 | 亚洲熟女乱综合一区二区三区| 成人性爱电影一区二区| 欧美天天综合网| 都市激情人妻一区二区青青操视频| www…国产操逼| 国产日韩精品suv| 精品大全99999| 第二页中文字幕| 亚洲成人久久美女| 欧美 精品国产制服第一页| 曰本道人妻久久久在线不卡色视频| 又大又白奶子| 国产高清在线观看欧美| 欧美日韩97| 少妇特黄一区二区三区| 夜夜操老骚逼视频网站| 久久精品色欧美aⅴ一区二区| 亚洲精品久久久久毛片A片拉屎 | 青娱乐日韩无码| 翔田千里Av在线| 亚洲丝袜少妇在线| 人妻熟女一区二区| 91黑丝少妇| 亚洲1区| 国产操偷| 91性高朝久久久久久久久| 大逼色网站| 蜜臀th| 日本一天色道久久久精品视频| 99热这里只有精| 亚洲高清无码AAA久久久精品| 日韩av性爱在线播放| 99re视频这里只有精品| 蜜臀th| 欧美色图成人网一区二区| 国产丝袜美女诱惑| 99精品久久| 92人人操人人| 日韩色| 日日噜噜夜夜狠狠视频无| 精品国产Av无码久久久伦古装| 97操97干| 啊啊啊啊啊舒服| 91欧美丨精品丨入口| 久久超碰97中文字幕| 99中出在线| 猛交交| 67914亚洲精品| 九月婷婷| 色99在线| 色欲天天综合网| 国产精品无码论坛| 在线观看亚洲专区| 蜜乳AV一区| 亚洲一区二区久久久久| 自怕偷自怕亚洲精品| 日本性交操一区二区不卡系列| 精品九九九九| 91精品人| 国产 日韩,欧美 自拍| 国产精品国产精品国产| 欧美国产婷婷久久| 搡老女人老91二区| 亚洲一区二区三区婷婷| 大香蕉淫人网| 91精品国产91综合久久蜜臀| 性猛交| 国产成人在线观看网址| 91免费看一区二区三区| 亚洲无码电影久久久| 翔田千里A片一区二区| 一中国女人毛片水真多| 欧美一级黄色免费专区| 日韩欧美午夜一区二区| 人人摸.人人色| 377p欧洲日本亚洲大胆| 盗摄女人妻在线| 亚洲aV性爱| 发朗少妇买婬全视频中文| 亚洲色图久久成人| 伊人色综合超碰|