欧美三区四区_av先锋影音资源站_亚洲第一论坛sis_影音先锋2020色资源网_亚洲精品社区_在线免费观看av网站_国产一区二区伦理_亚洲欧美视频一区二区_99视频精品全部免费在线_精精国产xxxx视频在线

淺談three.js中的needsUpdate的應用_HTML5教程

編輯Tag賺U幣

推薦:基于HTML5超酷攝像頭(HTML5 webcam)拍照功能實現(xiàn)代碼
基于HTML5實現(xiàn)的超酷攝像頭(HTML5 webcam)拍照功能,需要了解的朋友可以參考下

three.js里的很多對象都有一個needsUpdate屬性,文檔中很少有寫(不過three.js的文檔本來就沒多少,很多問題還得靠github上的issues),網(wǎng)上各式各樣的教程中也不太會寫這個,因為對于簡單的入門程序而言,是用不到這個屬性的。
那么這個屬性到底是用來干嘛的,一言以敝之就是告訴renderer這一幀我該更新緩存了,盡管作為一個標志位用途很簡單,但是因為要知道為什么要更新緩存,要更新哪些緩存,所以還是有必要好好了解下的。
為什么需要needsUpdate
首先還是來看下為什么需要緩存,緩存的存在一般都是為了減少數(shù)據(jù)傳輸?shù)拇螖?shù),從而減少程序在數(shù)據(jù)傳輸上消耗的時間,這里也是,一般一個物體(Mesh)要最后能夠成功顯示到屏幕前是很不容易的,需要轉(zhuǎn)三次戰(zhàn)場
首先是通過程序?qū)⑺械捻旤c數(shù)據(jù)和紋理數(shù)據(jù)從本地磁盤讀取到內(nèi)存當中。
然后程序在內(nèi)存中做了適當?shù)奶幚碇缶鸵獙⒛切┬枰L制到屏幕前的物體的頂點數(shù)據(jù)和紋理數(shù)據(jù)傳輸?shù)斤@存當中。
最后在每一幀渲染的時候?qū)@存中的頂點數(shù)據(jù)和紋理數(shù)據(jù)flush到GPU中進行裝配,繪制。
根據(jù)那個金字塔式的數(shù)據(jù)傳輸模型,第一步顯然是最慢的,如果是在WebGL這樣的環(huán)境中通過網(wǎng)絡來傳輸,那就更加慢了,其次是從內(nèi)存?zhèn)鬏數(shù)斤@存的時間,這個后面會做一個簡單的數(shù)據(jù)測試。
然后是這三步操作的使用頻率,對于小場景來說,第一步是一次性的,就是每次初始化程序的時候就會將一個場景的所有數(shù)據(jù)都加載到內(nèi)存中了,對于大場景來說,可能會做一些異步加載,但是目前暫時不在我們考慮的問題當中。 對于第二步的頻率,應該是這次要講的最主要的,首先寫個簡單的程序測試一下做這一步傳輸所帶來的消耗

復制代碼 代碼如下:www.ghpqjb.com

var canvas = document.createElement('canvas');
var _gl = canvas.getContext('experimental-webgl');
var vertices = [];
for(var i = 0; i < 1000*3; i++){
vertices.push(i * Math.random() );
}
var buffer = _gl.createBuffer();
console.bindBuffer();
console.profileEnd('buffer_test');
function bindBuffer(){
for(var i = 0; i < 1000; i++){
_gl.bindBuffer(_gl.ARRAY_BUFFER, buffer);
_gl.bufferData(_gl.ARRAY_BUFFER, new Float32Array(vertices), _gl.STATIC_DRAW);
}
}

先簡單解釋下這個程序,vertices是一個保存頂點的數(shù)組,這里是隨機生成了1000個頂點,因為每個頂點都有x,y,z三個坐標,所以需要一個3000大小的數(shù)組, _gl.createBuffer命令在顯存中開辟了一塊用來存放頂點數(shù)據(jù)的緩存,然后使用_gl.bufferData將生成的頂點數(shù)據(jù)從內(nèi)存?zhèn)鬏斠环輈opy到顯存中。 這里假設了一個場景中有1000個1000個頂點的物體,每個頂點是3個32位4個字節(jié)的float數(shù)據(jù),計算一下就是差不多1000 x 1000 x 12 = 11M的數(shù)據(jù),profile一下差不多消耗了15ms的時間,這里可能看看15ms才這么點時間,但是對于一個實時的程序來說,如果要保證30f
ps的幀率,每一幀所需要的時間要控制在30ms左右,僅僅是做一次數(shù)據(jù)的傳輸就花去了一半的時間怎么成,要知道大頭應該是GPU中的繪制操作和在CPU中的各種各樣的處理啊,應該吝嗇整個渲染過程中的每一步操作。
所以應該盡量減少這一步的傳輸次數(shù),其實可以做到剛加載的時候就把所有的頂點數(shù)據(jù)和紋理數(shù)據(jù)從內(nèi)存一并傳輸?shù)斤@存當中,這就是現(xiàn)在three.js做的,第一次就把需要繪制的物體(Geometry)的頂點數(shù)據(jù)傳輸?shù)斤@存中,并且緩存這個buffer到geometry.__webglVertexBuffer,之后每次繪制的時候都會判斷Geometry的verticesNeedUpdate屬性,如果不需要更新就直接使用現(xiàn)在的緩存,如果看到verticesNeedUpate為true, 就會重新將Geometry中的頂點數(shù)據(jù)傳輸?shù)絞eometry.__webglVertexBuffer中,一般對于靜態(tài)物體我們是不需要這一步操作的,但是如果遇到頂點會頻繁改變的物體,例如用頂點來做粒子的粒子系統(tǒng),還有使用了骨骼動畫的Mesh, 這些物體每一幀都會改變自己的頂點,所以需要每一幀都需要將其verticesNeedUpdate屬性設為true來告訴renderer我需要重新傳輸數(shù)據(jù)了!
其實在WebGL程序中,更多的會在vertex shader中去改變頂點的位置來完成粒子效果和骨骼動畫,盡管如果放在cpu端計算更容易擴展,但是因為javascript的計算能力的限制,更多的還是會把這些計算量大的操作放到gpu端操作。 這種情況下并不需要重新傳輸一次頂點數(shù)據(jù),所以上面那種case在實際程序中其實用到的不多,更多的還是會去更新紋理和材質(zhì)的緩存。
上面那個case主要描述的是一個傳輸頂點數(shù)據(jù)的場景,除了頂點數(shù)據(jù),還有一個大頭就是紋理,一張1024*1024大小的R8G8B8A8格式的紋理所要占用的內(nèi)存大小也要高達4M,于是看下面這個例子

復制代碼 代碼如下:www.ghpqjb.com

var canvas = document.createElement('canvas');
var _gl = canvas.getContext('experimental-webgl');
var texture = _gl.createTexture();
var img = new Image;
img.onload = function(){
console.profile('texture test');
bindTexture();
console.profileEnd('texture test');
}
img.src = 'test_tex.jpg';
function bindTexture(){
_gl.bindTexture(_gl.TEXTURE_2D, texture);
_gl.texImage2D(_gl.TEXTURE_2D, 0, _gl.RGBA, _gl.RGBA, _gl.UNSIGNED_BYTE, img);
}

這里就不需要變態(tài)的重復1000次了,一次傳輸10241024的紋理就已經(jīng)花了30ms,一張256256的差不多是2ms,所以three.js中對于紋理也是盡量只在最開始的時候傳輸一次,之后如果texture.needsUpdate屬性不手動設為true的話就會一直直接使用已經(jīng)傳輸?shù)斤@存中的紋理。
需要更新哪些緩存
上面通過兩個case描述了為什么three.js要加這么一個needsUpdate屬性,接下來列舉一下幾個場景來知道在什么情況下需要手動的更新這些緩存。
紋理的異步加載
這算是一個小坑吧,因為前端的圖片是異步加載的,如果在創(chuàng)建好img后直接寫texture.needsUpdate=true的話,three.js的renderer中會這一幀中就使用_gl.texImage2D將空的紋理數(shù)據(jù)傳輸?shù)斤@存中,然后就將這個標志位設成false, 之后真正等到圖片加載完成的時候確不再更新顯存數(shù)據(jù)了,所以必須要在onload事件中等整張圖片加載完成后再寫texture.needsUpdate = true
視頻紋理
大部分紋理都是像上面那個case直接加載和傳輸一次圖片就行了,但是對于視頻紋理來說并不是,因為視頻是一個圖片流,每一幀要顯示的畫面都不一樣,所以每一幀都需要將needsUpdate設為true來更新顯卡中的紋理數(shù)據(jù)。
使用render buffer
render buffer是比較特殊的對象,一般的程序在整個場景繪制出來后都是直接flush到屏幕了,但是如果多了post processing或這screen based xxx(例如screen based ambient occlusion)的話,就需要將場景先繪制到一個render buffer上,這個buffer其實就是一張紋理,只不過是上一步繪制生成的,而不是從磁盤加載的。three.js中有一個專門的texture對象WebGLRenderTarget來初始化和保存renderbuffer, 這種紋理也需要在每一幀設置一下needsUpdate為true
Material的needsUpdate
材質(zhì)在three.js中是通過THREE.Material來描述的,其實材質(zhì)并沒有什么數(shù)據(jù)要傳輸,但是為什么還要搞一個needsUpdate呢,這里還要說一下shader這個東西,shader直譯過來是著色器,提供了在gpu中編程處理頂點和像素的可能性,在繪畫中有個shading的術(shù)語來表示繪畫的明暗法,GPU中的shading也類似,通過程序計算光照的明暗來表現(xiàn)物體的材質(zhì),ok, 既然shader是一段跑在GPU上的程序,那么像所有程序一樣都需要進行一次編譯鏈接的操作, WebGL中是在運行時對shader程序進行編譯的,這當然需要消耗時間,因此也是最好能夠一次編譯就運行到程序結(jié)束。所以three.js中就在material初始化的時候就編譯鏈接了shader程序并且緩存了編譯鏈接后得到的program對象。一般一個material是不需要再去重新編譯整個shader了,材質(zhì)的調(diào)整只需要修改shader的uniform參數(shù)就行了。但是如果是替換了整個材質(zhì),比如將原來phong的shader替換成了一個lambert的shader,就需要將material.needsUpdate設置成true去重新做一次編譯。不過這種情況不多見,更常見的是下面提到的一種情況。
添加和刪除燈光
這個應該還是在場景中比較常見了的吧,可能很多剛開始用three.js的人都會掉進這個坑里,在給場景動態(tài)添加了一個燈光后發(fā)現(xiàn)這個燈光怎么不起作用,不過這是在用three.js內(nèi)置的shader的情況下,例如phong, lambert,看renderer里的源代碼就會發(fā)現(xiàn)three.js在內(nèi)置的shader代碼中使用#define來設置場景中燈光的個數(shù),而這個#define的值是在每次更新材質(zhì)的時候通過字符串拼接shader得到,代碼如下

復制代碼 代碼如下:www.ghpqjb.com

"#define MAX_DIR_LIGHTS " + parameters.maxDirLights,
"#define MAX_POINT_LIGHTS " + parameters.maxPointLights,
"#define MAX_SPOT_LIGHTS " + parameters.maxSpotLights,
"#define MAX_HEMI_LIGHTS " + parameters.maxHemiLights,

確實這種寫法能夠有效的減少了gpu寄存器的使用,如果只有一盞燈光就可以只聲明一個一盞燈光所需要的uniform變量,但是在每次燈光數(shù)量改變,特別是添加的時候就需要重新拼接編譯鏈接一次shader,這時候也需要將所有材質(zhì)的material.needsUpdate設為true;
改變紋理
這里的改變紋理指的并不是更新紋理數(shù)據(jù),而是原來材質(zhì)使用了紋理,后來不使用了,或者原來材質(zhì)不使用紋理后來又加上去了,如果不手動強制更新材質(zhì)都會導致最后出來的效果跟自己想的不一樣,產(chǎn)生這種問題的原因跟上面添加燈光差不多,也是因為shader中加了一個宏來判斷是否使用了紋理,

復制代碼 代碼如下:www.ghpqjb.com

parameters.map ? "#define USE_MAP" : "",
parameters.envMap ? "#define USE_ENVMAP" : "",
parameters.lightMap ? "#define USE_LIGHTMAP" : "",
parameters.bumpMap ? "#define USE_BUMPMAP" : "",
parameters.normalMap ? "#define USE_NORMALMAP" : "",
parameters.specularMap ? "#define USE_SPECULARMAP" : "",

所以每次map, 或者envMap或者lightMap等改變真值的時候都需要更新材質(zhì)
其它頂點數(shù)據(jù)的改變
其實上面紋理的改變還會產(chǎn)生一個問題,主要是在初始化的時候沒有紋理,但是后來動態(tài)添加上去這種環(huán)境下,光是將material.needsUpdate設為true還不夠,還需要將geometry.uvsNeedsUpdate設成true, 為什么會有這種問題呢,還是因為three.js對程序的優(yōu)化,在renderer中第一次初始化geometry, material的時候,如果判斷為沒有紋理,盡管內(nèi)存中的數(shù)據(jù)中有每個頂點uv數(shù)據(jù),但 three.js 還是不會將這些數(shù)據(jù)copy到顯存中,初衷應該還是為了節(jié)省點寶貴的顯存空間,但是在添加紋理后geometry并不會很智能的重新去傳輸這些uv數(shù)據(jù)以供紋理使用,必須要我們手動的將設置uvsNeedsUpdate來告知它該更新uv了, 這個問題真是開始的時候坑了我很長時間。
關于幾種頂點數(shù)據(jù)的needUpdate屬性可以看這條issue
https://github.com/mrdoob/three.js/wiki/Updates
最后
three.js的優(yōu)化做的是不錯,但是在各種優(yōu)化下帶來的是各種可能踩到的坑,這種情況最好的辦法也只能是看源代碼了,或者去github上提issues

分享:html5-websocket基于遠程方法調(diào)用的數(shù)據(jù)交互實現(xiàn)
一般在傳統(tǒng)網(wǎng)頁中注冊用戶信息都是通過post或ajax提交到頁面處理,到了HTML5后我們有另一種方法就是通過websocket進行數(shù)據(jù)交互,接下來將詳細介紹,需要了解的朋友可以參考下

來源:未知//所屬分類:HTML5教程/更新時間:2013-04-22
相關HTML5教程
91看片淫黄大片91| 亚洲人午夜色婷婷| 亚洲一区二区久久久久久久| www.污污视频| 国产情侣激情自拍| 99精品欧美| 在线精品视频免费播放| 国产精品视频yy9099| 红桃视频 国产| 俄罗斯嫩小性bbwbbw| 精品国产视频在线观看| 黄色片网站在线免费观看| 国产精品嫩草影院在线看| 中文字幕精品一区| 久久97久久97精品免视看| 国产h视频在线播放| 91精品国产乱码久久久| 亚洲久久成人| 欧美日韩国产免费一区二区| www.成人av.com| 久久久久亚洲av无码a片| 玖玖精品一区| 久久只精品国产| 久久亚洲精品网站| 国产成人a亚洲精v品无码| 一级特黄aa大片| 翔田千里一区二区| 日韩欧美第一区| 亚洲精品欧美精品| 91美女免费看| 国精品一区二区三区| 在线观看区一区二| 国产亚洲欧美一区二区| 日韩激情小视频| 欧美呦呦网站| 日韩欧美中文字幕在线观看| 99视频在线| 欧美88888| 欧美精品一区二区三区精品| 亚洲高清久久久| 亚洲一区二区免费| 成年人看的免费视频| 亚洲婷婷影院| 亚洲福利国产精品| 18成人在线| 999福利视频| 波多野结衣在线观看一区二区三区| 亚洲第一综合色| 亚洲r级在线观看| 久久日免费视频| 欧美日韩在线网站| 色拍拍在线精品视频8848| 国产日韩一区二区三区| 黄色一级视频免费| 中国精品18videos性欧美| 欧美日韩一级黄| 日韩欧美一区二区三区四区| 91精品国产综合久久久蜜臀九色| 亚洲三级电影在线观看| 精品欧美久久久| 91国在线高清视频| www天堂在线| 国产jizzjizz一区二区| 欧美巨猛xxxx猛交黑人97人| 不用播放器的免费av| 国产原创一区| 亚洲欧美欧美一区二区三区| 成人在线免费观看视视频| 日本女人性生活视频| 婷婷亚洲最大| 国产精品久久激情| 裸模一区二区三区免费| 国产亚洲精品久久久久久打不开| 欧美啪啪一区| 欧美videos大乳护士334| 2022中文字幕| 手机看片国产1024| 久久影院午夜论| 国产成人91久久精品| 欧美激情亚洲色图| 久久综合国产| 91精品国产aⅴ一区二区| 天天干天天色天天爽| 国产伦精品一区二区三区免.费| 国产乱码精品一品二品| 欧美激情第99页| 久久人人爽人人人人片| 国产欧美日韩精品一区二区免费| 91久久线看在观草草青青| 一本一道久久a久久综合精品| 91女人18毛片水多国产| 成人网男人的天堂| 欧美一级成年大片在线观看| 亚洲熟妇无码av| 色琪琪久久se色| 欧美一区二区三区免费在线看| 成年人深夜视频| 亚洲人体影院| 国产精品福利电影一区二区三区四区| 91手机在线视频| 永久免费无码av网站在线观看| 久久国产精品无码网站| 欧美激情高清视频| 影音先锋男人在线| 欧美日韩蜜桃| 正在播放欧美一区| 中文字幕1区2区| 亚洲最大在线| 欧美一级高清片在线观看| 丰满爆乳一区二区三区| 成人在线视频区| 欧美日韩国产在线看| 亚洲va韩国va欧美va精四季| 成人免费视频国产| 亚洲国产精品激情在线观看| 成人羞羞视频免费| 中文字幕在线观看国产| av男人天堂一区| 91久久精品久久国产性色也91| 西西44rtwww国产精品| 韩日欧美一区二区三区| 欧美自拍大量在线观看| 国产av无码专区亚洲av毛网站| 久久欧美肥婆一二区| 欧美精品第一页在线播放| 俄罗斯毛片基地| 在线亚洲观看| 欧美国产亚洲视频| а天堂中文在线资源| 久久久久欧美精品| 韩国19禁主播vip福利视频| 少妇高潮一区二区三区喷水| 日韩高清一级片| 欧美中文字幕视频在线观看| 国产真实夫妇交换视频| 国产美女精品在线| 国产精品自拍偷拍| 亚洲国产成人精品女人久久| 2021国产精品久久精品| 国产在线一区二区三区播放| 国产福利免费视频| 亚洲品质自拍视频网站| 亚洲综合首页| www.久久| 欧美在线免费播放| 日韩一区不卡| 五月婷婷在线观看视频| 亚洲精品视频观看| av一本久道久久波多野结衣| 国产女无套免费视频| 中文字幕成人网| 欧美不卡三区| 五十路在线视频| 亚洲国产精品麻豆| 人妻av中文系列| 视频精品一区| 欧美精品在线观看播放| 久久无码高潮喷水| 欧美三级午夜理伦三级在线观看| 91精品综合久久久久久| 免费看国产黄色片| 欧美极品中文字幕| 亚洲欧美日韩一区二区在线 | 久久精品在线播放| 一区二区三区四区免费| 国产一区成人| 欧美性受xxxx黑人猛交| 久久露脸国语精品国产91| 久久精品国产亚洲一区二区三区| 国产精品一区二区三区毛片淫片| 中文字幕一区二区人妻视频| 久久久综合网站| 欧美日韩系列| free欧美| 91精品国产色综合久久不卡蜜臀| 91精品免费在线| 日本精品视频一区| 忘忧草在线www成人影院| 婷婷国产在线综合| 北条麻妃69av| 国产99久久| 国产亚洲欧洲黄色| www..com.cn蕾丝视频在线观看免费版 | 国产精品久久777777毛茸茸| 欧美黑人巨大xxx极品| 免看一级a毛片一片成人不卡| 成人综合婷婷国产精品久久| 亚洲xxx视频| 少妇一级淫片免费看| 富二代精品短视频| 东京热加勒比无码少妇| 狠狠色丁香婷婷综合影院| 亚洲精品在线一区二区| 9.1成人看片免费版| 亚洲三级国产| 欧美在线精品免播放器视频| 日批视频免费在线观看| 国产精品久久夜| 久久久久久人妻一区二区三区| 日韩中文字幕在线一区| 亚洲福利在线观看| 成人无码www在线看免费| 奇米精品一区二区三区四区 | 日韩极品在线| 丝袜亚洲另类欧美重口| 男人在线观看视频| 成人av午夜电影| 日韩av图片| 日日夜夜亚洲| 日韩久久免费电影| 欧美亚洲色综久久精品国产| 国产一区二区中文字幕| 国产精品日韩欧美一区二区| 国产亚洲欧美日韩精品一区二区三区 | 红桃视频国产精品| 国产精品96久久久久久| 国产三级自拍视频| 色综合久久精品| 日本69式三人交| 老司机午夜精品| 免费成人在线观看av| 色综合视频一区二区三区44| 国产精品一区二区精品视频观看| 色悠悠久久综合| 欧美视频亚洲图片| 石原莉奈在线亚洲三区| 91久久国产综合久久蜜月精品| 亚洲美女久久精品| 欧美一级高清大全免费观看| 国产女主播在线播放| 久久国产精品露脸对白| 国产乱码精品一区二区三区中文 | 污片在线免费看| 亚洲大黄网站| 成人网在线观看| 日韩精品一区二区三区av| 日韩欧美一级精品久久| 手机看片国产日韩| 久久综合网色—综合色88| 久久福利一区二区| 999久久久精品国产| 国产激情久久久久| 国产精品毛片一区二区在线看舒淇 | 97一区二区国产好的精华液| 中文字幕亚洲图片| 波多野结衣 久久| 午夜精彩视频在线观看不卡| 网站一区二区三区| 日韩精品久久理论片| 国产精品视频福利| 日韩欧美中文在线观看| 久久精品国产2020观看福利| 久久精品这里只有精品| 亚洲最大成人网4388xx| 五月天婷婷在线观看视频| 青青草97国产精品免费观看| 欧美日韩国产免费一区二区三区| 北条麻妃一区二区三区在线| 久久综合九色九九| 一区二区三区精彩视频| 欧美丝袜自拍制服另类| 在线观看国产精品一区| 国产精品美日韩| 熟女人妇 成熟妇女系列视频| 亚洲在线一区| 蜜桃免费一区二区三区| 51精品国产| 6080yy精品一区二区三区| 高h震动喷水双性1v1| 欧美大片日本大片免费观看| 黄色片在线观看网站| 亚洲成av人片在线观看无码| 亚洲少妇一区二区三区| 国产69精品一区二区亚洲孕妇| 强开小嫩苞一区二区三区网站 | 91在线精品一区二区| 国产美女主播在线播放 | 在线亚洲高清视频| 国产黄片一区二区三区| 91丝袜国产在线播放| 亚洲精品视频导航| 精品亚洲porn| 色哟哟免费网站| 亚洲精品九九| 亚洲午夜久久久影院伊人| 五月婷婷六月综合| 粉嫩av四季av绯色av第一区| 玖玖玖免费嫩草在线影院一区| 国产精品第七影院| 香蕉久久久久久| 精品中文字幕在线2019| 日本激情一区二区三区| 亚洲天堂av电影| 亚洲一级特黄毛片| 欧美xxxx老人做受| 欧美三级一区二区三区| 日韩欧美精品网址| www.99热| 一区二区三区av电影| 亚洲天堂资源在线| 国产精品乱码久久久久久| 黄色三级视频在线播放| 成人美女在线视频| 久久久久免费精品| 久久久久久黄| 欧美一区二区三区综合| 久久大逼视频| 国产卡一卡二在线| 亚洲网色网站| 日本一区二区免费看| 亚洲国产一成人久久精品| 国产v亚洲v天堂无码| 国产精品亚洲二区| 国产欧美一区二区视频| 成人激情开心网| 国产日韩在线一区二区三区| 综合色就爱涩涩涩综合婷婷| 91日本视频在线| 妖精一区二区三区精品视频 | 亚洲乱码中文字幕| 国产综合精品在线| 亚洲一区二区三区中文字幕在线| 中文字幕国产综合| 一区二区在线观看av| 农村老熟妇乱子伦视频| 亚洲高清不卡在线观看| 91无套直看片红桃在线观看| 天天亚洲美女在线视频| 自拍偷拍你懂的| 懂色aⅴ精品一区二区三区蜜月| 亚洲色偷偷综合亚洲av伊人| 色天天综合久久久久综合片| 草久久免费视频| 国产一区二区三区四区在线观看| 欧美黄色三级网站| 欧美熟妇另类久久久久久不卡| 日韩精品视频在线观看免费| 丰满人妻妇伦又伦精品国产| 深夜福利91大全| sis001欧美| 97免费中文视频在线观看| 国产精品久av福利在线观看| 成人免费网站在线观看| 国产传媒欧美日韩成人精品大片| 97久久天天综合色天天综合色hd| 国产中文精品久高清在线不| 国产欧美日韩视频一区二区三区| 亚洲一区二区| 欧美一区二区视频17c| 天堂午夜影视日韩欧美一区二区| 亚洲 欧美 综合 另类 中字| 国产真实精品久久二三区| 欧洲精品一区二区三区久久| 成人性生交大片免费看中文 | 国产高清不卡| 久久人91精品久久久久久不卡| 麻豆精品一区| 成人黄色片网站| 久久中文字幕二区| 亚洲视频小说| 久久精品国内一区二区三区| 久热在线视频观看| 国产精品美女久久久久久久| 六月婷婷七月丁香| 一本色道久久综合亚洲aⅴ蜜桃| 久久夜色精品国产噜噜亚洲av| 日韩电影免费观看在线观看| 天堂网av2014| 欧美大荫蒂xxx| 欧亚精品一区| 精品无人区一区二区三区| 99国产精品久久久久久久成人热| 亚洲国产精品123| 国产在线一区二区综合免费视频| 污污的网站免费| 中文字幕亚洲电影| 快灬快灬一下爽蜜桃在线观看| 日韩理论片av| 国产免费观看久久黄| 天天天综合网| 欧美乱大交xxxxx潮喷l头像| yourporn久久国产精品| 欧美大喷水吹潮合集在线观看| 色综合久久久久久久久| 国产精品露脸视频| 久久精品亚洲精品| 免费一区二区三区在线视频| 国产久一道中文一区| 视频一区在线播放| 婷婷六月天在线| 亚洲综合丁香婷婷六月香| 国产在线拍揄自揄拍| 亚洲国内精品在线| 欧美xx视频| 亚洲一区二区在线| 亚洲激情综合| 成年人小视频网站| 亚洲人成精品久久久久| 免费日韩一级片| 影音先锋欧美精品|