精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Threejs開發3D地圖實踐總結

開發 前端
前段時間連續上了一個月班,加班加點完成了一個3D攻堅項目。也算是由傳統web轉型到webgl圖形學開發中,坑不少,做了一下總結分享。

前段時間連續上了一個月班,加班加點完成了一個3D攻堅項目。也算是由傳統web轉型到webgl圖形學開發中,坑不少,做了一下總結分享。

1、法向量問題

法線是垂直于我們想要照亮的物體表面的向量。法線代表表面的方向因此他們為光源和物體的交互建模中具有決定性作用。每一個頂點都有一個關聯的法向量。

 

如果一個頂點被多個三角形共享,共享頂點的法向量等于共享頂點在不同的三角形中的法向量的和。N=N1+N2; 

 

所以如果不做任何處理,直接將3維物體的點傳遞給BufferGeometry,那么由于法向量被合成,經過片元著色器插值后,就會得到這個黑不溜秋的效果  

 

我的處理方式使頂點的法向量保持唯一,那么就需要在共享頂點處,拷貝一份頂點,并重新計算索引,是的每個被多個面共享的頂點都有多份,每一份有一個單獨的法向量,這樣就可以使得每個面都有一個相同的顏色

 

2、光源與面塊顏色

開發過程中設計給了一套配色,然而一旦有光源,面塊的最終顏色就會與光源混合,顏色自然與最終設計的顏色大相徑庭。下面是Lambert光照模型的混合算法。

 

而且產品的要求是頂面保持設計的顏色,側面需要加入光源變化效果,當對地圖做操作時,側面顏色需要根據視角發生變化。那么我的處理方式是將頂面與側面分別繪制(創建兩個Mesh),頂面使用MeshLambertMaterial的emssive屬性設置自發光顏色與設計顏色保持一致,也就不會有光照效果,側面綜合使用Emssive與color來應用光源效果。

 

3、POI標注

Three中創建始終朝向相機的POI可以使用Sprite類,同時可以將文字和圖片繪制在canvas上,將canvas作為紋理貼圖放到Sprite上。但這里的一個問題是canvas圖像將會失真,原因是沒有合理的設置sprite的scale,導致圖片被拉伸或縮放失真。

 

問題的解決思路是要保證在3d世界中的縮放尺寸,經過一系列變換投影到相機屏幕后仍然與canvas在屏幕上的大小保持一致。這需要我們計算出屏幕像素與3d世界中的長度單位的比值,然后將sprite縮放到合適的3d長度。

  

 

4、點擊拾取問題

webgl中3D物體繪制到屏幕將經過以下幾個階段

 

所以要在3D應用做點擊拾取,首先要將屏幕坐標系轉化成ndc坐標系,這時候得到ndc的xy坐標,由于2d屏幕并沒有z值所以,屏幕點轉化成3d坐標的z可以隨意取值,一般取0.5(z在-1到1之間)。

  1. function fromSreenToNdc(x, y, container) { 
  2.  
  3.   return { 
  4.  
  5.     x: x / container.offsetWidth * 2 - 1, 
  6.  
  7.     y: -y / container.offsetHeight * 2 + 1, 
  8.  
  9.     z: 1 
  10.  
  11.   }; 
  12.  
  13.  
  14. function fromNdcToScreen(x, y, container) { 
  15.  
  16.   return { 
  17.  
  18.     x: (x + 1) / 2 * container.offsetWidth, 
  19.  
  20.     y: (1 - y) / 2 * container.offsetHeight 
  21.  
  22.   }; 
  23.  
  24.  

然后將ndc坐標轉化成3D坐標:

  1. ndc = P * MV * Vec4 
  2.  
  3. Vec4 = MV-1 * P -1 * ndc  

這個過程在Three中的Vector3類中已經有實現:

  1. unproject: function () { 
  2.  
  3.   
  4.  
  5.         var matrix = new Matrix4(); 
  6.  
  7.   
  8.  
  9.         return function unproject( camera ) { 
  10.  
  11.   
  12.  
  13.             matrix.multiplyMatrices( camera.matrixWorld, matrix.getInverse( camera.projectionMatrix ) ); 
  14.  
  15.             return this.applyMatrix4( matrix ); 
  16.  
  17.   
  18.  
  19.         }; 
  20.  
  21.   
  22.  
  23.     }(),  

將得到的3d點與相機位置結合起來做一條射線,分別與場景中的物體進行碰撞檢測。首先與物體的外包球進行相交性檢測,與球不相交的排除,與球相交的保存進入下一步處理。將所有外包球與射線相交的物體按照距離相機遠近進行排序,然后將射線與組成物體的三角形做相交性檢測。求出相交物體。當然這個過程也由Three中的RayCaster做了封裝,使用起來很簡單:

  1. mouse.x = ndcPos.x; 
  2.  
  3. mouse.y = ndcPos.y; 
  4.  
  5. this.raycaster.setFromCamera(mouse, camera); 
  6.  
  7. var intersects = this.raycaster.intersectObjects(this._getIntersectMeshes(floor, zoom), true);  

5、性能優化

隨著場景中的物體越來越多,繪制過程越來越耗時,導致手機端幾乎無法使用。

 

在圖形學里面有個很重要的概念叫“one draw all”一次繪制,也就是說調用繪圖api的次數越少,性能越高。比如canvas中的fillRect、fillText等,webgl中的drawElements、drawArrays;所以這里的解決方案是對相同樣式的物體,把它們的側面和頂面統一放到一個BufferGeometry中。這樣可以大大降低繪圖api的調用次數,極大的提升渲染性能。

 

這樣解決了渲染性能問題,然而帶來了另一個問題,現在是吧所有樣式相同的面放在一個BufferGeometry中(我們稱為樣式圖形),那么在面點擊時候就無法單獨判斷出到底是哪個物體(我們稱為物體圖形)被選中,也就無法對這個物體進行高亮縮放處理。我的處理方式是,把所有的物體單獨生成物體圖形保存在內存中,做面點擊的時候用這部分數據來做相交性檢測。對于選中物體后的高亮縮放處理,首先把樣式面中相應部分裁減掉,然后把選中的物體圖形加入到場景中,對它進行縮放高亮處理。裁剪方法是,記錄每個物體在樣式圖形中的其實索引位置,在需要裁切時候將這部分索引制零。在需要恢復的地方在把這部分索引恢復成原狀。

6、面點擊移動到屏幕中央

這部分也是遇到了不少坑,首先的想法是:

面中心點目前是在世界坐標系內的坐標,先用center.project(camera)得到歸一化設備坐標,在根據ndc得到屏幕坐標,而后根據面中心點屏幕坐標與屏幕中心點坐標做插值,得到偏移量,在根據OribitControls中的pan方法來更新相機位置。這種方式最終以失敗告終,因為相機可能做各種變換,所以屏幕坐標的偏移與3d世界坐標系中的位置關系并不是線性對應的。

最終的想法是:

我們現在想將點擊面的中心點移到屏幕中心,屏幕中心的ndc坐標永遠都是(0,0)我們的觀察視線與近景面的焦點的ndc坐標也是0,0;也就是說我們要將面中心點作為我們的觀察點(屏幕的中心永遠都是相機的觀察視線),這里我們可以直接將面中心所謂視線的觀察點,利用lookAt方法求取相機矩陣,但如果這樣簡單處理后的效果就會給人感覺相機的姿態變化了,也就是會感覺并不是平移過去的,所以我們要做的是保持相機當前姿態將面中心作為相機觀察點。

回想平移時我們將屏幕移動轉化為相機變化的過程是知道屏幕偏移求target,這里我們要做的就是知道target反推屏幕偏移的過程。首先根據當前target與面中心求出相機的偏移向量,根據相機偏移向量求出在相機x軸和up軸的投影長度,根據投影長度就能返推出應該在屏幕上的平移量。

  1. this.unprojectPan = function(deltaVector, moveDown) { 
  2.  
  3.     // var getProjectLength() 
  4.  
  5.     var element = scope.domElement === document ? scope.domElement.body : scope.domElement; 
  6.  
  7.   
  8.  
  9.     var cxv = new Vector3(0, 0, 0).setFromMatrixColumn(scope.object.matrix, 0);// 相機x軸 
  10.  
  11.     var cyv = new Vector3(0, 0, 0).setFromMatrixColumn(scope.object.matrix, 1);// 相機y軸 
  12.  
  13.     // 相機軸都是單位向量 
  14.  
  15.     var pxl = deltaVector.dot(cxv)/* / cxv.length()*/; // 向量在相機x軸的投影 
  16.  
  17.     var pyl = deltaVector.dot(cyv)/* / cyv.length()*/; // 向量在相機y軸的投影 
  18.  
  19.   
  20.  
  21.     // offset=dx * vector(cx) + dy * vector(cy.project(xoz).normalize) 
  22.  
  23.     // offset由相機x軸方向向量+相機y軸向量在xoz平面的投影組成 
  24.  
  25.     var dv = deltaVector.clone(); 
  26.  
  27.     dv.sub(cxv.multiplyScalar(pxl)); 
  28.  
  29.     pyl = dv.length(); 
  30.  
  31.   
  32.  
  33.     if ( scope.object instanceof PerspectiveCamera ) { 
  34.  
  35.       // perspective 
  36.  
  37.   
  38.  
  39.       var position = scope.object.position; 
  40.  
  41.       var offset = new Vector3(0, 0, 0); 
  42.  
  43.       offset.copy(position).sub(scope.target); 
  44.  
  45.       var distance = offset.length(); 
  46.  
  47.       distance *= Math.tan(scope.object.fov / 2 * Math.PI / 180); 
  48.  
  49.   
  50.  
  51.       // var xd = 2 * distance * deltaX / element.clientHeight; 
  52.  
  53.       // var yd = 2 * distance * deltaY / element.clientHeight; 
  54.  
  55.       // panLeft( xd, scope.object.matrix ); 
  56.  
  57.       // panUp( yd, scope.object.matrix ); 
  58.  
  59.   
  60.  
  61.       var deltaX = pxl * element.clientHeight / (2 * distance); 
  62.  
  63.       var deltaY = pyl * element.clientHeight / (2 * distance) * (moveDown ? -1 : 1); 
  64.  
  65.   
  66.  
  67.       return [deltaX, deltaY]; 
  68.  
  69.     } else if ( scope.object instanceof OrthographicCamera ) { 
  70.  
  71.   
  72.  
  73.       // orthographic 
  74.  
  75.       // panLeft( deltaX * ( scope.object.right - scope.object.left ) / scope.object.zoom / element.clientWidth, scope.object.matrix ); 
  76.  
  77.       // panUp( deltaY * ( scope.object.top - scope.object.bottom ) / scope.object.zoom / element.clientHeight, scope.object.matrix ); 
  78.  
  79.       var deltaX = pxl * element.clientWidth * scope.object.zoom / (scope.object.right - scope.object.left); 
  80.  
  81.       var deltaY = pyl * element.clientHeight * scope.object.zoom / (scope.object.top - scope.object.bottom); 
  82.  
  83.   
  84.  
  85.       return [deltaX, deltaY]; 
  86.  
  87.     } else { 
  88.  
  89.   
  90.  
  91.       // camera neither orthographic nor perspective 
  92.  
  93.       console.warn( 'WARNING: OrbitControls.js encountered an unknown camera type - pan disabled.' ); 
  94.  
  95.   
  96.  
  97.     } 
  98.  
  99.   }  

7、2/3D切換

23D切換的主要內容就是當相機的視線軸與場景的平面垂直時,使用平行投影,這樣用戶只能看到頂面給人的感覺就是2D視圖。所以要根據透視的視錐體計算出平行投影的世景體。

 

因為用戶會在2D、3D場景下做很多操作,比如平移、縮放、旋轉,要想無縫切換,這個關鍵在于將平行投影與視錐體相機的位置、lookAt方式保持一致;以及將他們放大縮小的關鍵點:distance的比例與zoom來保持一致。

平行投影中,zoom越大代表六面體的首尾兩個面面積越小,放大越大。

 

8、3D中地理級別

地理級別實際是像素跟墨卡托坐標系下米的對應關系,這個有通用的標準以及計算公式:

  1. r=6378137 
  2.  
  3. resolution=2*PI*r/(2^zoom*256)  

各個級別中像素與米的對應關系如下:

  1. resolution zoom 2048 blocksize 256 blocksize scale(dpi=160) 
  2.  
  3. 156543.0339 0 320600133.5 40075016.69 986097851.5 
  4.  
  5. 78271.51696 1 160300066.7 20037508.34 493048925.8 
  6.  
  7. 39135.75848 2 80150033.37 10018754.17 246524462.9 
  8.  
  9. 19567.87924 3 40075016.69 5009377.086 123262231.4 
  10.  
  11. 9783.939621 4 20037508.34 2504688.543 61631115.72 
  12.  
  13. 4891.96981 5 10018754.17 1252344.271 30815557.86 
  14.  
  15. 2445.984905 6 5009377.086 626172.1357 15407778.93 
  16.  
  17. 1222.992453 7 2504688.543 313086.0679 7703889.465 
  18.  
  19. 611.4962263 8 1252344.271 156543.0339 3851944.732 
  20.  
  21. 305.7481131 9 626172.1357 78271.51696 1925972.366 
  22.  
  23. 152.8740566 10 313086.0679 39135.75848 962986.1831 
  24.  
  25. 76.4370283 11 156543.0339 19567.87924 481493.0916 
  26.  
  27. 38.2185141 12 78271.51696 9783.939621 240746.5458 
  28.  
  29. 19.1092571 13 39135.75848 4891.96981 120373.2729 
  30.  
  31. 9.5546285 14 19567.87924 2445.984905 60186.63645 
  32.  
  33. 4.7773143 15 9783.939621 1222.992453 30093.31822 
  34.  
  35. 2.3886571 16 4891.96981 611.4962263 15046.65911 
  36.  
  37. 1.1943286 17 2445.984905 305.7481131 7523.329556 
  38.  
  39. 0.5971643 18 1222.992453 152.8740566 3761.664778 
  40.  
  41. 0.2985821 19 611.4962263 76.43702829 1880.832389 
  42.  
  43. 0.1492911 20 305.7481131 38.21851414 940.4161945 
  44.  
  45. 0.0746455 21 
  46.  
  47. 0.0373227 22  

3D中的計算策略是,首先需要將3D世界中的坐標與墨卡托單位的對應關系搞清楚,如果已經是以mi來做單位,那么就可以直接將相機的投影屏幕的高度與屏幕的像素數目做比值,得出的結果跟上面的ranking做比較,選擇不用的級別數據以及比例尺。注意3D地圖中的比例尺并不是在所有屏幕上的所有位置與現實世界都滿足這個比例尺,只能說是相機中心點在屏幕位置處的像素是滿足這個關系的,因為平行投影有近大遠小的效果。

9、poi碰撞

由于標注是永遠朝著相機的,所以標注的碰撞就是把標注點轉換到屏幕坐標系用寬高來計算矩形相交問題。至于具體的碰撞算法,大家可以在網上找到,這里不展開。下面是計算poi矩形的代碼 

責任編輯:龐桂玉 來源: 前端大全
相關推薦

2023-06-03 08:06:20

項目開發客戶端

2011-12-21 12:46:43

2012-06-07 09:57:13

Android版Goo

2012-04-03 12:53:47

諾基亞

2023-08-18 08:00:00

游戲開發3D模型

2014-04-28 17:30:53

2011-10-06 13:30:45

宏碁投影儀

2012-11-26 12:51:44

木材3D打

2012-05-13 12:54:33

iOS

2011-05-26 10:05:07

優派投影機

2013-08-23 10:51:52

蘋果3D手勢

2010-09-08 11:26:26

Windows PhoXNA 4.0 3D游戲開發

2011-04-26 14:21:20

3DJVC投影機

2011-08-26 14:50:23

2023-03-03 21:42:18

鴻蒙

2012-08-13 17:11:37

Silverlight

2015-09-09 11:05:52

3d視差引導頁

2021-12-28 10:52:10

鴻蒙HarmonyOS應用

2011-05-25 16:07:17

2011-09-22 10:07:52

奧圖碼投影儀
點贊
收藏

51CTO技術棧公眾號

自拍自偷一区二区三区| 青草av在线| 欧美aaa在线| 久久久极品av| 激情av中文字幕| 韩国美女久久| 亚洲欧美一区二区三区孕妇| 国内精品视频在线播放| 一级二级三级视频| 国产欧美激情| 久久在线观看视频| 爱爱免费小视频| 色妞ww精品视频7777| 色欧美片视频在线观看 | 亚洲天堂2018av| 岛国片av在线| 国产精品大尺度| 久久精品ww人人做人人爽| 国产一区二区三区成人| 国产精品嫩草99av在线| 欧美日韩国产成人高清视频| 亚洲自拍偷拍图| 久久久久观看| 91精品国产一区二区人妖| 黑鬼大战白妞高潮喷白浆| 污污的网站在线看| 亚洲欧美综合另类在线卡通| 热舞福利精品大尺度视频| 日本高清视频免费观看| 国产一区二区三区香蕉| 国产成人一区二区三区| 国产成人无码精品亚洲| 国产一区清纯| 麻豆成人在线看| 少妇视频在线播放| 精品国产乱码久久久久久果冻传媒| 精品国产一区二区精华| 欧美69精品久久久久久不卡| 欧洲精品久久久久毛片完整版| 日韩欧美国产中文字幕| 男女视频网站在线观看| 免费网站在线观看人| 亚洲欧洲综合另类在线| 日本福利视频导航| 久草中文在线| 亚洲三级在线免费观看| 在线观看精品视频| 久久国产精品一区| 亚洲视频一区在线| 咪咪色在线视频| 国产在线观看免费麻豆| 亚洲天堂精品视频| 欧美亚洲视频一区| 成人在线影视| 亚洲最新视频在线观看| www.avtt| 91精品国产黑色瑜伽裤| 五月婷婷激情综合| 自慰无码一区二区三区| 亚洲永久av| 欧洲av一区二区嗯嗯嗯啊| 8x8x最新地址| 视频欧美精品| 日韩欧美久久久| 性久久久久久久久久久| 日韩有码一区| 国产亚洲精品久久久久久| 国产伦理片在线观看| 日韩成人免费| 久青草国产97香蕉在线视频| 久久久99精品| 一本色道久久综合亚洲精品高清| 欧洲亚洲免费在线| 中文字幕精品无码亚| 极品美女销魂一区二区三区免费| 成人精品久久av网站| www.色婷婷.com| 99re6这里只有精品视频在线观看| 免费中文日韩| 午夜免费视频在线国产| 一区二区三区日韩精品| aa在线免费观看| 97人人做人人爽香蕉精品| 日韩视频一区二区| av直播在线观看| 久久裸体网站| 久久久亚洲网站| 加勒比在线一区| 国产一区二区久久| 久久手机视频| 黄色精品免费看| 婷婷夜色潮精品综合在线| 天天干在线影院| 国产精品久久久久av蜜臀| 亚洲午夜久久久久久久| 久草综合在线视频| 视频一区国产视频| 成人免费视频网站入口| av网站大全在线观看| 一区二区高清视频在线观看| 91激情视频在线| 亚洲精品一区二区三区中文字幕| 亚洲免费福利视频| 欧美成人片在线观看| 久久一区欧美| 福利视频一区二区三区| 91在线视频| 精品美女国产在线| 亚洲AV成人精品| 久久高清精品| 日韩av免费在线| 亚洲毛片欧洲毛片国产一品色| 国产精品日韩精品欧美在线| 久久成人免费观看| 清纯唯美激情亚洲| 日韩中文视频免费在线观看| 成年人免费高清视频| 国产成人精品三级| 亚洲欧洲日韩精品| 搜成人激情视频| 亚洲国产精品推荐| 久久久99精品| 国产激情91久久精品导航| 亚洲欧美日韩精品在线| 日韩欧美另类一区二区| 亚洲精品99999| 久久综合加勒比| 国内精品写真在线观看| 亚洲高清123| 午夜欧美巨大性欧美巨大| 亚洲国产三级网| 免费毛片在线播放免费| 国产在线播精品第三| 一本一本a久久| 欧美日韩女优| 中文日韩在线视频| 一区二区三区麻豆| 国产三级精品在线| 成人羞羞国产免费网站| 思热99re视热频这里只精品| 午夜精品国产精品大乳美女| 亚洲精品一区二区三区不卡| 一区二区免费在线播放| 中文字幕 欧美 日韩| 欧美 日韩 国产精品免费观看| 成人网在线免费看| 成人ww免费完整版在线观看| 日韩一区二区在线观看| 日本黄色片免费观看| 国产原创一区二区| 免费cad大片在线观看| 精品成人18| 色综合天天综合网国产成人网 | 亚洲性猛交xxxxwww| 91黑人精品一区二区三区| 国产午夜亚洲精品不卡| 香蕉视频禁止18| 国产精品久久久久久影院8一贰佰 国产精品久久久久久麻豆一区软件 | 国产一区玩具在线观看| 黄色在线视频网站| 精品国产网站在线观看| 国产成人自拍视频在线| 26uuu色噜噜精品一区二区| 日韩中文字幕二区| 全球成人免费直播| 91原创国产| 小早川怜子影音先锋在线观看| 亚洲欧美日韩中文在线| 中文在线字幕免费观| 亚洲欧美色图小说| 国产精品果冻传媒| 久久精品天堂| 日本一区二区免费高清视频| 都市激情久久| 国产成人亚洲综合青青| 18av在线播放| 日韩经典第一页| 久久久久久av无码免费看大片| 亚洲人亚洲人成电影网站色| 国产伦精品一区二区三区88av| 久久久久网站| 麻豆映画在线观看| 尤物tv在线精品| 成人免费淫片视频软件| 波多野一区二区| 中文字幕无线精品亚洲乱码一区| 午夜精品久久久久久久96蜜桃| 狠狠久久亚洲欧美专区| 欧美性生交大片| 91在线你懂得| www.色.com| 美女精品一区| 欧美狂野激情性xxxx在线观| jlzzjlzz亚洲女人| 国产精品xxx在线观看www| avav成人| 91精品国产高清久久久久久久久 | 午夜成人免费影院| 91麻豆精品国产91久久久资源速度| 国产污污视频在线观看 | 香蕉视频免费版| 亚洲区小说区图片区qvod按摩 | 亚洲免费专区| 亚洲自拍另类欧美丝袜| 少妇精品视频一区二区免费看| 久久久中文字幕| 免费av在线网址| 亚洲色图综合久久| 可以免费看毛片的网站| 欧美精品成人一区二区三区四区| 你懂的国产在线| 一区二区三区四区五区视频在线观看| 欧美成人短视频| 99re6这里只有精品视频在线观看| 极品粉嫩美女露脸啪啪| 日韩国产精品久久久| 国产日韩av网站| 欧美不卡一区| 久久精品国产精品亚洲精品色 | 91蜜桃在线观看| 美女伦理水蜜桃4| 国产麻豆日韩欧美久久| 久久久精品麻豆| 三级欧美在线一区| 激情五月宗合网| 黑丝一区二区三区| 青青草免费在线视频观看| 成人激情开心网| 久久久久久国产精品一区| 97se亚洲国产一区二区三区| 91最新在线免费观看| 精品女同一区二区三区在线观看| 国产97免费视| sese综合| 国产精品第一区| 91亚洲精品| 国产精品丝袜久久久久久不卡| 少妇一区视频| 国产成人一区二| 国产第一亚洲| 国产精品自产拍在线观看中文| 欧美暴力调教| 国产欧美日韩最新| 成人在线分类| 亚洲一区二区三区在线视频 | 日本在线播放一区| 精品福利久久久| 亚洲欧美日韩国产成人综合一二三区| 第一sis亚洲原创| 一级做a爰片久久| 国产精品毛片久久| 亚洲国产精品女人| 欧美三级网页| 免费av手机在线观看| 99国产精品久久久久久久| 男人操女人逼免费视频| 久久综合激情| 看看黄色一级片| 国产电影一区二区三区| 给我免费观看片在线电影的| 久久综合国产精品| 亚洲精品天堂网| 亚洲人成电影网站色mp4| 国产乡下妇女做爰| 欧美性猛交xxx| 在线免费看毛片| 欧美一区二区久久久| 婷婷丁香花五月天| 亚洲天堂第二页| 在线播放免费av| 91a在线视频| 亚洲精品一区av| 国产成人成网站在线播放青青| 人人精品视频| 亚洲蜜桃在线| 极品中文字幕一区| 久久久久国产精品熟女影院| 精品中文字幕一区二区| 亚洲女则毛耸耸bbw| 国产亚洲综合av| 中文字幕在线观看成人| 色婷婷一区二区三区四区| 国产精品羞羞答答在线| 亚洲国产精品一区二区久| 成年午夜在线| 欧美精品videossex88| 户外露出一区二区三区| 大波视频国产精品久久| 国产尤物久久久| 2018中文字幕第一页| 免费高清视频精品| 99re这里只有| 亚洲欧美一区二区视频| 国产又爽又黄的视频| 欧美一级欧美三级在线观看| 日本免费不卡| 欧美成人亚洲成人日韩成人| 小黄鸭精品aⅴ导航网站入口| 岛国一区二区三区高清视频| 日韩欧美在线中字| 成人中文字幕在线播放| 国产精品123| 国产又粗又长又黄的视频| 天天色图综合网| 国产福利资源在线| 中文字幕亚洲综合久久| 成人免费无遮挡| 成人三级在线| 亚洲高清资源在线观看| av在线无限看| 99国产精品久久久久| 欧美被狂躁喷白浆精品| 欧美人xxxx| 成人一区二区不卡免费| 欧美性资源免费| 伊人精品久久| 国产又粗又大又爽的视频| 免费成人av在线播放| 四虎永久免费影院| 激情久久av一区av二区av三区| av中文字幕免费| zzijzzij亚洲日本成熟少妇| 伊人久久高清| 欧美一区1区三区3区公司| 国产亚洲激情| 色综合久久五月| 亚洲国产一区在线观看| 成人激情四射网| 欧美高清一级大片| 亚洲国产精品免费视频| 亚洲最新免费视频| 精品一区二区日韩| 又色又爽的视频| 欧美日韩国产天堂| av免费在线一区二区三区| 国产精品久久久久久久电影| 九九综合九九| 亚洲欧洲日产国码无码久久99| 99在线热播精品免费| 天海翼一区二区| 日韩hd视频在线观看| 成人黄色动漫| 欧美激情国产日韩| 欧美一级网站| 久久亚洲AV无码专区成人国产| 色婷婷av一区二区三区gif| 精品资源在线看| 国产精品老女人精品视频| 久久精品国产www456c0m| 老司机久久精品| 亚洲蜜臀av乱码久久精品| 国产亲伦免费视频播放| 色综合天天狠天天透天天伊人| 国产在线播放精品| 久久国产成人精品国产成人亚洲| 久久精品男人天堂av| 中文字幕视频在线播放| 欧美成人手机在线| 美女视频免费精品| 超碰影院在线观看| 中文字幕在线免费不卡| www.天天干.com| 欧洲成人性视频| 久久综合国产| 日本50路肥熟bbw| 91福利精品视频| 精品麻豆一区二区三区| 成人永久免费| 久久在线精品| 日韩欧美国产成人精品免费| 亚洲国产欧美一区二区丝袜黑人| 欧美福利在线播放| 亚洲激情免费视频| 91色.com| 91theporn国产在线观看| 欧美高清在线观看| 蜜臀av免费一区二区三区| 亚洲在线观看网站| 亚洲r级在线视频| av在线中文| 国产精品视频500部| 日韩电影在线一区二区| 欧美另类视频在线观看| 亚洲偷欧美偷国内偷| 精品精品视频| 免费在线观看的毛片| 亚洲激情六月丁香| av小片在线| 国产一级特黄a大片99| 麻豆91在线观看| 久久久精品福利| 久久久久久久亚洲精品| 欧美限制电影| 一起草在线视频| 日韩一区二区麻豆国产| 成人激情综合| 日韩视频在线视频| 亚洲免费电影在线| 91女主播在线观看| 久久一区二区三区欧美亚洲|